1#ifndef VULKAN_CORE_H_
2#define VULKAN_CORE_H_ 1
3
4/*
5** Copyright 2015-2026 The Khronos Group Inc.
6**
7** SPDX-License-Identifier: Apache-2.0 OR MIT
8*/
9
10/*
11** This header is generated from the Khronos Vulkan XML API Registry.
12**
13*/
14
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20
21
22// VK_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls.
23#define VK_VERSION_1_0 1
24#include "vk_platform.h"
25
26#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
27
28
29#ifndef VK_USE_64_BIT_PTR_DEFINES
30 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64)
31 #define VK_USE_64_BIT_PTR_DEFINES 1
32 #else
33 #define VK_USE_64_BIT_PTR_DEFINES 0
34 #endif
35#endif
36
37
38#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
39 #if (VK_USE_64_BIT_PTR_DEFINES==1)
40 #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
41 #define VK_NULL_HANDLE nullptr
42 #else
43 #define VK_NULL_HANDLE ((void*)0)
44 #endif
45 #else
46 #define VK_NULL_HANDLE 0ULL
47 #endif
48#endif
49#ifndef VK_NULL_HANDLE
50 #define VK_NULL_HANDLE 0
51#endif
52
53
54#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
55 #if (VK_USE_64_BIT_PTR_DEFINES==1)
56 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
57 #else
58 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
59 #endif
60#endif
61
62#define VK_MAKE_API_VERSION(variant, major, minor, patch) \
63 ((((uint32_t)(variant)) << 29U) | (((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
64
65
66//#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0
67
68// Version of this file
69#define VK_HEADER_VERSION 357
70
71// Complete version of this file
72#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION)
73
74
75#define VK_MAKE_VERSION(major, minor, patch) \
76 ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
77
78
79#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22U)
80
81
82#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
83
84
85#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
86
87#define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29U)
88#define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU)
89#define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
90#define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
91// Vulkan 1.0 version number
92#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
93
94typedef uint32_t VkBool32;
95typedef uint64_t VkDeviceAddress;
96typedef uint64_t VkDeviceSize;
97typedef uint32_t VkFlags;
98typedef uint32_t VkSampleMask;
99VK_DEFINE_HANDLE(VkInstance)
100VK_DEFINE_HANDLE(VkPhysicalDevice)
101VK_DEFINE_HANDLE(VkDevice)
102VK_DEFINE_HANDLE(VkQueue)
103VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
104VK_DEFINE_HANDLE(VkCommandBuffer)
105VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
106VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
107VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
108VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
109VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
110VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
111VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
112VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
113VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
114VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
115VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
116VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
117VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
118VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
119VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
120VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
121VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
122VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
123VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
124#define VK_FALSE 0U
125#define VK_LOD_CLAMP_NONE 1000.0F
126#define VK_QUEUE_FAMILY_IGNORED (~0U)
127#define VK_REMAINING_ARRAY_LAYERS (~0U)
128#define VK_REMAINING_MIP_LEVELS (~0U)
129#define VK_TRUE 1U
130#define VK_WHOLE_SIZE (~0ULL)
131#define VK_MAX_MEMORY_TYPES 32U
132#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U
133#define VK_UUID_SIZE 16U
134#define VK_MAX_EXTENSION_NAME_SIZE 256U
135#define VK_MAX_DESCRIPTION_SIZE 256U
136#define VK_MAX_MEMORY_HEAPS 16U
137#define VK_ATTACHMENT_UNUSED (~0U)
138#define VK_SUBPASS_EXTERNAL (~0U)
139
140typedef enum VkResult {
141 VK_SUCCESS = 0,
142 VK_NOT_READY = 1,
143 VK_TIMEOUT = 2,
144 VK_EVENT_SET = 3,
145 VK_EVENT_RESET = 4,
146 VK_INCOMPLETE = 5,
147 VK_ERROR_OUT_OF_HOST_MEMORY = -1,
148 VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
149 VK_ERROR_INITIALIZATION_FAILED = -3,
150 VK_ERROR_DEVICE_LOST = -4,
151 VK_ERROR_MEMORY_MAP_FAILED = -5,
152 VK_ERROR_LAYER_NOT_PRESENT = -6,
153 VK_ERROR_EXTENSION_NOT_PRESENT = -7,
154 VK_ERROR_FEATURE_NOT_PRESENT = -8,
155 VK_ERROR_INCOMPATIBLE_DRIVER = -9,
156 VK_ERROR_TOO_MANY_OBJECTS = -10,
157 VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
158 VK_ERROR_FRAGMENTED_POOL = -12,
159 VK_ERROR_UNKNOWN = -13,
160 VK_ERROR_VALIDATION_FAILED = -1000011001,
161 VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
162 VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
163 VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
164 VK_ERROR_FRAGMENTATION = -1000161000,
165 VK_PIPELINE_COMPILE_REQUIRED = 1000297000,
166 VK_ERROR_NOT_PERMITTED = -1000174001,
167 VK_ERROR_SURFACE_LOST_KHR = -1000000000,
168 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
169 VK_SUBOPTIMAL_KHR = 1000001003,
170 VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
171 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
172 VK_ERROR_INVALID_SHADER_NV = -1000012000,
173 VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000,
174 VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001,
175 VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002,
176 VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003,
177 VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004,
178 VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005,
179 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
180 VK_ERROR_PRESENT_TIMING_QUEUE_FULL_EXT = -1000208000,
181 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
182 VK_THREAD_IDLE_KHR = 1000268000,
183 VK_THREAD_DONE_KHR = 1000268001,
184 VK_OPERATION_DEFERRED_KHR = 1000268002,
185 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
186 VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR = -1000299000,
187 VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000,
188 VK_INCOMPATIBLE_SHADER_BINARY_EXT = 1000482000,
189 VK_PIPELINE_BINARY_MISSING_KHR = 1000483000,
190 VK_ERROR_NOT_ENOUGH_SPACE_KHR = -1000483000,
191 VK_ERROR_VALIDATION_FAILED_EXT = VK_ERROR_VALIDATION_FAILED,
192 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
193 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
194 VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
195 VK_ERROR_NOT_PERMITTED_EXT = VK_ERROR_NOT_PERMITTED,
196 VK_ERROR_NOT_PERMITTED_KHR = VK_ERROR_NOT_PERMITTED,
197 VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
198 VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
199 VK_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
200 VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
201 // VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT is a legacy alias
202 VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT = VK_INCOMPATIBLE_SHADER_BINARY_EXT,
203 VK_RESULT_MAX_ENUM = 0x7FFFFFFF
204} VkResult;
205
206typedef enum VkStructureType {
207 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
208 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
209 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
210 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
211 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
212 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
213 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
214 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
215 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
216 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
217 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
218 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
219 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
220 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
221 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
222 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
223 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
224 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
225 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
226 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
227 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
228 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
229 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
230 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
231 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
232 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
233 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
234 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
235 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
236 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
237 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
238 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
239 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
240 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
241 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
242 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
243 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
244 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
245 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
246 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
247 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
248 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
249 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
250 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
251 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
252 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
253 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
254 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
255 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
256 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
257 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
258 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
259 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
260 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
261 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
262 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
263 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
264 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
265 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
266 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
267 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
268 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
269 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
270 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
271 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
272 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
273 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
274 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
275 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
276 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
277 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
278 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
279 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
280 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
281 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
282 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
283 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
284 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
285 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
286 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
287 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
288 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
289 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
290 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
291 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
292 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
293 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
294 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
295 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
296 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
297 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
298 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
299 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
300 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
301 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
302 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
303 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
304 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
305 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
306 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
307 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
308 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
309 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
310 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
311 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
312 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
313 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
314 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
315 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
316 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
317 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
318 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
319 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
320 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
321 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
322 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
323 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
324 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
325 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
326 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
327 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
328 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
329 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
330 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
331 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
332 VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
333 VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
334 VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
335 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
336 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
337 VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
338 VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
339 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
340 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
341 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
342 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
343 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
344 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
345 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
346 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
347 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
348 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
349 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
350 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
351 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
352 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
353 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
354 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
355 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
356 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
357 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
358 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
359 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
360 VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
361 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
362 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
363 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
364 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
365 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
366 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
367 VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
368 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
369 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
370 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
371 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53,
372 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54,
373 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000,
374 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000,
375 VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001,
376 VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002,
377 VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000,
378 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001,
379 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002,
380 VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003,
381 VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004,
382 VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005,
383 VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006,
384 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007,
385 VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000,
386 VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001,
387 VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002,
388 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003,
389 VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006,
390 VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007,
391 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009,
392 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000,
393 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000,
394 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000,
395 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001,
396 VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002,
397 VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003,
398 VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000,
399 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000,
400 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000,
401 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000,
402 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000,
403 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000,
404 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000,
405 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001,
406 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002,
407 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000,
408 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001,
409 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002,
410 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003,
411 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000,
412 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001,
413 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001,
414 VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004,
415 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005,
416 VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008,
417 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010,
418 VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000,
419 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001,
420 VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002,
421 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003,
422 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004,
423 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES = 55,
424 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES = 56,
425 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO = 1000174000,
426 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES = 1000388000,
427 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES = 1000388001,
428 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES = 1000265000,
429 VK_STRUCTURE_TYPE_MEMORY_MAP_INFO = 1000271000,
430 VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO = 1000271001,
431 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES = 1000470000,
432 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES = 1000470001,
433 VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO = 1000470004,
434 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2 = 1000338002,
435 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2 = 1000338003,
436 VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO = 1000470006,
437 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES = 1000545000,
438 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES = 1000545001,
439 VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS = 1000545002,
440 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES = 1000270000,
441 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES = 1000270001,
442 VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY = 1000270002,
443 VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY = 1000270003,
444 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO = 1000270004,
445 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO = 1000270005,
446 VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO = 1000270006,
447 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO = 1000270007,
448 VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE = 1000270008,
449 VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY = 1000270009,
450 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES = 1000416000,
451 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES = 1000528000,
452 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES = 1000544000,
453 VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO = 1000470005,
454 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES = 1000080000,
455 VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO = 1000545003,
456 VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO = 1000545004,
457 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO = 1000545005,
458 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO = 1000545006,
459 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES = 1000466000,
460 VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO = 1000068000,
461 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES = 1000068001,
462 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES = 1000068002,
463 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES = 1000259000,
464 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO = 1000259001,
465 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES = 1000259002,
466 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES = 1000525000,
467 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO = 1000190001,
468 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES = 1000190002,
469 VK_STRUCTURE_TYPE_RENDERING_AREA_INFO = 1000470003,
470 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES = 1000232000,
471 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO = 1000232001,
472 VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO = 1000232002,
473 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
474 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
475 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
476 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
477 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
478 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
479 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
480 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
481 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
482 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
483 VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
484 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
485 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
486 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
487 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
488 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
489 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
490 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
491 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
492 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
493 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
494 VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000,
495 VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001,
496 VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002,
497 VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003,
498 VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004,
499 VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005,
500 VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006,
501 VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007,
502 VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008,
503 VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009,
504 VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010,
505 VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011,
506 VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012,
507 VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013,
508 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014,
509 VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015,
510 VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016,
511 VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000,
512 VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001,
513 VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002,
514 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
515 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
516 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
517 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
518 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
519 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
520 VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000,
521 VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001,
522 VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002,
523 VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX = 1000029004,
524 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
525 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
526 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR = 1000038000,
527 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000038001,
528 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000038002,
529 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR = 1000038003,
530 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR = 1000038004,
531 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR = 1000038005,
532 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR = 1000038006,
533 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR = 1000038007,
534 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR = 1000038008,
535 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR = 1000038009,
536 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR = 1000038010,
537 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR = 1000038011,
538 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR = 1000038012,
539 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000038013,
540 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR = 1000039000,
541 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000039001,
542 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000039002,
543 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR = 1000039003,
544 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR = 1000039004,
545 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR = 1000039005,
546 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR = 1000039006,
547 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR = 1000039007,
548 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR = 1000039009,
549 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR = 1000039010,
550 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR = 1000039011,
551 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR = 1000039012,
552 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR = 1000039013,
553 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000039014,
554 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000,
555 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001,
556 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003,
557 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004,
558 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005,
559 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006,
560 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
561 VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
562 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
563 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
564 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
565 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
566 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
567 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
568 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
569 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
570 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
571 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
572 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
573 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
574 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
575 VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
576 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
577 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
578 VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
579 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
580 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
581 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
582 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
583 VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
584 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
585 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
586 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
587 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
588 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
589 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
590 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
591 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
592 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
593 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
594 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
595 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
596 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
597 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
598 VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
599 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
600 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
601 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
602 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
603 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
604 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
605 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
606 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
607 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG = 1000110000,
608 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
609 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
610 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
611 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
612 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
613 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
614 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
615 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
616 VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
617 VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
618 VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
619 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
620 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
621 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
622 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
623 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
624 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
625 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
626 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
627 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
628 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
629 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
630 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
631 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
632 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
633 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
634 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
635 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
636 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
637 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
638 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
639 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
640 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
641 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
642 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006,
643 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GPA_FEATURES_AMD = 1000133000,
644 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GPA_PROPERTIES_AMD = 1000133001,
645 VK_STRUCTURE_TYPE_GPA_SAMPLE_BEGIN_INFO_AMD = 1000133002,
646 VK_STRUCTURE_TYPE_GPA_SESSION_CREATE_INFO_AMD = 1000133003,
647 VK_STRUCTURE_TYPE_GPA_DEVICE_CLOCK_MODE_INFO_AMD = 1000133004,
648 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GPA_PROPERTIES_2_AMD = 1000133005,
649 VK_STRUCTURE_TYPE_GPA_DEVICE_GET_CLOCK_INFO_AMD = 1000133006,
650#ifdef VK_ENABLE_BETA_EXTENSIONS
651 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = 1000134000,
652#endif
653#ifdef VK_ENABLE_BETA_EXTENSIONS
654 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = 1000134001,
655#endif
656#ifdef VK_ENABLE_BETA_EXTENSIONS
657 VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = 1000134002,
658#endif
659#ifdef VK_ENABLE_BETA_EXTENSIONS
660 VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = 1000134003,
661#endif
662#ifdef VK_ENABLE_BETA_EXTENSIONS
663 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = 1000134004,
664#endif
665 VK_STRUCTURE_TYPE_TEXEL_BUFFER_DESCRIPTOR_INFO_EXT = 1000135000,
666 VK_STRUCTURE_TYPE_IMAGE_DESCRIPTOR_INFO_EXT = 1000135001,
667 VK_STRUCTURE_TYPE_RESOURCE_DESCRIPTOR_INFO_EXT = 1000135002,
668 VK_STRUCTURE_TYPE_BIND_HEAP_INFO_EXT = 1000135003,
669 VK_STRUCTURE_TYPE_PUSH_DATA_INFO_EXT = 1000135004,
670 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_AND_BINDING_MAPPING_EXT = 1000135005,
671 VK_STRUCTURE_TYPE_SHADER_DESCRIPTOR_SET_AND_BINDING_MAPPING_INFO_EXT = 1000135006,
672 VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DATA_CREATE_INFO_EXT = 1000135007,
673 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_PROPERTIES_EXT = 1000135008,
674 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXT = 1000135009,
675 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_DESCRIPTOR_HEAP_INFO_EXT = 1000135010,
676 VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_INDEX_CREATE_INFO_EXT = 1000135011,
677 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_PUSH_DATA_TOKEN_NV = 1000135012,
678 VK_STRUCTURE_TYPE_SUBSAMPLED_IMAGE_FORMAT_PROPERTIES_EXT = 1000135013,
679 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_TENSOR_PROPERTIES_ARM = 1000135014,
680 VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
681 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR = 1000141000,
682 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
683 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
684 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
685 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
686 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
687 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
688 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
689 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
690 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
691 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007,
692 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
693 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
694 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
695 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
696 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
697 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
698 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009,
699 VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
700 VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
701 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
702 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013,
703 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014,
704 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
705 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020,
706 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
707 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
708 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
709 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
710 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
711 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013,
712 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
713 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
714 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
715 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
716 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
717 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
718 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
719 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
720 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006,
721 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
722 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
723#ifdef VK_ENABLE_BETA_EXTENSIONS
724 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
725#endif
726#ifdef VK_ENABLE_BETA_EXTENSIONS
727 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
728#endif
729 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
730 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
731 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
732 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
733 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
734 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
735 VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
736 VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
737 VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
738 VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
739 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
740 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
741 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
742 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
743 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
744 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
745 VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
746 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
747 VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
748 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_CONVERSION_FEATURES_QCOM = 1000172000,
749 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ELAPSED_TIMER_QUERY_FEATURES_QCOM = 1000173000,
750 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
751 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
752 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
753 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
754 VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
755 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
756 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000,
757 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001,
758 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002,
759 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003,
760 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004,
761 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005,
762 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
763 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
764 VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
765 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
766 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
767 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
768 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
769 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
770 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
771 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
772 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008,
773 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009,
774 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT = 1000208000,
775 VK_STRUCTURE_TYPE_SWAPCHAIN_TIMING_PROPERTIES_EXT = 1000208001,
776 VK_STRUCTURE_TYPE_SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT = 1000208002,
777 VK_STRUCTURE_TYPE_PRESENT_TIMINGS_INFO_EXT = 1000208003,
778 VK_STRUCTURE_TYPE_PRESENT_TIMING_INFO_EXT = 1000208004,
779 VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_INFO_EXT = 1000208005,
780 VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_PROPERTIES_EXT = 1000208006,
781 VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_EXT = 1000208007,
782 VK_STRUCTURE_TYPE_PRESENT_TIMING_SURFACE_CAPABILITIES_EXT = 1000208008,
783 VK_STRUCTURE_TYPE_SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT = 1000208009,
784 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
785 VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
786 VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
787 VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
788 VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
789 VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
790 VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
791 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
792 VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
793 VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
794 VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
795 VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
796 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
797 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
798 VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
799 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
800 VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
801 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
802 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
803 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
804 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
805 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
806 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
807 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
808 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR = 1000231000,
809 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR = 1000233000,
810 VK_STRUCTURE_TYPE_DEVICE_FAULT_SHADER_ABORT_MESSAGE_INFO_KHR = 1000233001,
811 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_PROPERTIES_KHR = 1000233002,
812 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
813 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = 1000235000,
814 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
815 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
816 VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
817 VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
818 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
819 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
820 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
821 VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
822 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
823 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
824 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
825 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
826 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
827 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
828 VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
829 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
830 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
831 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000,
832 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001,
833 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002,
834 VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
835 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
836 VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
837 VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
838 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
839 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
840 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
841 VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
842 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
843 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
844 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
845 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
846 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT = 1000272000,
847 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT = 1000272001,
848 VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT = 1000272002,
849 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
850 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
851 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
852 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
853 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
854 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
855 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
856 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
857 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
858 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
859 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
860 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
861 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
862 VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
863 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = 1000283000,
864 VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = 1000283001,
865 VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = 1000283002,
866 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
867 VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
868 VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
869 VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
870 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
871 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
872 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT = 1000288000,
873 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
874 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000,
875 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001,
876 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002,
877 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
878 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
879 VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
880 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
881 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
882 VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
883 VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004,
884 VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR = 1000299005,
885 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299006,
886 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR = 1000299007,
887 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299008,
888 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR = 1000299009,
889 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000299010,
890 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
891 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
892 VK_STRUCTURE_TYPE_PERF_HINT_INFO_QCOM = 1000302000,
893 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_PERF_HINT_FEATURES_QCOM = 1000302001,
894 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_PERF_HINT_PROPERTIES_QCOM = 1000302002,
895 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_3_FEATURES_QCOM = 1000303000,
896 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MULTIPLE_WAIT_QUEUES_FEATURES_QCOM = 1000304000,
897 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MULTIPLE_WAIT_QUEUES_PROPERTIES_QCOM = 1000304001,
898 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SPLIT_BARRIER_FEATURES_EXT = 1000305000,
899 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SPLIT_BARRIER_PROPERTIES_EXT = 1000305001,
900#ifdef VK_ENABLE_BETA_EXTENSIONS
901 VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = 1000307000,
902#endif
903#ifdef VK_ENABLE_BETA_EXTENSIONS
904 VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = 1000307001,
905#endif
906#ifdef VK_ENABLE_BETA_EXTENSIONS
907 VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = 1000307002,
908#endif
909#ifdef VK_ENABLE_BETA_EXTENSIONS
910 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = 1000307003,
911#endif
912#ifdef VK_ENABLE_BETA_EXTENSIONS
913 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = 1000307004,
914#endif
915 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM = 1000309000,
916 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM = 1000309001,
917 VK_STRUCTURE_TYPE_RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM = 1000309002,
918 VK_STRUCTURE_TYPE_PER_TILE_BEGIN_INFO_QCOM = 1000309003,
919 VK_STRUCTURE_TYPE_PER_TILE_END_INFO_QCOM = 1000309004,
920 VK_STRUCTURE_TYPE_DISPATCH_TILE_INFO_QCOM = 1000309005,
921 VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = 1000310000,
922 VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000,
923 VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001,
924 VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002,
925 VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003,
926 VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004,
927 VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005,
928 VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006,
929 VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007,
930 VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008,
931 VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009,
932 VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010,
933 VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011,
934 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000,
935 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001,
936 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002,
937 VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003,
938 VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004,
939 VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005,
940 VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006,
941 VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007,
942 VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008,
943 VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010,
944 VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011,
945 VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012,
946 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009,
947 VK_STRUCTURE_TYPE_DEVICE_MEMORY_COPY_KHR = 1000318000,
948 VK_STRUCTURE_TYPE_COPY_DEVICE_MEMORY_INFO_KHR = 1000318001,
949 VK_STRUCTURE_TYPE_DEVICE_MEMORY_IMAGE_COPY_KHR = 1000318002,
950 VK_STRUCTURE_TYPE_COPY_DEVICE_MEMORY_IMAGE_INFO_KHR = 1000318003,
951 VK_STRUCTURE_TYPE_MEMORY_RANGE_BARRIERS_INFO_KHR = 1000318004,
952 VK_STRUCTURE_TYPE_MEMORY_RANGE_BARRIER_KHR = 1000318005,
953 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_ADDRESS_COMMANDS_FEATURES_KHR = 1000318006,
954 VK_STRUCTURE_TYPE_BIND_INDEX_BUFFER_3_INFO_KHR = 1000318007,
955 VK_STRUCTURE_TYPE_BIND_VERTEX_BUFFER_3_INFO_KHR = 1000318008,
956 VK_STRUCTURE_TYPE_DRAW_INDIRECT_2_INFO_KHR = 1000318009,
957 VK_STRUCTURE_TYPE_DRAW_INDIRECT_COUNT_2_INFO_KHR = 1000318010,
958 VK_STRUCTURE_TYPE_DISPATCH_INDIRECT_2_INFO_KHR = 1000318011,
959 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_2_EXT = 1000318012,
960 VK_STRUCTURE_TYPE_BIND_TRANSFORM_FEEDBACK_BUFFER_2_INFO_EXT = 1000318013,
961 VK_STRUCTURE_TYPE_MEMORY_MARKER_INFO_AMD = 1000318014,
962 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_2_KHR = 1000318015,
963 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000,
964 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001,
965 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002,
966 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000,
967 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000,
968 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000,
969 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000,
970 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000,
971 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001,
972 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002,
973 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
974 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
975 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002,
976 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000,
977 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001,
978 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000,
979 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
980 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
981 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000,
982 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000,
983 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000,
984 VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
985 VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004,
986 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000,
987 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
988 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000,
989 VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001,
990 VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002,
991 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000,
992 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
993 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000,
994 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
995 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
996 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
997 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000,
998 VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001,
999 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000,
1000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001,
1001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
1002 VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
1003 VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
1004 VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
1005 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
1006 VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
1007 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000,
1008 VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001,
1009 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002,
1010 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003,
1011 VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004,
1012 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005,
1013 VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006,
1014 VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007,
1015 VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008,
1016 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009,
1017 VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
1018 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
1019 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
1020 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
1021 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
1022 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
1023 VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000,
1024 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
1025 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000,
1026 VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001,
1027 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000,
1028 VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001,
1029 VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002,
1030 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
1031 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
1032 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
1033 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
1034 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000,
1035 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000,
1036 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR = 1000387000,
1037 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE = 1000390000,
1038 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE = 1000390001,
1039 VK_STRUCTURE_TYPE_VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE = 1000390002,
1040 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE = 1000390003,
1041 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000,
1042 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001,
1043 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
1044 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
1045 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000,
1046 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = 1000395000,
1047 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = 1000395001,
1048 VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000,
1049 VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001,
1050 VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002,
1051 VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003,
1052 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004,
1053 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005,
1054 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006,
1055 VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007,
1056 VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008,
1057 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009,
1058#ifdef VK_ENABLE_BETA_EXTENSIONS
1059 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = 1000397000,
1060#endif
1061#ifdef VK_ENABLE_BETA_EXTENSIONS
1062 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = 1000397001,
1063#endif
1064#ifdef VK_ENABLE_BETA_EXTENSIONS
1065 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = 1000397002,
1066#endif
1067 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000,
1068 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001,
1069 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = 1000404002,
1070 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
1071 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
1072 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
1073 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000,
1074 VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = 1000417000,
1075 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = 1000417001,
1076 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = 1000417002,
1077 VK_STRUCTURE_TYPE_DISPATCH_PARAMETERS_ARM = 1000417003,
1078 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_DISPATCH_PARAMETERS_PROPERTIES_ARM = 1000417004,
1079 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000,
1080 VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001,
1081 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
1082 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
1083 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
1084 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
1085 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000,
1086 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001,
1087 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = 1000424002,
1088 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = 1000424003,
1089 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = 1000424004,
1090 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000,
1091 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000,
1092 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001,
1093 VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002,
1094 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV = 1000429008,
1095 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV = 1000429009,
1096 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV = 1000429010,
1097 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
1098 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = 1000434000,
1099 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
1100 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000,
1101 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001,
1102 VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002,
1103 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000,
1104 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001,
1105 VK_STRUCTURE_TYPE_NATIVE_BUFFER_USAGE_OHOS = 1000452000,
1106 VK_STRUCTURE_TYPE_NATIVE_BUFFER_PROPERTIES_OHOS = 1000452001,
1107 VK_STRUCTURE_TYPE_NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS = 1000452002,
1108 VK_STRUCTURE_TYPE_IMPORT_NATIVE_BUFFER_INFO_OHOS = 1000452003,
1109 VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS = 1000452004,
1110 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OHOS = 1000452005,
1111 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000,
1112 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000,
1113 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001,
1114 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
1115 VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001,
1116 VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002,
1117 VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003,
1118 VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000,
1119 VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001,
1120 VK_STRUCTURE_TYPE_TENSOR_CREATE_INFO_ARM = 1000460000,
1121 VK_STRUCTURE_TYPE_TENSOR_VIEW_CREATE_INFO_ARM = 1000460001,
1122 VK_STRUCTURE_TYPE_BIND_TENSOR_MEMORY_INFO_ARM = 1000460002,
1123 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_TENSOR_ARM = 1000460003,
1124 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM = 1000460004,
1125 VK_STRUCTURE_TYPE_TENSOR_FORMAT_PROPERTIES_ARM = 1000460005,
1126 VK_STRUCTURE_TYPE_TENSOR_DESCRIPTION_ARM = 1000460006,
1127 VK_STRUCTURE_TYPE_TENSOR_MEMORY_REQUIREMENTS_INFO_ARM = 1000460007,
1128 VK_STRUCTURE_TYPE_TENSOR_MEMORY_BARRIER_ARM = 1000460008,
1129 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM = 1000460009,
1130 VK_STRUCTURE_TYPE_DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM = 1000460010,
1131 VK_STRUCTURE_TYPE_COPY_TENSOR_INFO_ARM = 1000460011,
1132 VK_STRUCTURE_TYPE_TENSOR_COPY_ARM = 1000460012,
1133 VK_STRUCTURE_TYPE_TENSOR_DEPENDENCY_INFO_ARM = 1000460013,
1134 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM = 1000460014,
1135 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM = 1000460015,
1136 VK_STRUCTURE_TYPE_EXTERNAL_TENSOR_PROPERTIES_ARM = 1000460016,
1137 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM = 1000460017,
1138 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM = 1000460018,
1139 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM = 1000460019,
1140 VK_STRUCTURE_TYPE_DESCRIPTOR_GET_TENSOR_INFO_ARM = 1000460020,
1141 VK_STRUCTURE_TYPE_TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM = 1000460021,
1142 VK_STRUCTURE_TYPE_TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM = 1000460022,
1143 VK_STRUCTURE_TYPE_FRAME_BOUNDARY_TENSORS_ARM = 1000460023,
1144 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000,
1145 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001,
1146 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002,
1147 VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003,
1148 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000,
1149 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000,
1150 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001,
1151 VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002,
1152 VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003,
1153 VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004,
1154 VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005,
1155 VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010,
1156 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000,
1157 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000,
1158 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001,
1159 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002,
1160 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD = 1000476000,
1161 VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD = 1000476001,
1162 VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD = 1000476002,
1163#ifdef VK_ENABLE_BETA_EXTENSIONS
1164 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX = 1000478000,
1165#endif
1166#ifdef VK_ENABLE_BETA_EXTENSIONS
1167 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX = 1000478001,
1168#endif
1169 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR = 1000479000,
1170 VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR = 1000479001,
1171 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR = 1000479002,
1172 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR = 1000480000,
1173 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR = 1000480001,
1174 VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR = 1000480002,
1175 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = 1000481000,
1176 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = 1000482000,
1177 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = 1000482001,
1178 VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002,
1179 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR = 1000483000,
1180 VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR = 1000483001,
1181 VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR = 1000483002,
1182 VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR = 1000483003,
1183 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR = 1000483004,
1184 VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR = 1000483005,
1185 VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR = 1000483006,
1186 VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR = 1000483007,
1187 VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR = 1000483008,
1188 VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR = 1000483009,
1189 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000,
1190 VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001,
1191 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000,
1192 VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001,
1193 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR = 1000274000,
1194 VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR = 1000274001,
1195 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR = 1000274002,
1196 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR = 1000275000,
1197 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR = 1000275001,
1198 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR = 1000275002,
1199 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR = 1000275003,
1200 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR = 1000275004,
1201 VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR = 1000275005,
1202 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000,
1203 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000,
1204 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001,
1205 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV = 1000491000,
1206 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491001,
1207 VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491002,
1208 VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV = 1000491004,
1209 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000,
1210 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
1211 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
1212 VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
1213 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT = 1000495000,
1214 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT = 1000495001,
1215 VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = 1000496000,
1216 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
1217 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
1218 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000,
1219 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000,
1220 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INTERNALLY_SYNCHRONIZED_QUEUES_FEATURES_KHR = 1000504000,
1221 VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000,
1222 VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001,
1223 VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002,
1224 VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003,
1225 VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004,
1226 VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005,
1227 VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006,
1228 VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007,
1229 VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008,
1230 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000,
1231 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001,
1232 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002,
1233 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CREATE_INFO_ARM = 1000507000,
1234 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM = 1000507001,
1235 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM = 1000507002,
1236 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_ARM = 1000507003,
1237 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM = 1000507004,
1238 VK_STRUCTURE_TYPE_BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM = 1000507005,
1239 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM = 1000507006,
1240 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM = 1000507007,
1241 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM = 1000507008,
1242 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_INFO_ARM = 1000507009,
1243 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM = 1000507010,
1244 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM = 1000507011,
1245 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM = 1000507012,
1246 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM = 1000507013,
1247 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM = 1000507014,
1248 VK_STRUCTURE_TYPE_DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM = 1000507016,
1249 VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM = 1000507017,
1250 VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM = 1000507018,
1251 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM = 1000507019,
1252 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM = 1000507015,
1253 VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_TOSA_PROPERTIES_ARM = 1000508000,
1254 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000,
1255 VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
1256 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR = 1000201000,
1257 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR = 1000511000,
1258 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR = 1000512000,
1259 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR = 1000512001,
1260 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR = 1000512003,
1261 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000512004,
1262 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR = 1000512005,
1263 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR = 1000513000,
1264 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000513001,
1265 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR = 1000513002,
1266 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR = 1000513003,
1267 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR = 1000513004,
1268 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR = 1000513005,
1269 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR = 1000513006,
1270 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR = 1000513007,
1271 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR = 1000513008,
1272 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR = 1000513009,
1273 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR = 1000513010,
1274 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR = 1000514000,
1275 VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_CAPABILITIES_KHR = 1000514001,
1276 VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PICTURE_INFO_KHR = 1000514002,
1277 VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PROFILE_INFO_KHR = 1000514003,
1278 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR = 1000515000,
1279 VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR = 1000515001,
1280 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = 1000516000,
1281 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000,
1282 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001,
1283 VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002,
1284 VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000,
1285 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001,
1286 VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002,
1287 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000,
1288 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001,
1289 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000,
1290 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000,
1291 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR = 1000527000,
1292 VK_STRUCTURE_TYPE_ATTACHMENT_FEEDBACK_LOOP_INFO_EXT = 1000527001,
1293 VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000,
1294 VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001,
1295 VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002,
1296 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = 1000529003,
1297 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004,
1298 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000,
1299 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = 1000184000,
1300 VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = 1000545007,
1301 VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = 1000545008,
1302 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000,
1303 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM = 1000547000,
1304 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM = 1000547001,
1305 VK_STRUCTURE_TYPE_TILE_MEMORY_REQUIREMENTS_QCOM = 1000547002,
1306 VK_STRUCTURE_TYPE_TILE_MEMORY_BIND_INFO_QCOM = 1000547003,
1307 VK_STRUCTURE_TYPE_TILE_MEMORY_SIZE_INFO_QCOM = 1000547004,
1308 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR = 1000549000,
1309 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR = 1000426001,
1310 VK_STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR = 1000549002,
1311 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR = 1000549003,
1312 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT = 1000427000,
1313 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT = 1000427001,
1314 VK_STRUCTURE_TYPE_DECOMPRESS_MEMORY_INFO_EXT = 1000550002,
1315 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV = 1000551000,
1316 VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV = 1000551001,
1317 VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR = 1000552000,
1318 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR = 1000552001,
1319 VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR = 1000552002,
1320 VK_STRUCTURE_TYPE_VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR = 1000552003,
1321 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR = 1000552004,
1322 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553000,
1323 VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553001,
1324 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR = 1000553002,
1325 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000553005,
1326 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR = 1000553009,
1327 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553003,
1328 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553004,
1329 VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553006,
1330 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553007,
1331 VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553008,
1332 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV = 1000555000,
1333 VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV = 1000556000,
1334 VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV = 1000556001,
1335 VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV = 1000556002,
1336 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV = 1000556003,
1337 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR = 1000558000,
1338 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV = 1000559000,
1339 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR = 1000562000,
1340 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR = 1000562001,
1341 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR = 1000562002,
1342 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR = 1000562003,
1343 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR = 1000562004,
1344 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
1345 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = 1000564000,
1346 VK_STRUCTURE_TYPE_TENSOR_EXPLICIT_TILING_FORMAT_PROPERTIES_ARM = 1000565000,
1347 VK_STRUCTURE_TYPE_TENSOR_ROLLING_BACKING_CREATE_INFO_ARM = 1000565001,
1348 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT = 1000567000,
1349 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
1350 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV = 1000569000,
1351 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000569001,
1352 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV = 1000569002,
1353 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV = 1000569003,
1354 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV = 1000569004,
1355 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV = 1000569005,
1356 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV = 1000569006,
1357 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000569007,
1358 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV = 1000570000,
1359 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000570001,
1360 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570002,
1361 VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV = 1000570003,
1362 VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV = 1000570004,
1363 VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV = 1000570005,
1364 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT = 1000572000,
1365 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT = 1000572001,
1366 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT = 1000572002,
1367 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT = 1000572003,
1368 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT = 1000572004,
1369 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT = 1000572006,
1370 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT = 1000572007,
1371 VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT = 1000572008,
1372 VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT = 1000572009,
1373 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT = 1000572010,
1374 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT = 1000572011,
1375 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT = 1000572012,
1376 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT = 1000572013,
1377 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT = 1000572014,
1378 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_KHR = 1000573000,
1379 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_PROPERTIES_KHR = 1000573001,
1380 VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_KHR = 1000573002,
1381 VK_STRUCTURE_TYPE_DEVICE_FAULT_DEBUG_INFO_KHR = 1000573003,
1382 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR = 1000574000,
1383 VK_STRUCTURE_TYPE_MEMORY_BARRIER_ACCESS_FLAGS_3_KHR = 1000574002,
1384 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000,
1385 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = 1000575001,
1386 VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002,
1387 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR = 1000579000,
1388 VK_STRUCTURE_TYPE_PUSH_CONSTANT_BANK_INFO_NV = 1000580000,
1389 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_FEATURES_NV = 1000580001,
1390 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_PROPERTIES_NV = 1000580002,
1391 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT = 1000581000,
1392 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT = 1000581001,
1393 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT = 1000582000,
1394 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = 1000582001,
1395 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR = 1000584000,
1396 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR = 1000584001,
1397 VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR = 1000584002,
1398 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR = 1000586000,
1399 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586001,
1400 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586002,
1401 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586003,
1402 VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS = 1000685000,
1403 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI = 1000590000,
1404 VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI = 1000590001,
1405 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV = 1000593000,
1406 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV = 1000593001,
1407 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV = 1000593002,
1408 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM = 1000596000,
1409 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_FEEDBACK_2_FEATURES_KHR = 1000598000,
1410 VK_STRUCTURE_TYPE_VIDEO_ENCODE_FEEDBACK_2_CAPABILITIES_KHR = 1000598001,
1411 VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_PER_PARTITION_FEEDBACK_CREATE_INFO_KHR = 1000598002,
1412 VK_STRUCTURE_TYPE_IMPORT_MEMORY_METAL_HANDLE_INFO_EXT = 1000602000,
1413 VK_STRUCTURE_TYPE_MEMORY_METAL_HANDLE_PROPERTIES_EXT = 1000602001,
1414 VK_STRUCTURE_TYPE_MEMORY_GET_METAL_HANDLE_INFO_EXT = 1000602002,
1415 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR = 1000421000,
1416 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_FEATURES_ARM = 1000605000,
1417 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_PROPERTIES_ARM = 1000605001,
1418 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_ARM = 1000605002,
1419 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_ARM = 1000605003,
1420 VK_STRUCTURE_TYPE_RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM = 1000605004,
1421 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_FEATURES_ARM = 1000607000,
1422 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_PROPERTIES_ARM = 1000607001,
1423 VK_STRUCTURE_TYPE_SHADER_INSTRUMENTATION_CREATE_INFO_ARM = 1000607002,
1424 VK_STRUCTURE_TYPE_SHADER_INSTRUMENTATION_METRIC_DESCRIPTION_ARM = 1000607003,
1425 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT = 1000608000,
1426 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM = 1000609000,
1427 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE = 1000611000,
1428 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE = 1000611001,
1429 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE = 1000611002,
1430 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR = 1000286000,
1431 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR = 1000286001,
1432 VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV = 1000613000,
1433 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV = 1000613001,
1434 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SWAPCHAIN_FEATURES_EXT = 1000616000,
1435 VK_STRUCTURE_TYPE_SWAPCHAIN_FLAGS_SURFACE_CAPABILITIES_EXT = 1000616001,
1436 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT = 1000425000,
1437 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT = 1000425001,
1438 VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT = 1000425002,
1439 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT = 1000620000,
1440 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR = 1000361000,
1441 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_KHR = 1000623000,
1442 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_KHR = 1000623001,
1443 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MICROMAP_DATA_KHR = 1000623002,
1444 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_KHR = 1000623003,
1445 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT = 1000627000,
1446 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT = 1000628000,
1447 VK_STRUCTURE_TYPE_BEGIN_CUSTOM_RESOLVE_INFO_EXT = 1000628001,
1448 VK_STRUCTURE_TYPE_CUSTOM_RESOLVE_CREATE_INFO_EXT = 1000628002,
1449 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_MODEL_FEATURES_QCOM = 1000629000,
1450 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_BUILTIN_MODEL_CREATE_INFO_QCOM = 1000629001,
1451 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR = 1000630000,
1452 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR = 1000630001,
1453 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_FLAGS_INFO_KHR = 1000630002,
1454 VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR = 1000619003,
1455 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_MODE_INFO_KHR = 1000630004,
1456 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_OPTICAL_FLOW_FEATURES_ARM = 1000631000,
1457 VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_OPTICAL_FLOW_PROPERTIES_ARM = 1000631001,
1458 VK_STRUCTURE_TYPE_DATA_GRAPH_OPTICAL_FLOW_IMAGE_FORMAT_INFO_ARM = 1000631003,
1459 VK_STRUCTURE_TYPE_DATA_GRAPH_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_ARM = 1000631004,
1460 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_OPTICAL_FLOW_DISPATCH_INFO_ARM = 1000631005,
1461 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_OPTICAL_FLOW_CREATE_INFO_ARM = 1000631002,
1462 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_RESOURCE_INFO_IMAGE_LAYOUT_ARM = 1000631006,
1463 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SINGLE_NODE_CREATE_INFO_ARM = 1000631007,
1464 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SINGLE_NODE_CONNECTION_ARM = 1000631008,
1465 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_FEATURES_EXT = 1000635000,
1466 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_PROPERTIES_EXT = 1000635001,
1467 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC = 1000637000,
1468 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_FEATURES_EXT = 1000642000,
1469 VK_STRUCTURE_TYPE_COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NV = 1000645000,
1470 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV = 1000645001,
1471 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_11_FEATURES_KHR = 1000657000,
1472 VK_STRUCTURE_TYPE_QUEUE_FAMILY_OPTIMAL_IMAGE_TRANSFER_GRANULARITY_PROPERTIES_KHR = 1000657001,
1473 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_PARTITIONED_FEATURES_EXT = 1000662000,
1474 VK_STRUCTURE_TYPE_UBM_SURFACE_CREATE_INFO_SEC = 1000664000,
1475 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_4_KHR = 1000668000,
1476 VK_STRUCTURE_TYPE_IMAGE_CREATE_FLAGS_2_CREATE_INFO_KHR = 1000668001,
1477 VK_STRUCTURE_TYPE_IMAGE_USAGE_FLAGS_2_CREATE_INFO_KHR = 1000668002,
1478 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_2_CREATE_INFO_KHR = 1000668003,
1479 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_FLAGS_FEATURES_KHR = 1000668004,
1480 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_2_CREATE_INFO_KHR = 1000668005,
1481 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_2_KHR = 1000668006,
1482 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OCP_MICROSCALING_TYPES_FEATURES_EXT = 1000672000,
1483 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MIXED_FLOAT_DOT_PRODUCT_FEATURES_VALVE = 1000673000,
1484 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_THROTTLE_HINT_FEATURES_SEC = 1000674000,
1485 VK_STRUCTURE_TYPE_THROTTLE_HINT_SUBMIT_INFO_SEC = 1000674001,
1486 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_NEURAL_STATISTICS_CREATE_INFO_ARM = 1000676000,
1487 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_NEURAL_STATISTICS_CREATE_INFO_ARM = 1000676001,
1488 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_NEURAL_ACCELERATOR_STATISTICS_FEATURES_ARM = 1000676002,
1489 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_RESTART_INDEX_FEATURES_EXT = 1000678000,
1490 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_DECODE_VECTOR_FEATURES_NV = 1000689000,
1491 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1492 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
1493 // VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT is a legacy alias
1494 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
1495 VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO,
1496 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
1497 VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
1498 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
1499 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
1500 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
1501 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
1502 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
1503 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
1504 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
1505 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
1506 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
1507 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
1508 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
1509 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
1510 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
1511 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
1512 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
1513 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
1514 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
1515 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
1516 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
1517 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
1518 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
1519 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
1520 VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO,
1521 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES,
1522 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES,
1523 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
1524 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
1525 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
1526 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
1527 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
1528 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
1529 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
1530 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
1531 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
1532 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
1533 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
1534 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
1535 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
1536 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES,
1537 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1538 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1539 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
1540 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
1541 // VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT is a legacy alias
1542 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
1543 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
1544 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
1545 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
1546 VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
1547 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
1548 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
1549 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
1550 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
1551 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
1552 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
1553 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
1554 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
1555 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
1556 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
1557 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
1558 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
1559 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
1560 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
1561 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1562 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
1563 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
1564 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
1565 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
1566 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
1567 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
1568 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
1569 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
1570 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
1571 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
1572 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
1573 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
1574 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
1575 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
1576 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
1577 VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
1578 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
1579 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
1580 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
1581 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
1582 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
1583 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
1584 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
1585 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
1586 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
1587 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
1588 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
1589 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
1590 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
1591 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
1592 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
1593 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
1594 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
1595 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
1596 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
1597 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR,
1598 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
1599 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
1600 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
1601 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
1602 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
1603 VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
1604 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
1605 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
1606 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
1607 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
1608 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR,
1609 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
1610 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
1611 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
1612 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
1613 VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
1614 VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
1615 VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
1616 // VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL is a legacy alias
1617 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
1618 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
1619 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
1620 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
1621 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
1622 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1623 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
1624 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES,
1625 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO,
1626 VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO,
1627 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
1628 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
1629 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
1630 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
1631 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1632 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
1633 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
1634 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
1635 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
1636 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1637 VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
1638 VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
1639 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
1640 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
1641 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
1642 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
1643 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
1644 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
1645 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES,
1646 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES,
1647 VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY,
1648 VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY,
1649 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO,
1650 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO,
1651 VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO,
1652 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO,
1653 VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE,
1654 VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY,
1655 VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_MAP_INFO,
1656 VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO,
1657 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR,
1658 VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR,
1659 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR,
1660 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR,
1661 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR,
1662 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR,
1663 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR,
1664 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR,
1665 VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR,
1666 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
1667 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
1668 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
1669 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
1670 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR,
1671 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR,
1672 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
1673 VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
1674 VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
1675 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
1676 VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
1677 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
1678 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
1679 VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
1680 VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
1681 VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
1682 VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
1683 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
1684 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
1685 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
1686 VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
1687 VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
1688 VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
1689 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
1690 VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
1691 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
1692 VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
1693 VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
1694 VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
1695 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
1696 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
1697 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
1698 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
1699 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
1700 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
1701 VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
1702 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
1703 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR,
1704 VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
1705 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
1706 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
1707 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
1708 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
1709 VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
1710 VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
1711 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES,
1712 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR,
1713 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT,
1714 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT,
1715 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT,
1716 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR,
1717 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT,
1718 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT,
1719 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES,
1720 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES,
1721 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES,
1722 VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_AREA_INFO,
1723 VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO,
1724 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
1725 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
1726 VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO,
1727 VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO,
1728 VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1729 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES,
1730 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
1731 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
1732 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES,
1733 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
1734 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
1735 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
1736 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
1737 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES,
1738 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES,
1739 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES,
1740 VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS,
1741 VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO,
1742 VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO,
1743 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO,
1744 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO,
1745 VK_STRUCTURE_TYPE_RENDERING_END_INFO_EXT = VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR,
1746 VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
1747} VkStructureType;
1748
1749typedef enum VkObjectType {
1750 VK_OBJECT_TYPE_UNKNOWN = 0,
1751 VK_OBJECT_TYPE_INSTANCE = 1,
1752 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1753 VK_OBJECT_TYPE_DEVICE = 3,
1754 VK_OBJECT_TYPE_QUEUE = 4,
1755 VK_OBJECT_TYPE_SEMAPHORE = 5,
1756 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1757 VK_OBJECT_TYPE_FENCE = 7,
1758 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1759 VK_OBJECT_TYPE_BUFFER = 9,
1760 VK_OBJECT_TYPE_IMAGE = 10,
1761 VK_OBJECT_TYPE_EVENT = 11,
1762 VK_OBJECT_TYPE_QUERY_POOL = 12,
1763 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1764 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1765 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1766 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1767 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1768 VK_OBJECT_TYPE_RENDER_PASS = 18,
1769 VK_OBJECT_TYPE_PIPELINE = 19,
1770 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1771 VK_OBJECT_TYPE_SAMPLER = 21,
1772 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1773 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1774 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1775 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1776 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1777 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1778 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
1779 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1780 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1781 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1782 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1783 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1784 VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
1785 VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
1786 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
1787 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
1788 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1789 VK_OBJECT_TYPE_GPA_SESSION_AMD = 1000133000,
1790 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
1791 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
1792 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1793 VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
1794 VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
1795 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
1796#ifdef VK_ENABLE_BETA_EXTENSIONS
1797 VK_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000,
1798#endif
1799#ifdef VK_ENABLE_BETA_EXTENSIONS
1800 VK_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001,
1801#endif
1802 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000,
1803 VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000,
1804 VK_OBJECT_TYPE_TENSOR_ARM = 1000460000,
1805 VK_OBJECT_TYPE_TENSOR_VIEW_ARM = 1000460001,
1806 VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000,
1807 VK_OBJECT_TYPE_SHADER_EXT = 1000482000,
1808 VK_OBJECT_TYPE_PIPELINE_BINARY_KHR = 1000483000,
1809 VK_OBJECT_TYPE_DATA_GRAPH_PIPELINE_SESSION_ARM = 1000507000,
1810 VK_OBJECT_TYPE_EXTERNAL_COMPUTE_QUEUE_NV = 1000556000,
1811 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT = 1000572000,
1812 VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT = 1000572001,
1813 VK_OBJECT_TYPE_SHADER_INSTRUMENTATION_ARM = 1000607000,
1814 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1815 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1816 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
1817 VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
1818} VkObjectType;
1819
1820typedef enum VkVendorId {
1821 VK_VENDOR_ID_KHRONOS = 0x10000,
1822 VK_VENDOR_ID_VIV = 0x10001,
1823 VK_VENDOR_ID_VSI = 0x10002,
1824 VK_VENDOR_ID_KAZAN = 0x10003,
1825 VK_VENDOR_ID_CODEPLAY = 0x10004,
1826 VK_VENDOR_ID_MESA = 0x10005,
1827 VK_VENDOR_ID_POCL = 0x10006,
1828 VK_VENDOR_ID_MOBILEYE = 0x10007,
1829 VK_VENDOR_ID_APE = 0x10008,
1830 VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
1831} VkVendorId;
1832
1833typedef enum VkSystemAllocationScope {
1834 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
1835 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
1836 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
1837 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
1838 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
1839 VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
1840} VkSystemAllocationScope;
1841
1842typedef enum VkInternalAllocationType {
1843 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
1844 VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
1845} VkInternalAllocationType;
1846
1847typedef enum VkFormat {
1848 VK_FORMAT_UNDEFINED = 0,
1849 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1850 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1851 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1852 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1853 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1854 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1855 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1856 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1857 VK_FORMAT_R8_UNORM = 9,
1858 VK_FORMAT_R8_SNORM = 10,
1859 VK_FORMAT_R8_USCALED = 11,
1860 VK_FORMAT_R8_SSCALED = 12,
1861 VK_FORMAT_R8_UINT = 13,
1862 VK_FORMAT_R8_SINT = 14,
1863 VK_FORMAT_R8_SRGB = 15,
1864 VK_FORMAT_R8G8_UNORM = 16,
1865 VK_FORMAT_R8G8_SNORM = 17,
1866 VK_FORMAT_R8G8_USCALED = 18,
1867 VK_FORMAT_R8G8_SSCALED = 19,
1868 VK_FORMAT_R8G8_UINT = 20,
1869 VK_FORMAT_R8G8_SINT = 21,
1870 VK_FORMAT_R8G8_SRGB = 22,
1871 VK_FORMAT_R8G8B8_UNORM = 23,
1872 VK_FORMAT_R8G8B8_SNORM = 24,
1873 VK_FORMAT_R8G8B8_USCALED = 25,
1874 VK_FORMAT_R8G8B8_SSCALED = 26,
1875 VK_FORMAT_R8G8B8_UINT = 27,
1876 VK_FORMAT_R8G8B8_SINT = 28,
1877 VK_FORMAT_R8G8B8_SRGB = 29,
1878 VK_FORMAT_B8G8R8_UNORM = 30,
1879 VK_FORMAT_B8G8R8_SNORM = 31,
1880 VK_FORMAT_B8G8R8_USCALED = 32,
1881 VK_FORMAT_B8G8R8_SSCALED = 33,
1882 VK_FORMAT_B8G8R8_UINT = 34,
1883 VK_FORMAT_B8G8R8_SINT = 35,
1884 VK_FORMAT_B8G8R8_SRGB = 36,
1885 VK_FORMAT_R8G8B8A8_UNORM = 37,
1886 VK_FORMAT_R8G8B8A8_SNORM = 38,
1887 VK_FORMAT_R8G8B8A8_USCALED = 39,
1888 VK_FORMAT_R8G8B8A8_SSCALED = 40,
1889 VK_FORMAT_R8G8B8A8_UINT = 41,
1890 VK_FORMAT_R8G8B8A8_SINT = 42,
1891 VK_FORMAT_R8G8B8A8_SRGB = 43,
1892 VK_FORMAT_B8G8R8A8_UNORM = 44,
1893 VK_FORMAT_B8G8R8A8_SNORM = 45,
1894 VK_FORMAT_B8G8R8A8_USCALED = 46,
1895 VK_FORMAT_B8G8R8A8_SSCALED = 47,
1896 VK_FORMAT_B8G8R8A8_UINT = 48,
1897 VK_FORMAT_B8G8R8A8_SINT = 49,
1898 VK_FORMAT_B8G8R8A8_SRGB = 50,
1899 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1900 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1901 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1902 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1903 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1904 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1905 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1906 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1907 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1908 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1909 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1910 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1911 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1912 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1913 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1914 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1915 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1916 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1917 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1918 VK_FORMAT_R16_UNORM = 70,
1919 VK_FORMAT_R16_SNORM = 71,
1920 VK_FORMAT_R16_USCALED = 72,
1921 VK_FORMAT_R16_SSCALED = 73,
1922 VK_FORMAT_R16_UINT = 74,
1923 VK_FORMAT_R16_SINT = 75,
1924 VK_FORMAT_R16_SFLOAT = 76,
1925 VK_FORMAT_R16G16_UNORM = 77,
1926 VK_FORMAT_R16G16_SNORM = 78,
1927 VK_FORMAT_R16G16_USCALED = 79,
1928 VK_FORMAT_R16G16_SSCALED = 80,
1929 VK_FORMAT_R16G16_UINT = 81,
1930 VK_FORMAT_R16G16_SINT = 82,
1931 VK_FORMAT_R16G16_SFLOAT = 83,
1932 VK_FORMAT_R16G16B16_UNORM = 84,
1933 VK_FORMAT_R16G16B16_SNORM = 85,
1934 VK_FORMAT_R16G16B16_USCALED = 86,
1935 VK_FORMAT_R16G16B16_SSCALED = 87,
1936 VK_FORMAT_R16G16B16_UINT = 88,
1937 VK_FORMAT_R16G16B16_SINT = 89,
1938 VK_FORMAT_R16G16B16_SFLOAT = 90,
1939 VK_FORMAT_R16G16B16A16_UNORM = 91,
1940 VK_FORMAT_R16G16B16A16_SNORM = 92,
1941 VK_FORMAT_R16G16B16A16_USCALED = 93,
1942 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1943 VK_FORMAT_R16G16B16A16_UINT = 95,
1944 VK_FORMAT_R16G16B16A16_SINT = 96,
1945 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1946 VK_FORMAT_R32_UINT = 98,
1947 VK_FORMAT_R32_SINT = 99,
1948 VK_FORMAT_R32_SFLOAT = 100,
1949 VK_FORMAT_R32G32_UINT = 101,
1950 VK_FORMAT_R32G32_SINT = 102,
1951 VK_FORMAT_R32G32_SFLOAT = 103,
1952 VK_FORMAT_R32G32B32_UINT = 104,
1953 VK_FORMAT_R32G32B32_SINT = 105,
1954 VK_FORMAT_R32G32B32_SFLOAT = 106,
1955 VK_FORMAT_R32G32B32A32_UINT = 107,
1956 VK_FORMAT_R32G32B32A32_SINT = 108,
1957 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1958 VK_FORMAT_R64_UINT = 110,
1959 VK_FORMAT_R64_SINT = 111,
1960 VK_FORMAT_R64_SFLOAT = 112,
1961 VK_FORMAT_R64G64_UINT = 113,
1962 VK_FORMAT_R64G64_SINT = 114,
1963 VK_FORMAT_R64G64_SFLOAT = 115,
1964 VK_FORMAT_R64G64B64_UINT = 116,
1965 VK_FORMAT_R64G64B64_SINT = 117,
1966 VK_FORMAT_R64G64B64_SFLOAT = 118,
1967 VK_FORMAT_R64G64B64A64_UINT = 119,
1968 VK_FORMAT_R64G64B64A64_SINT = 120,
1969 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1970 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1971 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1972 VK_FORMAT_D16_UNORM = 124,
1973 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1974 VK_FORMAT_D32_SFLOAT = 126,
1975 VK_FORMAT_S8_UINT = 127,
1976 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1977 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1978 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1979 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1980 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1981 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1982 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1983 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1984 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1985 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1986 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1987 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1988 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1989 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1990 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1991 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1992 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1993 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1994 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1995 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1996 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1997 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1998 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1999 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
2000 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
2001 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
2002 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
2003 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
2004 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
2005 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
2006 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
2007 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
2008 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
2009 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
2010 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
2011 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
2012 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
2013 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
2014 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
2015 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
2016 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
2017 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
2018 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
2019 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
2020 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
2021 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
2022 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
2023 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
2024 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
2025 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
2026 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
2027 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
2028 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
2029 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
2030 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
2031 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
2032 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
2033 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
2034 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
2035 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
2036 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
2037 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
2038 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
2039 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
2040 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
2041 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
2042 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
2043 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
2044 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
2045 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
2046 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
2047 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
2048 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
2049 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
2050 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
2051 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
2052 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
2053 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
2054 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
2055 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
2056 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
2057 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
2058 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
2059 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
2060 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
2061 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
2062 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
2063 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
2064 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
2065 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
2066 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
2067 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
2068 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
2069 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
2070 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
2071 VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
2072 VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
2073 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
2074 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
2075 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
2076 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
2077 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
2078 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
2079 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
2080 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
2081 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
2082 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
2083 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
2084 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
2085 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
2086 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
2087 VK_FORMAT_A1B5G5R5_UNORM_PACK16 = 1000470000,
2088 VK_FORMAT_A8_UNORM = 1000470001,
2089 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
2090 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
2091 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
2092 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
2093 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
2094 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
2095 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
2096 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
2097 VK_FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT = 1000288000,
2098 VK_FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT = 1000288001,
2099 VK_FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXT = 1000288002,
2100 VK_FORMAT_ASTC_4x3x3_UNORM_BLOCK_EXT = 1000288003,
2101 VK_FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT = 1000288004,
2102 VK_FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXT = 1000288005,
2103 VK_FORMAT_ASTC_4x4x3_UNORM_BLOCK_EXT = 1000288006,
2104 VK_FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT = 1000288007,
2105 VK_FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXT = 1000288008,
2106 VK_FORMAT_ASTC_4x4x4_UNORM_BLOCK_EXT = 1000288009,
2107 VK_FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT = 1000288010,
2108 VK_FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXT = 1000288011,
2109 VK_FORMAT_ASTC_5x4x4_UNORM_BLOCK_EXT = 1000288012,
2110 VK_FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT = 1000288013,
2111 VK_FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXT = 1000288014,
2112 VK_FORMAT_ASTC_5x5x4_UNORM_BLOCK_EXT = 1000288015,
2113 VK_FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT = 1000288016,
2114 VK_FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXT = 1000288017,
2115 VK_FORMAT_ASTC_5x5x5_UNORM_BLOCK_EXT = 1000288018,
2116 VK_FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT = 1000288019,
2117 VK_FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXT = 1000288020,
2118 VK_FORMAT_ASTC_6x5x5_UNORM_BLOCK_EXT = 1000288021,
2119 VK_FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT = 1000288022,
2120 VK_FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT = 1000288023,
2121 VK_FORMAT_ASTC_6x6x5_UNORM_BLOCK_EXT = 1000288024,
2122 VK_FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT = 1000288025,
2123 VK_FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT = 1000288026,
2124 VK_FORMAT_ASTC_6x6x6_UNORM_BLOCK_EXT = 1000288027,
2125 VK_FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT = 1000288028,
2126 VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT = 1000288029,
2127 VK_FORMAT_R8_BOOL_ARM = 1000460000,
2128 VK_FORMAT_R16_SFLOAT_FPENCODING_BFLOAT16_ARM = 1000460001,
2129 VK_FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E4M3_ARM = 1000460002,
2130 VK_FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E5M2_ARM = 1000460003,
2131 VK_FORMAT_R16G16_SFIXED5_NV = 1000464000,
2132 VK_FORMAT_R10X6_UINT_PACK16_ARM = 1000609000,
2133 VK_FORMAT_R10X6G10X6_UINT_2PACK16_ARM = 1000609001,
2134 VK_FORMAT_R10X6G10X6B10X6A10X6_UINT_4PACK16_ARM = 1000609002,
2135 VK_FORMAT_R12X4_UINT_PACK16_ARM = 1000609003,
2136 VK_FORMAT_R12X4G12X4_UINT_2PACK16_ARM = 1000609004,
2137 VK_FORMAT_R12X4G12X4B12X4A12X4_UINT_4PACK16_ARM = 1000609005,
2138 VK_FORMAT_R14X2_UINT_PACK16_ARM = 1000609006,
2139 VK_FORMAT_R14X2G14X2_UINT_2PACK16_ARM = 1000609007,
2140 VK_FORMAT_R14X2G14X2B14X2A14X2_UINT_4PACK16_ARM = 1000609008,
2141 VK_FORMAT_R14X2_UNORM_PACK16_ARM = 1000609009,
2142 VK_FORMAT_R14X2G14X2_UNORM_2PACK16_ARM = 1000609010,
2143 VK_FORMAT_R14X2G14X2B14X2A14X2_UNORM_4PACK16_ARM = 1000609011,
2144 VK_FORMAT_G14X2_B14X2R14X2_2PLANE_420_UNORM_3PACK16_ARM = 1000609012,
2145 VK_FORMAT_G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM = 1000609013,
2146 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
2147 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
2148 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
2149 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
2150 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
2151 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
2152 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
2153 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
2154 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
2155 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
2156 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
2157 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
2158 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
2159 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
2160 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
2161 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
2162 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
2163 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
2164 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
2165 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
2166 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
2167 VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
2168 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
2169 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
2170 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
2171 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
2172 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
2173 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
2174 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
2175 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
2176 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
2177 VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
2178 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
2179 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
2180 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
2181 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
2182 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
2183 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
2184 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
2185 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
2186 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
2187 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
2188 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
2189 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
2190 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
2191 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
2192 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
2193 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
2194 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
2195 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
2196 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
2197 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
2198 VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
2199 VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
2200 // VK_FORMAT_R16G16_S10_5_NV is a legacy alias
2201 VK_FORMAT_R16G16_S10_5_NV = VK_FORMAT_R16G16_SFIXED5_NV,
2202 VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = VK_FORMAT_A1B5G5R5_UNORM_PACK16,
2203 VK_FORMAT_A8_UNORM_KHR = VK_FORMAT_A8_UNORM,
2204 VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
2205} VkFormat;
2206
2207typedef enum VkImageTiling {
2208 VK_IMAGE_TILING_OPTIMAL = 0,
2209 VK_IMAGE_TILING_LINEAR = 1,
2210 VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
2211 VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
2212} VkImageTiling;
2213
2214typedef enum VkImageType {
2215 VK_IMAGE_TYPE_1D = 0,
2216 VK_IMAGE_TYPE_2D = 1,
2217 VK_IMAGE_TYPE_3D = 2,
2218 VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
2219} VkImageType;
2220
2221typedef enum VkPhysicalDeviceType {
2222 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
2223 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
2224 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
2225 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
2226 VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
2227 VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
2228} VkPhysicalDeviceType;
2229
2230typedef enum VkQueryType {
2231 VK_QUERY_TYPE_OCCLUSION = 0,
2232 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
2233 VK_QUERY_TYPE_TIMESTAMP = 2,
2234 VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
2235 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
2236 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
2237 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
2238 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
2239 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
2240 VK_QUERY_TYPE_TIME_ELAPSED_QCOM = 1000173000,
2241 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
2242 VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000,
2243 VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000,
2244 VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000,
2245 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000,
2246 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001,
2247 VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000,
2248 VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001,
2249 VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
2250} VkQueryType;
2251
2252typedef enum VkSharingMode {
2253 VK_SHARING_MODE_EXCLUSIVE = 0,
2254 VK_SHARING_MODE_CONCURRENT = 1,
2255 VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
2256} VkSharingMode;
2257
2258typedef enum VkImageLayout {
2259 VK_IMAGE_LAYOUT_UNDEFINED = 0,
2260 VK_IMAGE_LAYOUT_GENERAL = 1,
2261 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
2262 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
2263 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
2264 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
2265 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
2266 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
2267 VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
2268 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
2269 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
2270 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
2271 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
2272 VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
2273 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
2274 VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
2275 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
2276 VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ = 1000232000,
2277 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
2278 VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
2279 VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
2280 VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
2281 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
2282 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
2283 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
2284 VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
2285 VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
2286 VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
2287 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000,
2288 VK_IMAGE_LAYOUT_TENSOR_ALIASING_ARM = 1000460000,
2289 VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR = 1000553000,
2290 VK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT = 1000620000,
2291 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
2292 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
2293 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
2294 VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR = VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ,
2295 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
2296 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
2297 VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
2298 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
2299 VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
2300 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
2301 VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
2302} VkImageLayout;
2303
2304typedef enum VkComponentSwizzle {
2305 VK_COMPONENT_SWIZZLE_IDENTITY = 0,
2306 VK_COMPONENT_SWIZZLE_ZERO = 1,
2307 VK_COMPONENT_SWIZZLE_ONE = 2,
2308 VK_COMPONENT_SWIZZLE_R = 3,
2309 VK_COMPONENT_SWIZZLE_G = 4,
2310 VK_COMPONENT_SWIZZLE_B = 5,
2311 VK_COMPONENT_SWIZZLE_A = 6,
2312 VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
2313} VkComponentSwizzle;
2314
2315typedef enum VkImageViewType {
2316 VK_IMAGE_VIEW_TYPE_1D = 0,
2317 VK_IMAGE_VIEW_TYPE_2D = 1,
2318 VK_IMAGE_VIEW_TYPE_3D = 2,
2319 VK_IMAGE_VIEW_TYPE_CUBE = 3,
2320 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
2321 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
2322 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
2323 VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
2324} VkImageViewType;
2325
2326typedef enum VkCommandBufferLevel {
2327 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
2328 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
2329 VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
2330} VkCommandBufferLevel;
2331
2332typedef enum VkIndexType {
2333 VK_INDEX_TYPE_UINT16 = 0,
2334 VK_INDEX_TYPE_UINT32 = 1,
2335 VK_INDEX_TYPE_UINT8 = 1000265000,
2336 VK_INDEX_TYPE_NONE_KHR = 1000165000,
2337 VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
2338 VK_INDEX_TYPE_UINT8_EXT = VK_INDEX_TYPE_UINT8,
2339 VK_INDEX_TYPE_UINT8_KHR = VK_INDEX_TYPE_UINT8,
2340 VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
2341} VkIndexType;
2342
2343typedef enum VkPipelineCacheHeaderVersion {
2344 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
2345 VK_PIPELINE_CACHE_HEADER_VERSION_DATA_GRAPH_QCOM = 1000629000,
2346 VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
2347} VkPipelineCacheHeaderVersion;
2348
2349typedef enum VkBorderColor {
2350 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
2351 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
2352 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
2353 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
2354 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
2355 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
2356 VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
2357 VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
2358 VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
2359} VkBorderColor;
2360
2361typedef enum VkFilter {
2362 VK_FILTER_NEAREST = 0,
2363 VK_FILTER_LINEAR = 1,
2364 VK_FILTER_CUBIC_EXT = 1000015000,
2365 VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT,
2366 VK_FILTER_MAX_ENUM = 0x7FFFFFFF
2367} VkFilter;
2368
2369typedef enum VkSamplerAddressMode {
2370 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
2371 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
2372 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
2373 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
2374 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
2375 // VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR is a legacy alias
2376 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
2377 VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
2378} VkSamplerAddressMode;
2379
2380typedef enum VkCompareOp {
2381 VK_COMPARE_OP_NEVER = 0,
2382 VK_COMPARE_OP_LESS = 1,
2383 VK_COMPARE_OP_EQUAL = 2,
2384 VK_COMPARE_OP_LESS_OR_EQUAL = 3,
2385 VK_COMPARE_OP_GREATER = 4,
2386 VK_COMPARE_OP_NOT_EQUAL = 5,
2387 VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
2388 VK_COMPARE_OP_ALWAYS = 7,
2389 VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
2390} VkCompareOp;
2391
2392typedef enum VkSamplerMipmapMode {
2393 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
2394 VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
2395 VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
2396} VkSamplerMipmapMode;
2397
2398typedef enum VkDescriptorType {
2399 VK_DESCRIPTOR_TYPE_SAMPLER = 0,
2400 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
2401 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
2402 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
2403 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
2404 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
2405 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
2406 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
2407 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
2408 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
2409 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
2410 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
2411 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
2412 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
2413 VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
2414 VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001,
2415 VK_DESCRIPTOR_TYPE_TENSOR_ARM = 1000460000,
2416 VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000,
2417 VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570000,
2418 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
2419 VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
2420 VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
2421} VkDescriptorType;
2422
2423typedef enum VkPipelineBindPoint {
2424 VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
2425 VK_PIPELINE_BIND_POINT_COMPUTE = 1,
2426#ifdef VK_ENABLE_BETA_EXTENSIONS
2427 VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000,
2428#endif
2429 VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
2430 VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
2431 VK_PIPELINE_BIND_POINT_DATA_GRAPH_ARM = 1000507000,
2432 VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
2433 VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
2434} VkPipelineBindPoint;
2435
2436typedef enum VkBlendFactor {
2437 VK_BLEND_FACTOR_ZERO = 0,
2438 VK_BLEND_FACTOR_ONE = 1,
2439 VK_BLEND_FACTOR_SRC_COLOR = 2,
2440 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
2441 VK_BLEND_FACTOR_DST_COLOR = 4,
2442 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
2443 VK_BLEND_FACTOR_SRC_ALPHA = 6,
2444 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
2445 VK_BLEND_FACTOR_DST_ALPHA = 8,
2446 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
2447 VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
2448 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
2449 VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
2450 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
2451 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
2452 VK_BLEND_FACTOR_SRC1_COLOR = 15,
2453 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
2454 VK_BLEND_FACTOR_SRC1_ALPHA = 17,
2455 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
2456 VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
2457} VkBlendFactor;
2458
2459typedef enum VkBlendOp {
2460 VK_BLEND_OP_ADD = 0,
2461 VK_BLEND_OP_SUBTRACT = 1,
2462 VK_BLEND_OP_REVERSE_SUBTRACT = 2,
2463 VK_BLEND_OP_MIN = 3,
2464 VK_BLEND_OP_MAX = 4,
2465 VK_BLEND_OP_ZERO_EXT = 1000148000,
2466 VK_BLEND_OP_SRC_EXT = 1000148001,
2467 VK_BLEND_OP_DST_EXT = 1000148002,
2468 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
2469 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
2470 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
2471 VK_BLEND_OP_DST_IN_EXT = 1000148006,
2472 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
2473 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
2474 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
2475 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
2476 VK_BLEND_OP_XOR_EXT = 1000148011,
2477 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
2478 VK_BLEND_OP_SCREEN_EXT = 1000148013,
2479 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
2480 VK_BLEND_OP_DARKEN_EXT = 1000148015,
2481 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
2482 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
2483 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
2484 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
2485 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
2486 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
2487 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
2488 VK_BLEND_OP_INVERT_EXT = 1000148023,
2489 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
2490 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
2491 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
2492 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
2493 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
2494 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
2495 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
2496 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
2497 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
2498 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
2499 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
2500 VK_BLEND_OP_PLUS_EXT = 1000148035,
2501 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
2502 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
2503 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
2504 VK_BLEND_OP_MINUS_EXT = 1000148039,
2505 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
2506 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
2507 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
2508 VK_BLEND_OP_RED_EXT = 1000148043,
2509 VK_BLEND_OP_GREEN_EXT = 1000148044,
2510 VK_BLEND_OP_BLUE_EXT = 1000148045,
2511 VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
2512} VkBlendOp;
2513
2514typedef enum VkDynamicState {
2515 VK_DYNAMIC_STATE_VIEWPORT = 0,
2516 VK_DYNAMIC_STATE_SCISSOR = 1,
2517 VK_DYNAMIC_STATE_LINE_WIDTH = 2,
2518 VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
2519 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
2520 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
2521 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
2522 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
2523 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
2524 VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
2525 VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
2526 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
2527 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
2528 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
2529 VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
2530 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
2531 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
2532 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
2533 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
2534 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
2535 VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
2536 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
2537 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
2538 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
2539 VK_DYNAMIC_STATE_LINE_STIPPLE = 1000259000,
2540 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
2541 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
2542 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001,
2543 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002,
2544 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
2545 VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
2546 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
2547 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
2548 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000,
2549 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
2550 VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
2551 VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000,
2552 VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000,
2553 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003,
2554 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000,
2555 VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003,
2556 VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004,
2557 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005,
2558 VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006,
2559 VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007,
2560 VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008,
2561 VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009,
2562 VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010,
2563 VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011,
2564 VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012,
2565 VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002,
2566 VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013,
2567 VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014,
2568 VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015,
2569 VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016,
2570 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017,
2571 VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018,
2572 VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019,
2573 VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020,
2574 VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021,
2575 VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022,
2576 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023,
2577 VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024,
2578 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025,
2579 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026,
2580 VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027,
2581 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028,
2582 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029,
2583 VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030,
2584 VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031,
2585 VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
2586 VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000,
2587 VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT = 1000582000,
2588 VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = VK_DYNAMIC_STATE_LINE_STIPPLE,
2589 VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
2590 VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
2591 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
2592 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
2593 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
2594 VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
2595 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
2596 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
2597 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
2598 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
2599 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
2600 VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP,
2601 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
2602 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
2603 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
2604 VK_DYNAMIC_STATE_LINE_STIPPLE_KHR = VK_DYNAMIC_STATE_LINE_STIPPLE,
2605 VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
2606} VkDynamicState;
2607
2608typedef enum VkFrontFace {
2609 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
2610 VK_FRONT_FACE_CLOCKWISE = 1,
2611 VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
2612} VkFrontFace;
2613
2614typedef enum VkLogicOp {
2615 VK_LOGIC_OP_CLEAR = 0,
2616 VK_LOGIC_OP_AND = 1,
2617 VK_LOGIC_OP_AND_REVERSE = 2,
2618 VK_LOGIC_OP_COPY = 3,
2619 VK_LOGIC_OP_AND_INVERTED = 4,
2620 VK_LOGIC_OP_NO_OP = 5,
2621 VK_LOGIC_OP_XOR = 6,
2622 VK_LOGIC_OP_OR = 7,
2623 VK_LOGIC_OP_NOR = 8,
2624 VK_LOGIC_OP_EQUIVALENT = 9,
2625 VK_LOGIC_OP_INVERT = 10,
2626 VK_LOGIC_OP_OR_REVERSE = 11,
2627 VK_LOGIC_OP_COPY_INVERTED = 12,
2628 VK_LOGIC_OP_OR_INVERTED = 13,
2629 VK_LOGIC_OP_NAND = 14,
2630 VK_LOGIC_OP_SET = 15,
2631 VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
2632} VkLogicOp;
2633
2634typedef enum VkStencilOp {
2635 VK_STENCIL_OP_KEEP = 0,
2636 VK_STENCIL_OP_ZERO = 1,
2637 VK_STENCIL_OP_REPLACE = 2,
2638 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
2639 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
2640 VK_STENCIL_OP_INVERT = 5,
2641 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
2642 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
2643 VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
2644} VkStencilOp;
2645
2646typedef enum VkVertexInputRate {
2647 VK_VERTEX_INPUT_RATE_VERTEX = 0,
2648 VK_VERTEX_INPUT_RATE_INSTANCE = 1,
2649 VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
2650} VkVertexInputRate;
2651
2652typedef enum VkPrimitiveTopology {
2653 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
2654 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
2655 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
2656 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
2657 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
2658 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
2659 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
2660 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
2661 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
2662 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
2663 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
2664 VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
2665} VkPrimitiveTopology;
2666
2667typedef enum VkPolygonMode {
2668 VK_POLYGON_MODE_FILL = 0,
2669 VK_POLYGON_MODE_LINE = 1,
2670 VK_POLYGON_MODE_POINT = 2,
2671 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
2672 VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
2673} VkPolygonMode;
2674
2675typedef enum VkAttachmentLoadOp {
2676 VK_ATTACHMENT_LOAD_OP_LOAD = 0,
2677 VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
2678 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
2679 VK_ATTACHMENT_LOAD_OP_NONE = 1000400000,
2680 VK_ATTACHMENT_LOAD_OP_NONE_EXT = VK_ATTACHMENT_LOAD_OP_NONE,
2681 VK_ATTACHMENT_LOAD_OP_NONE_KHR = VK_ATTACHMENT_LOAD_OP_NONE,
2682 VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
2683} VkAttachmentLoadOp;
2684
2685typedef enum VkAttachmentStoreOp {
2686 VK_ATTACHMENT_STORE_OP_STORE = 0,
2687 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
2688 VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
2689 VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE,
2690 VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE,
2691 VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE,
2692 VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
2693} VkAttachmentStoreOp;
2694
2695typedef enum VkSubpassContents {
2696 VK_SUBPASS_CONTENTS_INLINE = 0,
2697 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
2698 VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR = 1000451000,
2699 VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR,
2700 VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
2701} VkSubpassContents;
2702
2703typedef enum VkFormatFeatureFlagBits {
2704 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
2705 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
2706 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
2707 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
2708 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
2709 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
2710 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
2711 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
2712 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
2713 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
2714 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
2715 VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
2716 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
2717 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2718 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2719 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2720 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2721 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2722 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2723 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2724 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2725 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2726 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
2727 VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
2728 VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
2729 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
2730 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000,
2731 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
2732 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
2733 VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
2734 VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
2735 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
2736 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
2737 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
2738 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
2739 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
2740 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
2741 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
2742 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
2743 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,
2744 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
2745 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
2746 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2747} VkFormatFeatureFlagBits;
2748typedef VkFlags VkFormatFeatureFlags;
2749
2750typedef enum VkImageCreateFlagBits {
2751 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2752 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2753 VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2754 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
2755 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
2756 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2757 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
2758 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
2759 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2760 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
2761 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
2762 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
2763 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
2764 VK_IMAGE_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_EXT = 0x00010000,
2765 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
2766 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
2767 VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000,
2768 VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000,
2769 VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000,
2770 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT = 0x00008000,
2771 VK_IMAGE_CREATE_ALIAS_SINGLE_LAYER_DESCRIPTOR_BIT_KHR = 0x00400000,
2772 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
2773 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
2774 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
2775 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
2776 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
2777 VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
2778 VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = VK_IMAGE_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_EXT,
2779 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
2780 VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2781} VkImageCreateFlagBits;
2782typedef VkFlags VkImageCreateFlags;
2783
2784typedef enum VkSampleCountFlagBits {
2785 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2786 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2787 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2788 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2789 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2790 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2791 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2792 VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2793} VkSampleCountFlagBits;
2794typedef VkFlags VkSampleCountFlags;
2795
2796typedef enum VkImageUsageFlagBits {
2797 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2798 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
2799 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
2800 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
2801 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
2802 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
2803 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
2804 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
2805 VK_IMAGE_USAGE_HOST_TRANSFER_BIT = 0x00400000,
2806 VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
2807 VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
2808 VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
2809 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
2810 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
2811 VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
2812 VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
2813 VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
2814 VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000,
2815 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
2816 VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000,
2817 VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000,
2818 VK_IMAGE_USAGE_TENSOR_ALIASING_BIT_ARM = 0x00800000,
2819 VK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM = 0x08000000,
2820 VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x02000000,
2821 VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x04000000,
2822 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2823 VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = VK_IMAGE_USAGE_HOST_TRANSFER_BIT,
2824 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2825} VkImageUsageFlagBits;
2826typedef VkFlags VkImageUsageFlags;
2827
2828typedef enum VkInstanceCreateFlagBits {
2829 VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001,
2830 VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2831} VkInstanceCreateFlagBits;
2832typedef VkFlags VkInstanceCreateFlags;
2833
2834typedef enum VkMemoryHeapFlagBits {
2835 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
2836 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2837 VK_MEMORY_HEAP_TILE_MEMORY_BIT_QCOM = 0x00000008,
2838 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
2839 VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2840} VkMemoryHeapFlagBits;
2841typedef VkFlags VkMemoryHeapFlags;
2842
2843typedef enum VkMemoryPropertyFlagBits {
2844 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2845 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2846 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2847 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2848 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
2849 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
2850 VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
2851 VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
2852 VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
2853 VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2854} VkMemoryPropertyFlagBits;
2855typedef VkFlags VkMemoryPropertyFlags;
2856
2857typedef enum VkQueueFlagBits {
2858 VK_QUEUE_GRAPHICS_BIT = 0x00000001,
2859 VK_QUEUE_COMPUTE_BIT = 0x00000002,
2860 VK_QUEUE_TRANSFER_BIT = 0x00000004,
2861 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
2862 VK_QUEUE_PROTECTED_BIT = 0x00000010,
2863 VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
2864 VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
2865 VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100,
2866 VK_QUEUE_DATA_GRAPH_BIT_ARM = 0x00000400,
2867 VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2868} VkQueueFlagBits;
2869typedef VkFlags VkQueueFlags;
2870
2871typedef enum VkShaderStageFlagBits {
2872 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
2873 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2874 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
2875 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2876 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2877 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
2878 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
2879 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
2880 VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
2881 VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
2882 VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
2883 VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
2884 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
2885 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
2886 VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040,
2887 VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080,
2888 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
2889 VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000,
2890 VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
2891 VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
2892 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
2893 VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
2894 VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
2895 VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
2896 VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT,
2897 VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT,
2898 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2899} VkShaderStageFlagBits;
2900typedef VkFlags VkShaderStageFlags;
2901typedef VkFlags VkDeviceCreateFlags;
2902
2903typedef enum VkDeviceQueueCreateFlagBits {
2904 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2905 VK_DEVICE_QUEUE_CREATE_INTERNALLY_SYNCHRONIZED_BIT_KHR = 0x00000004,
2906 VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2907} VkDeviceQueueCreateFlagBits;
2908typedef VkFlags VkDeviceQueueCreateFlags;
2909
2910typedef enum VkPipelineStageFlagBits {
2911 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
2912 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
2913 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
2914 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
2915 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
2916 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
2917 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
2918 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
2919 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
2920 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
2921 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
2922 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
2923 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
2924 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2925 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
2926 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
2927 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
2928 VK_PIPELINE_STAGE_NONE = 0,
2929 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
2930 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
2931 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
2932 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
2933 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
2934 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
2935 VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000,
2936 VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000,
2937 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT = 0x00020000,
2938 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2939 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
2940 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
2941 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
2942 VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
2943 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT,
2944 VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
2945 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2946} VkPipelineStageFlagBits;
2947typedef VkFlags VkPipelineStageFlags;
2948
2949typedef enum VkMemoryMapFlagBits {
2950 VK_MEMORY_MAP_PLACED_BIT_EXT = 0x00000001,
2951 VK_MEMORY_MAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2952} VkMemoryMapFlagBits;
2953typedef VkFlags VkMemoryMapFlags;
2954
2955typedef enum VkImageAspectFlagBits {
2956 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2957 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2958 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2959 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
2960 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2961 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2962 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2963 VK_IMAGE_ASPECT_NONE = 0,
2964 VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2965 VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2966 VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2967 VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
2968 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
2969 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
2970 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
2971 VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE,
2972 VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2973} VkImageAspectFlagBits;
2974typedef VkFlags VkImageAspectFlags;
2975
2976typedef enum VkSparseImageFormatFlagBits {
2977 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
2978 VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
2979 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
2980 VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2981} VkSparseImageFormatFlagBits;
2982typedef VkFlags VkSparseImageFormatFlags;
2983
2984typedef enum VkSparseMemoryBindFlagBits {
2985 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2986 VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2987} VkSparseMemoryBindFlagBits;
2988typedef VkFlags VkSparseMemoryBindFlags;
2989
2990typedef enum VkFenceCreateFlagBits {
2991 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2992 VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2993} VkFenceCreateFlagBits;
2994typedef VkFlags VkFenceCreateFlags;
2995typedef VkFlags VkSemaphoreCreateFlags;
2996
2997typedef enum VkQueryPoolCreateFlagBits {
2998 VK_QUERY_POOL_CREATE_RESET_BIT_KHR = 0x00000001,
2999 VK_QUERY_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3000} VkQueryPoolCreateFlagBits;
3001typedef VkFlags VkQueryPoolCreateFlags;
3002
3003typedef enum VkQueryPipelineStatisticFlagBits {
3004 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
3005 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
3006 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
3007 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
3008 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
3009 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
3010 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
3011 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
3012 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
3013 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
3014 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
3015 VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800,
3016 VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000,
3017 VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000,
3018 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3019} VkQueryPipelineStatisticFlagBits;
3020typedef VkFlags VkQueryPipelineStatisticFlags;
3021
3022typedef enum VkQueryResultFlagBits {
3023 VK_QUERY_RESULT_64_BIT = 0x00000001,
3024 VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
3025 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
3026 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
3027 VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
3028 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3029} VkQueryResultFlagBits;
3030typedef VkFlags VkQueryResultFlags;
3031
3032typedef enum VkBufferCreateFlagBits {
3033 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
3034 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
3035 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
3036 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
3037 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
3038 VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020,
3039 VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00000040,
3040 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
3041 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
3042 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3043} VkBufferCreateFlagBits;
3044typedef VkFlags VkBufferCreateFlags;
3045
3046typedef enum VkBufferUsageFlagBits {
3047 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
3048 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
3049 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
3050 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
3051 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
3052 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
3053 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
3054 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
3055 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
3056 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
3057 VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
3058 VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
3059 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
3060 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
3061 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
3062#ifdef VK_ENABLE_BETA_EXTENSIONS
3063 VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000,
3064#endif
3065 VK_BUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXT = 0x10000000,
3066 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
3067 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
3068 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
3069 VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
3070 VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
3071 VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000,
3072 VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000,
3073 VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000,
3074 VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000,
3075 VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000,
3076 VK_BUFFER_USAGE_TILE_MEMORY_BIT_QCOM = 0x08000000,
3077 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
3078 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
3079 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
3080 VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3081} VkBufferUsageFlagBits;
3082typedef VkFlags VkBufferUsageFlags;
3083
3084typedef enum VkImageViewCreateFlagBits {
3085 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
3086 VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004,
3087 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
3088 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3089} VkImageViewCreateFlagBits;
3090typedef VkFlags VkImageViewCreateFlags;
3091
3092typedef enum VkAccessFlagBits {
3093 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
3094 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
3095 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
3096 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
3097 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
3098 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
3099 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
3100 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
3101 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
3102 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
3103 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
3104 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
3105 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
3106 VK_ACCESS_HOST_READ_BIT = 0x00002000,
3107 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
3108 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
3109 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
3110 VK_ACCESS_NONE = 0,
3111 VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
3112 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
3113 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
3114 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
3115 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
3116 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
3117 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
3118 VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
3119 VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
3120 VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000,
3121 VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000,
3122 VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
3123 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
3124 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
3125 VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT,
3126 VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT,
3127 VK_ACCESS_NONE_KHR = VK_ACCESS_NONE,
3128 VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3129} VkAccessFlagBits;
3130typedef VkFlags VkAccessFlags;
3131
3132typedef enum VkDependencyFlagBits {
3133 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
3134 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
3135 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
3136 VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008,
3137 VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR = 0x00000020,
3138 VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR = 0x00000040,
3139 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
3140 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
3141 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3142} VkDependencyFlagBits;
3143typedef VkFlags VkDependencyFlags;
3144
3145typedef enum VkCommandPoolCreateFlagBits {
3146 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
3147 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
3148 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
3149 VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3150} VkCommandPoolCreateFlagBits;
3151typedef VkFlags VkCommandPoolCreateFlags;
3152
3153typedef enum VkCommandPoolResetFlagBits {
3154 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
3155 VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3156} VkCommandPoolResetFlagBits;
3157typedef VkFlags VkCommandPoolResetFlags;
3158
3159typedef enum VkQueryControlFlagBits {
3160 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
3161 VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3162} VkQueryControlFlagBits;
3163typedef VkFlags VkQueryControlFlags;
3164
3165typedef enum VkCommandBufferUsageFlagBits {
3166 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
3167 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
3168 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
3169 VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3170} VkCommandBufferUsageFlagBits;
3171typedef VkFlags VkCommandBufferUsageFlags;
3172
3173typedef enum VkCommandBufferResetFlagBits {
3174 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
3175 VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3176} VkCommandBufferResetFlagBits;
3177typedef VkFlags VkCommandBufferResetFlags;
3178
3179typedef enum VkEventCreateFlagBits {
3180 VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001,
3181 VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
3182 VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3183} VkEventCreateFlagBits;
3184typedef VkFlags VkEventCreateFlags;
3185typedef VkFlags VkBufferViewCreateFlags;
3186typedef VkFlags VkShaderModuleCreateFlags;
3187
3188typedef enum VkPipelineCacheCreateFlagBits {
3189 VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001,
3190 VK_PIPELINE_CACHE_CREATE_INTERNALLY_SYNCHRONIZED_MERGE_BIT_KHR = 0x00000008,
3191 VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
3192 VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3193} VkPipelineCacheCreateFlagBits;
3194typedef VkFlags VkPipelineCacheCreateFlags;
3195
3196typedef enum VkPipelineCreateFlagBits {
3197 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
3198 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
3199 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
3200 VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
3201 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
3202 VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100,
3203 VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200,
3204 VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT = 0x08000000,
3205 VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT = 0x40000000,
3206 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
3207 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
3208 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
3209 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
3210 VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
3211 VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
3212 VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000,
3213 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
3214 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000,
3215 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000,
3216 VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
3217 VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
3218 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
3219 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
3220 VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000,
3221 VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000,
3222 VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400,
3223 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000,
3224 VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000,
3225 VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000,
3226#ifdef VK_ENABLE_BETA_EXTENSIONS
3227 VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000,
3228#endif
3229 VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_KHR = 0x01000000,
3230 // VK_PIPELINE_CREATE_DISPATCH_BASE is a legacy alias
3231 VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
3232 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
3233 VK_PIPELINE_CREATE_DISPATCH_BASE_BIT_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
3234 // VK_PIPELINE_CREATE_DISPATCH_BASE_KHR is a legacy alias
3235 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
3236 // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT is a legacy alias
3237 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
3238 // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR is a legacy alias
3239 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
3240 VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
3241 VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
3242 VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_KHR,
3243 VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT,
3244 VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT,
3245 VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3246} VkPipelineCreateFlagBits;
3247typedef VkFlags VkPipelineCreateFlags;
3248
3249typedef enum VkPipelineLayoutCreateFlagBits {
3250 VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002,
3251 VK_PIPELINE_LAYOUT_CREATE_NO_TASK_SHADER_BIT_KHR = 0x00000004,
3252 VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3253} VkPipelineLayoutCreateFlagBits;
3254typedef VkFlags VkPipelineLayoutCreateFlags;
3255
3256typedef enum VkPipelineShaderStageCreateFlagBits {
3257 VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001,
3258 VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002,
3259 VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
3260 VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
3261 VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3262} VkPipelineShaderStageCreateFlagBits;
3263typedef VkFlags VkPipelineShaderStageCreateFlags;
3264
3265typedef enum VkSamplerCreateFlagBits {
3266 VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
3267 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
3268 VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
3269 VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0x00000004,
3270 VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0x00000010,
3271 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3272} VkSamplerCreateFlagBits;
3273typedef VkFlags VkSamplerCreateFlags;
3274
3275typedef enum VkDescriptorPoolCreateFlagBits {
3276 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
3277 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
3278 VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004,
3279 VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008,
3280 VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010,
3281 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
3282 VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
3283 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3284} VkDescriptorPoolCreateFlagBits;
3285typedef VkFlags VkDescriptorPoolCreateFlags;
3286typedef VkFlags VkDescriptorPoolResetFlags;
3287
3288typedef enum VkDescriptorSetLayoutCreateFlagBits {
3289 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
3290 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT = 0x00000001,
3291 VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010,
3292 VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020,
3293 VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00000080,
3294 VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004,
3295 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV = 0x00000040,
3296 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT,
3297 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
3298 VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
3299 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3300} VkDescriptorSetLayoutCreateFlagBits;
3301typedef VkFlags VkDescriptorSetLayoutCreateFlags;
3302
3303typedef enum VkColorComponentFlagBits {
3304 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
3305 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
3306 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
3307 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
3308 VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3309} VkColorComponentFlagBits;
3310typedef VkFlags VkColorComponentFlags;
3311
3312typedef enum VkCullModeFlagBits {
3313 VK_CULL_MODE_NONE = 0,
3314 VK_CULL_MODE_FRONT_BIT = 0x00000001,
3315 VK_CULL_MODE_BACK_BIT = 0x00000002,
3316 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
3317 VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3318} VkCullModeFlagBits;
3319typedef VkFlags VkCullModeFlags;
3320
3321typedef enum VkPipelineColorBlendStateCreateFlagBits {
3322 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001,
3323 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
3324 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3325} VkPipelineColorBlendStateCreateFlagBits;
3326typedef VkFlags VkPipelineColorBlendStateCreateFlags;
3327
3328typedef enum VkPipelineDepthStencilStateCreateFlagBits {
3329 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001,
3330 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002,
3331 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,
3332 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,
3333 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3334} VkPipelineDepthStencilStateCreateFlagBits;
3335typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
3336typedef VkFlags VkPipelineDynamicStateCreateFlags;
3337typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
3338typedef VkFlags VkPipelineMultisampleStateCreateFlags;
3339typedef VkFlags VkPipelineRasterizationStateCreateFlags;
3340typedef VkFlags VkPipelineTessellationStateCreateFlags;
3341typedef VkFlags VkPipelineVertexInputStateCreateFlags;
3342typedef VkFlags VkPipelineViewportStateCreateFlags;
3343
3344typedef enum VkAttachmentDescriptionFlagBits {
3345 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
3346 VK_ATTACHMENT_DESCRIPTION_RESOLVE_SKIP_TRANSFER_FUNCTION_BIT_KHR = 0x00000002,
3347 VK_ATTACHMENT_DESCRIPTION_RESOLVE_ENABLE_TRANSFER_FUNCTION_BIT_KHR = 0x00000004,
3348 VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3349} VkAttachmentDescriptionFlagBits;
3350typedef VkFlags VkAttachmentDescriptionFlags;
3351
3352typedef enum VkFramebufferCreateFlagBits {
3353 VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
3354 VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
3355 VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3356} VkFramebufferCreateFlagBits;
3357typedef VkFlags VkFramebufferCreateFlags;
3358
3359typedef enum VkRenderPassCreateFlagBits {
3360 VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
3361 VK_RENDER_PASS_CREATE_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x00000004,
3362 VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3363} VkRenderPassCreateFlagBits;
3364typedef VkFlags VkRenderPassCreateFlags;
3365
3366typedef enum VkSubpassDescriptionFlagBits {
3367 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
3368 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
3369 VK_SUBPASS_DESCRIPTION_TILE_SHADING_APRON_BIT_QCOM = 0x00000100,
3370 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010,
3371 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020,
3372 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040,
3373 VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080,
3374 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_EXT = 0x00000004,
3375 VK_SUBPASS_DESCRIPTION_CUSTOM_RESOLVE_BIT_EXT = 0x00000008,
3376 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_EXT,
3377 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = VK_SUBPASS_DESCRIPTION_CUSTOM_RESOLVE_BIT_EXT,
3378 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
3379 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
3380 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
3381 VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3382} VkSubpassDescriptionFlagBits;
3383typedef VkFlags VkSubpassDescriptionFlags;
3384
3385typedef enum VkStencilFaceFlagBits {
3386 VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
3387 VK_STENCIL_FACE_BACK_BIT = 0x00000002,
3388 VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
3389 // VK_STENCIL_FRONT_AND_BACK is a legacy alias
3390 VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
3391 VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3392} VkStencilFaceFlagBits;
3393typedef VkFlags VkStencilFaceFlags;
3394typedef struct VkExtent2D {
3395 uint32_t width;
3396 uint32_t height;
3397} VkExtent2D;
3398
3399typedef struct VkExtent3D {
3400 uint32_t width;
3401 uint32_t height;
3402 uint32_t depth;
3403} VkExtent3D;
3404
3405typedef struct VkOffset2D {
3406 int32_t x;
3407 int32_t y;
3408} VkOffset2D;
3409
3410typedef struct VkOffset3D {
3411 int32_t x;
3412 int32_t y;
3413 int32_t z;
3414} VkOffset3D;
3415
3416typedef struct VkRect2D {
3417 VkOffset2D offset;
3418 VkExtent2D extent;
3419} VkRect2D;
3420
3421typedef struct VkBaseInStructure {
3422 VkStructureType sType;
3423 const struct VkBaseInStructure* pNext;
3424} VkBaseInStructure;
3425
3426typedef struct VkBaseOutStructure {
3427 VkStructureType sType;
3428 struct VkBaseOutStructure* pNext;
3429} VkBaseOutStructure;
3430
3431typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
3432 void* pUserData,
3433 size_t size,
3434 size_t alignment,
3435 VkSystemAllocationScope allocationScope);
3436
3437typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
3438 void* pUserData,
3439 void* pMemory);
3440
3441typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
3442 void* pUserData,
3443 size_t size,
3444 VkInternalAllocationType allocationType,
3445 VkSystemAllocationScope allocationScope);
3446
3447typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
3448 void* pUserData,
3449 size_t size,
3450 VkInternalAllocationType allocationType,
3451 VkSystemAllocationScope allocationScope);
3452
3453typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
3454 void* pUserData,
3455 void* pOriginal,
3456 size_t size,
3457 size_t alignment,
3458 VkSystemAllocationScope allocationScope);
3459
3460typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
3461typedef struct VkAllocationCallbacks {
3462 void* pUserData;
3463 PFN_vkAllocationFunction pfnAllocation;
3464 PFN_vkReallocationFunction pfnReallocation;
3465 PFN_vkFreeFunction pfnFree;
3466 PFN_vkInternalAllocationNotification pfnInternalAllocation;
3467 PFN_vkInternalFreeNotification pfnInternalFree;
3468} VkAllocationCallbacks;
3469
3470typedef struct VkApplicationInfo {
3471 VkStructureType sType;
3472 const void* pNext;
3473 const char* pApplicationName;
3474 uint32_t applicationVersion;
3475 const char* pEngineName;
3476 uint32_t engineVersion;
3477 uint32_t apiVersion;
3478} VkApplicationInfo;
3479
3480typedef struct VkFormatProperties {
3481 VkFormatFeatureFlags linearTilingFeatures;
3482 VkFormatFeatureFlags optimalTilingFeatures;
3483 VkFormatFeatureFlags bufferFeatures;
3484} VkFormatProperties;
3485
3486typedef struct VkImageFormatProperties {
3487 VkExtent3D maxExtent;
3488 uint32_t maxMipLevels;
3489 uint32_t maxArrayLayers;
3490 VkSampleCountFlags sampleCounts;
3491 VkDeviceSize maxResourceSize;
3492} VkImageFormatProperties;
3493
3494typedef struct VkInstanceCreateInfo {
3495 VkStructureType sType;
3496 const void* pNext;
3497 VkInstanceCreateFlags flags;
3498 const VkApplicationInfo* pApplicationInfo;
3499 uint32_t enabledLayerCount;
3500 const char* const* ppEnabledLayerNames;
3501 uint32_t enabledExtensionCount;
3502 const char* const* ppEnabledExtensionNames;
3503} VkInstanceCreateInfo;
3504
3505typedef struct VkMemoryHeap {
3506 VkDeviceSize size;
3507 VkMemoryHeapFlags flags;
3508} VkMemoryHeap;
3509
3510typedef struct VkMemoryType {
3511 VkMemoryPropertyFlags propertyFlags;
3512 uint32_t heapIndex;
3513} VkMemoryType;
3514
3515typedef struct VkPhysicalDeviceFeatures {
3516 VkBool32 robustBufferAccess;
3517 VkBool32 fullDrawIndexUint32;
3518 VkBool32 imageCubeArray;
3519 VkBool32 independentBlend;
3520 VkBool32 geometryShader;
3521 VkBool32 tessellationShader;
3522 VkBool32 sampleRateShading;
3523 VkBool32 dualSrcBlend;
3524 VkBool32 logicOp;
3525 VkBool32 multiDrawIndirect;
3526 VkBool32 drawIndirectFirstInstance;
3527 VkBool32 depthClamp;
3528 VkBool32 depthBiasClamp;
3529 VkBool32 fillModeNonSolid;
3530 VkBool32 depthBounds;
3531 VkBool32 wideLines;
3532 VkBool32 largePoints;
3533 VkBool32 alphaToOne;
3534 VkBool32 multiViewport;
3535 VkBool32 samplerAnisotropy;
3536 VkBool32 textureCompressionETC2;
3537 VkBool32 textureCompressionASTC_LDR;
3538 VkBool32 textureCompressionBC;
3539 VkBool32 occlusionQueryPrecise;
3540 VkBool32 pipelineStatisticsQuery;
3541 VkBool32 vertexPipelineStoresAndAtomics;
3542 VkBool32 fragmentStoresAndAtomics;
3543 VkBool32 shaderTessellationAndGeometryPointSize;
3544 VkBool32 shaderImageGatherExtended;
3545 VkBool32 shaderStorageImageExtendedFormats;
3546 VkBool32 shaderStorageImageMultisample;
3547 VkBool32 shaderStorageImageReadWithoutFormat;
3548 VkBool32 shaderStorageImageWriteWithoutFormat;
3549 VkBool32 shaderUniformBufferArrayDynamicIndexing;
3550 VkBool32 shaderSampledImageArrayDynamicIndexing;
3551 VkBool32 shaderStorageBufferArrayDynamicIndexing;
3552 VkBool32 shaderStorageImageArrayDynamicIndexing;
3553 VkBool32 shaderClipDistance;
3554 VkBool32 shaderCullDistance;
3555 VkBool32 shaderFloat64;
3556 VkBool32 shaderInt64;
3557 VkBool32 shaderInt16;
3558 VkBool32 shaderResourceResidency;
3559 VkBool32 shaderResourceMinLod;
3560 VkBool32 sparseBinding;
3561 VkBool32 sparseResidencyBuffer;
3562 VkBool32 sparseResidencyImage2D;
3563 VkBool32 sparseResidencyImage3D;
3564 VkBool32 sparseResidency2Samples;
3565 VkBool32 sparseResidency4Samples;
3566 VkBool32 sparseResidency8Samples;
3567 VkBool32 sparseResidency16Samples;
3568 VkBool32 sparseResidencyAliased;
3569 VkBool32 variableMultisampleRate;
3570 VkBool32 inheritedQueries;
3571} VkPhysicalDeviceFeatures;
3572
3573typedef struct VkPhysicalDeviceLimits {
3574 uint32_t maxImageDimension1D;
3575 uint32_t maxImageDimension2D;
3576 uint32_t maxImageDimension3D;
3577 uint32_t maxImageDimensionCube;
3578 uint32_t maxImageArrayLayers;
3579 uint32_t maxTexelBufferElements;
3580 uint32_t maxUniformBufferRange;
3581 uint32_t maxStorageBufferRange;
3582 uint32_t maxPushConstantsSize;
3583 uint32_t maxMemoryAllocationCount;
3584 uint32_t maxSamplerAllocationCount;
3585 VkDeviceSize bufferImageGranularity;
3586 VkDeviceSize sparseAddressSpaceSize;
3587 uint32_t maxBoundDescriptorSets;
3588 uint32_t maxPerStageDescriptorSamplers;
3589 uint32_t maxPerStageDescriptorUniformBuffers;
3590 uint32_t maxPerStageDescriptorStorageBuffers;
3591 uint32_t maxPerStageDescriptorSampledImages;
3592 uint32_t maxPerStageDescriptorStorageImages;
3593 uint32_t maxPerStageDescriptorInputAttachments;
3594 uint32_t maxPerStageResources;
3595 uint32_t maxDescriptorSetSamplers;
3596 uint32_t maxDescriptorSetUniformBuffers;
3597 uint32_t maxDescriptorSetUniformBuffersDynamic;
3598 uint32_t maxDescriptorSetStorageBuffers;
3599 uint32_t maxDescriptorSetStorageBuffersDynamic;
3600 uint32_t maxDescriptorSetSampledImages;
3601 uint32_t maxDescriptorSetStorageImages;
3602 uint32_t maxDescriptorSetInputAttachments;
3603 uint32_t maxVertexInputAttributes;
3604 uint32_t maxVertexInputBindings;
3605 uint32_t maxVertexInputAttributeOffset;
3606 uint32_t maxVertexInputBindingStride;
3607 uint32_t maxVertexOutputComponents;
3608 uint32_t maxTessellationGenerationLevel;
3609 uint32_t maxTessellationPatchSize;
3610 uint32_t maxTessellationControlPerVertexInputComponents;
3611 uint32_t maxTessellationControlPerVertexOutputComponents;
3612 uint32_t maxTessellationControlPerPatchOutputComponents;
3613 uint32_t maxTessellationControlTotalOutputComponents;
3614 uint32_t maxTessellationEvaluationInputComponents;
3615 uint32_t maxTessellationEvaluationOutputComponents;
3616 uint32_t maxGeometryShaderInvocations;
3617 uint32_t maxGeometryInputComponents;
3618 uint32_t maxGeometryOutputComponents;
3619 uint32_t maxGeometryOutputVertices;
3620 uint32_t maxGeometryTotalOutputComponents;
3621 uint32_t maxFragmentInputComponents;
3622 uint32_t maxFragmentOutputAttachments;
3623 uint32_t maxFragmentDualSrcAttachments;
3624 uint32_t maxFragmentCombinedOutputResources;
3625 uint32_t maxComputeSharedMemorySize;
3626 uint32_t maxComputeWorkGroupCount[3];
3627 uint32_t maxComputeWorkGroupInvocations;
3628 uint32_t maxComputeWorkGroupSize[3];
3629 uint32_t subPixelPrecisionBits;
3630 uint32_t subTexelPrecisionBits;
3631 uint32_t mipmapPrecisionBits;
3632 uint32_t maxDrawIndexedIndexValue;
3633 uint32_t maxDrawIndirectCount;
3634 float maxSamplerLodBias;
3635 float maxSamplerAnisotropy;
3636 uint32_t maxViewports;
3637 uint32_t maxViewportDimensions[2];
3638 float viewportBoundsRange[2];
3639 uint32_t viewportSubPixelBits;
3640 size_t minMemoryMapAlignment;
3641 VkDeviceSize minTexelBufferOffsetAlignment;
3642 VkDeviceSize minUniformBufferOffsetAlignment;
3643 VkDeviceSize minStorageBufferOffsetAlignment;
3644 int32_t minTexelOffset;
3645 uint32_t maxTexelOffset;
3646 int32_t minTexelGatherOffset;
3647 uint32_t maxTexelGatherOffset;
3648 float minInterpolationOffset;
3649 float maxInterpolationOffset;
3650 uint32_t subPixelInterpolationOffsetBits;
3651 uint32_t maxFramebufferWidth;
3652 uint32_t maxFramebufferHeight;
3653 uint32_t maxFramebufferLayers;
3654 VkSampleCountFlags framebufferColorSampleCounts;
3655 VkSampleCountFlags framebufferDepthSampleCounts;
3656 VkSampleCountFlags framebufferStencilSampleCounts;
3657 VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
3658 uint32_t maxColorAttachments;
3659 VkSampleCountFlags sampledImageColorSampleCounts;
3660 VkSampleCountFlags sampledImageIntegerSampleCounts;
3661 VkSampleCountFlags sampledImageDepthSampleCounts;
3662 VkSampleCountFlags sampledImageStencilSampleCounts;
3663 VkSampleCountFlags storageImageSampleCounts;
3664 uint32_t maxSampleMaskWords;
3665 VkBool32 timestampComputeAndGraphics;
3666 float timestampPeriod;
3667 uint32_t maxClipDistances;
3668 uint32_t maxCullDistances;
3669 uint32_t maxCombinedClipAndCullDistances;
3670 uint32_t discreteQueuePriorities;
3671 float pointSizeRange[2];
3672 float lineWidthRange[2];
3673 float pointSizeGranularity;
3674 float lineWidthGranularity;
3675 VkBool32 strictLines;
3676 VkBool32 standardSampleLocations;
3677 VkDeviceSize optimalBufferCopyOffsetAlignment;
3678 VkDeviceSize optimalBufferCopyRowPitchAlignment;
3679 VkDeviceSize nonCoherentAtomSize;
3680} VkPhysicalDeviceLimits;
3681
3682typedef struct VkPhysicalDeviceMemoryProperties {
3683 uint32_t memoryTypeCount;
3684 VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
3685 uint32_t memoryHeapCount;
3686 VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
3687} VkPhysicalDeviceMemoryProperties;
3688
3689typedef struct VkPhysicalDeviceSparseProperties {
3690 VkBool32 residencyStandard2DBlockShape;
3691 VkBool32 residencyStandard2DMultisampleBlockShape;
3692 VkBool32 residencyStandard3DBlockShape;
3693 VkBool32 residencyAlignedMipSize;
3694 VkBool32 residencyNonResidentStrict;
3695} VkPhysicalDeviceSparseProperties;
3696
3697typedef struct VkPhysicalDeviceProperties {
3698 uint32_t apiVersion;
3699 uint32_t driverVersion;
3700 uint32_t vendorID;
3701 uint32_t deviceID;
3702 VkPhysicalDeviceType deviceType;
3703 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
3704 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
3705 VkPhysicalDeviceLimits limits;
3706 VkPhysicalDeviceSparseProperties sparseProperties;
3707} VkPhysicalDeviceProperties;
3708
3709typedef struct VkQueueFamilyProperties {
3710 VkQueueFlags queueFlags;
3711 uint32_t queueCount;
3712 uint32_t timestampValidBits;
3713 VkExtent3D minImageTransferGranularity;
3714} VkQueueFamilyProperties;
3715
3716typedef struct VkDeviceQueueCreateInfo {
3717 VkStructureType sType;
3718 const void* pNext;
3719 VkDeviceQueueCreateFlags flags;
3720 uint32_t queueFamilyIndex;
3721 uint32_t queueCount;
3722 const float* pQueuePriorities;
3723} VkDeviceQueueCreateInfo;
3724
3725typedef struct VkDeviceCreateInfo {
3726 VkStructureType sType;
3727 const void* pNext;
3728 VkDeviceCreateFlags flags;
3729 uint32_t queueCreateInfoCount;
3730 const VkDeviceQueueCreateInfo* pQueueCreateInfos;
3731 // enabledLayerCount is legacy and not used
3732 uint32_t enabledLayerCount;
3733 // ppEnabledLayerNames is legacy and not used
3734 const char* const* ppEnabledLayerNames;
3735 uint32_t enabledExtensionCount;
3736 const char* const* ppEnabledExtensionNames;
3737 const VkPhysicalDeviceFeatures* pEnabledFeatures;
3738} VkDeviceCreateInfo;
3739
3740typedef struct VkExtensionProperties {
3741 char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
3742 uint32_t specVersion;
3743} VkExtensionProperties;
3744
3745typedef struct VkLayerProperties {
3746 char layerName[VK_MAX_EXTENSION_NAME_SIZE];
3747 uint32_t specVersion;
3748 uint32_t implementationVersion;
3749 char description[VK_MAX_DESCRIPTION_SIZE];
3750} VkLayerProperties;
3751
3752typedef struct VkSubmitInfo {
3753 VkStructureType sType;
3754 const void* pNext;
3755 uint32_t waitSemaphoreCount;
3756 const VkSemaphore* pWaitSemaphores;
3757 const VkPipelineStageFlags* pWaitDstStageMask;
3758 uint32_t commandBufferCount;
3759 const VkCommandBuffer* pCommandBuffers;
3760 uint32_t signalSemaphoreCount;
3761 const VkSemaphore* pSignalSemaphores;
3762} VkSubmitInfo;
3763
3764typedef struct VkMappedMemoryRange {
3765 VkStructureType sType;
3766 const void* pNext;
3767 VkDeviceMemory memory;
3768 VkDeviceSize offset;
3769 VkDeviceSize size;
3770} VkMappedMemoryRange;
3771
3772typedef struct VkMemoryAllocateInfo {
3773 VkStructureType sType;
3774 const void* pNext;
3775 VkDeviceSize allocationSize;
3776 uint32_t memoryTypeIndex;
3777} VkMemoryAllocateInfo;
3778
3779typedef struct VkMemoryRequirements {
3780 VkDeviceSize size;
3781 VkDeviceSize alignment;
3782 uint32_t memoryTypeBits;
3783} VkMemoryRequirements;
3784
3785typedef struct VkImageSubresource {
3786 VkImageAspectFlags aspectMask;
3787 uint32_t mipLevel;
3788 uint32_t arrayLayer;
3789} VkImageSubresource;
3790
3791typedef struct VkSparseImageFormatProperties {
3792 VkImageAspectFlags aspectMask;
3793 VkExtent3D imageGranularity;
3794 VkSparseImageFormatFlags flags;
3795} VkSparseImageFormatProperties;
3796
3797typedef struct VkSparseImageMemoryBind {
3798 VkImageSubresource subresource;
3799 VkOffset3D offset;
3800 VkExtent3D extent;
3801 VkDeviceMemory memory;
3802 VkDeviceSize memoryOffset;
3803 VkSparseMemoryBindFlags flags;
3804} VkSparseImageMemoryBind;
3805
3806typedef struct VkSparseImageMemoryBindInfo {
3807 VkImage image;
3808 uint32_t bindCount;
3809 const VkSparseImageMemoryBind* pBinds;
3810} VkSparseImageMemoryBindInfo;
3811
3812typedef struct VkSparseImageMemoryRequirements {
3813 VkSparseImageFormatProperties formatProperties;
3814 uint32_t imageMipTailFirstLod;
3815 VkDeviceSize imageMipTailSize;
3816 VkDeviceSize imageMipTailOffset;
3817 VkDeviceSize imageMipTailStride;
3818} VkSparseImageMemoryRequirements;
3819
3820typedef struct VkSparseMemoryBind {
3821 VkDeviceSize resourceOffset;
3822 VkDeviceSize size;
3823 VkDeviceMemory memory;
3824 VkDeviceSize memoryOffset;
3825 VkSparseMemoryBindFlags flags;
3826} VkSparseMemoryBind;
3827
3828typedef struct VkSparseBufferMemoryBindInfo {
3829 VkBuffer buffer;
3830 uint32_t bindCount;
3831 const VkSparseMemoryBind* pBinds;
3832} VkSparseBufferMemoryBindInfo;
3833
3834typedef struct VkSparseImageOpaqueMemoryBindInfo {
3835 VkImage image;
3836 uint32_t bindCount;
3837 const VkSparseMemoryBind* pBinds;
3838} VkSparseImageOpaqueMemoryBindInfo;
3839
3840typedef struct VkBindSparseInfo {
3841 VkStructureType sType;
3842 const void* pNext;
3843 uint32_t waitSemaphoreCount;
3844 const VkSemaphore* pWaitSemaphores;
3845 uint32_t bufferBindCount;
3846 const VkSparseBufferMemoryBindInfo* pBufferBinds;
3847 uint32_t imageOpaqueBindCount;
3848 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
3849 uint32_t imageBindCount;
3850 const VkSparseImageMemoryBindInfo* pImageBinds;
3851 uint32_t signalSemaphoreCount;
3852 const VkSemaphore* pSignalSemaphores;
3853} VkBindSparseInfo;
3854
3855typedef struct VkFenceCreateInfo {
3856 VkStructureType sType;
3857 const void* pNext;
3858 VkFenceCreateFlags flags;
3859} VkFenceCreateInfo;
3860
3861typedef struct VkSemaphoreCreateInfo {
3862 VkStructureType sType;
3863 const void* pNext;
3864 VkSemaphoreCreateFlags flags;
3865} VkSemaphoreCreateInfo;
3866
3867typedef struct VkQueryPoolCreateInfo {
3868 VkStructureType sType;
3869 const void* pNext;
3870 VkQueryPoolCreateFlags flags;
3871 VkQueryType queryType;
3872 uint32_t queryCount;
3873 VkQueryPipelineStatisticFlags pipelineStatistics;
3874} VkQueryPoolCreateInfo;
3875
3876typedef struct VkBufferCreateInfo {
3877 VkStructureType sType;
3878 const void* pNext;
3879 VkBufferCreateFlags flags;
3880 VkDeviceSize size;
3881 VkBufferUsageFlags usage;
3882 VkSharingMode sharingMode;
3883 uint32_t queueFamilyIndexCount;
3884 const uint32_t* pQueueFamilyIndices;
3885} VkBufferCreateInfo;
3886
3887typedef struct VkImageCreateInfo {
3888 VkStructureType sType;
3889 const void* pNext;
3890 VkImageCreateFlags flags;
3891 VkImageType imageType;
3892 VkFormat format;
3893 VkExtent3D extent;
3894 uint32_t mipLevels;
3895 uint32_t arrayLayers;
3896 VkSampleCountFlagBits samples;
3897 VkImageTiling tiling;
3898 VkImageUsageFlags usage;
3899 VkSharingMode sharingMode;
3900 uint32_t queueFamilyIndexCount;
3901 const uint32_t* pQueueFamilyIndices;
3902 VkImageLayout initialLayout;
3903} VkImageCreateInfo;
3904
3905typedef struct VkSubresourceLayout {
3906 VkDeviceSize offset;
3907 VkDeviceSize size;
3908 VkDeviceSize rowPitch;
3909 VkDeviceSize arrayPitch;
3910 VkDeviceSize depthPitch;
3911} VkSubresourceLayout;
3912
3913typedef struct VkComponentMapping {
3914 VkComponentSwizzle r;
3915 VkComponentSwizzle g;
3916 VkComponentSwizzle b;
3917 VkComponentSwizzle a;
3918} VkComponentMapping;
3919
3920typedef struct VkImageSubresourceRange {
3921 VkImageAspectFlags aspectMask;
3922 uint32_t baseMipLevel;
3923 uint32_t levelCount;
3924 uint32_t baseArrayLayer;
3925 uint32_t layerCount;
3926} VkImageSubresourceRange;
3927
3928typedef struct VkImageViewCreateInfo {
3929 VkStructureType sType;
3930 const void* pNext;
3931 VkImageViewCreateFlags flags;
3932 VkImage image;
3933 VkImageViewType viewType;
3934 VkFormat format;
3935 VkComponentMapping components;
3936 VkImageSubresourceRange subresourceRange;
3937} VkImageViewCreateInfo;
3938
3939typedef struct VkCommandPoolCreateInfo {
3940 VkStructureType sType;
3941 const void* pNext;
3942 VkCommandPoolCreateFlags flags;
3943 uint32_t queueFamilyIndex;
3944} VkCommandPoolCreateInfo;
3945
3946typedef struct VkCommandBufferAllocateInfo {
3947 VkStructureType sType;
3948 const void* pNext;
3949 VkCommandPool commandPool;
3950 VkCommandBufferLevel level;
3951 uint32_t commandBufferCount;
3952} VkCommandBufferAllocateInfo;
3953
3954typedef struct VkCommandBufferInheritanceInfo {
3955 VkStructureType sType;
3956 const void* pNext;
3957 VkRenderPass renderPass;
3958 uint32_t subpass;
3959 VkFramebuffer framebuffer;
3960 VkBool32 occlusionQueryEnable;
3961 VkQueryControlFlags queryFlags;
3962 VkQueryPipelineStatisticFlags pipelineStatistics;
3963} VkCommandBufferInheritanceInfo;
3964
3965typedef struct VkCommandBufferBeginInfo {
3966 VkStructureType sType;
3967 const void* pNext;
3968 VkCommandBufferUsageFlags flags;
3969 const VkCommandBufferInheritanceInfo* pInheritanceInfo;
3970} VkCommandBufferBeginInfo;
3971
3972typedef struct VkBufferCopy {
3973 VkDeviceSize srcOffset;
3974 VkDeviceSize dstOffset;
3975 VkDeviceSize size;
3976} VkBufferCopy;
3977
3978typedef struct VkImageSubresourceLayers {
3979 VkImageAspectFlags aspectMask;
3980 uint32_t mipLevel;
3981 uint32_t baseArrayLayer;
3982 uint32_t layerCount;
3983} VkImageSubresourceLayers;
3984
3985typedef struct VkBufferImageCopy {
3986 VkDeviceSize bufferOffset;
3987 uint32_t bufferRowLength;
3988 uint32_t bufferImageHeight;
3989 VkImageSubresourceLayers imageSubresource;
3990 VkOffset3D imageOffset;
3991 VkExtent3D imageExtent;
3992} VkBufferImageCopy;
3993
3994typedef struct VkImageCopy {
3995 VkImageSubresourceLayers srcSubresource;
3996 VkOffset3D srcOffset;
3997 VkImageSubresourceLayers dstSubresource;
3998 VkOffset3D dstOffset;
3999 VkExtent3D extent;
4000} VkImageCopy;
4001
4002typedef struct VkBufferMemoryBarrier {
4003 VkStructureType sType;
4004 const void* pNext;
4005 VkAccessFlags srcAccessMask;
4006 VkAccessFlags dstAccessMask;
4007 uint32_t srcQueueFamilyIndex;
4008 uint32_t dstQueueFamilyIndex;
4009 VkBuffer buffer;
4010 VkDeviceSize offset;
4011 VkDeviceSize size;
4012} VkBufferMemoryBarrier;
4013
4014typedef struct VkImageMemoryBarrier {
4015 VkStructureType sType;
4016 const void* pNext;
4017 VkAccessFlags srcAccessMask;
4018 VkAccessFlags dstAccessMask;
4019 VkImageLayout oldLayout;
4020 VkImageLayout newLayout;
4021 uint32_t srcQueueFamilyIndex;
4022 uint32_t dstQueueFamilyIndex;
4023 VkImage image;
4024 VkImageSubresourceRange subresourceRange;
4025} VkImageMemoryBarrier;
4026
4027typedef struct VkMemoryBarrier {
4028 VkStructureType sType;
4029 const void* pNext;
4030 VkAccessFlags srcAccessMask;
4031 VkAccessFlags dstAccessMask;
4032} VkMemoryBarrier;
4033
4034typedef struct VkDispatchIndirectCommand {
4035 uint32_t x;
4036 uint32_t y;
4037 uint32_t z;
4038} VkDispatchIndirectCommand;
4039
4040typedef struct VkPipelineCacheHeaderVersionOne {
4041 uint32_t headerSize;
4042 VkPipelineCacheHeaderVersion headerVersion;
4043 uint32_t vendorID;
4044 uint32_t deviceID;
4045 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
4046} VkPipelineCacheHeaderVersionOne;
4047
4048typedef struct VkEventCreateInfo {
4049 VkStructureType sType;
4050 const void* pNext;
4051 VkEventCreateFlags flags;
4052} VkEventCreateInfo;
4053
4054typedef struct VkBufferViewCreateInfo {
4055 VkStructureType sType;
4056 const void* pNext;
4057 VkBufferViewCreateFlags flags;
4058 VkBuffer buffer;
4059 VkFormat format;
4060 VkDeviceSize offset;
4061 VkDeviceSize range;
4062} VkBufferViewCreateInfo;
4063
4064typedef struct VkShaderModuleCreateInfo {
4065 VkStructureType sType;
4066 const void* pNext;
4067 VkShaderModuleCreateFlags flags;
4068 size_t codeSize;
4069 const uint32_t* pCode;
4070} VkShaderModuleCreateInfo;
4071
4072typedef struct VkPipelineCacheCreateInfo {
4073 VkStructureType sType;
4074 const void* pNext;
4075 VkPipelineCacheCreateFlags flags;
4076 size_t initialDataSize;
4077 const void* pInitialData;
4078} VkPipelineCacheCreateInfo;
4079
4080typedef struct VkSpecializationMapEntry {
4081 uint32_t constantID;
4082 uint32_t offset;
4083 size_t size;
4084} VkSpecializationMapEntry;
4085
4086typedef struct VkSpecializationInfo {
4087 uint32_t mapEntryCount;
4088 const VkSpecializationMapEntry* pMapEntries;
4089 size_t dataSize;
4090 const void* pData;
4091} VkSpecializationInfo;
4092
4093typedef struct VkPipelineShaderStageCreateInfo {
4094 VkStructureType sType;
4095 const void* pNext;
4096 VkPipelineShaderStageCreateFlags flags;
4097 VkShaderStageFlagBits stage;
4098 VkShaderModule module;
4099 const char* pName;
4100 const VkSpecializationInfo* pSpecializationInfo;
4101} VkPipelineShaderStageCreateInfo;
4102
4103typedef struct VkComputePipelineCreateInfo {
4104 VkStructureType sType;
4105 const void* pNext;
4106 VkPipelineCreateFlags flags;
4107 VkPipelineShaderStageCreateInfo stage;
4108 VkPipelineLayout layout;
4109 VkPipeline basePipelineHandle;
4110 int32_t basePipelineIndex;
4111} VkComputePipelineCreateInfo;
4112
4113typedef struct VkPushConstantRange {
4114 VkShaderStageFlags stageFlags;
4115 uint32_t offset;
4116 uint32_t size;
4117} VkPushConstantRange;
4118
4119typedef struct VkPipelineLayoutCreateInfo {
4120 VkStructureType sType;
4121 const void* pNext;
4122 VkPipelineLayoutCreateFlags flags;
4123 uint32_t setLayoutCount;
4124 const VkDescriptorSetLayout* pSetLayouts;
4125 uint32_t pushConstantRangeCount;
4126 const VkPushConstantRange* pPushConstantRanges;
4127} VkPipelineLayoutCreateInfo;
4128
4129typedef struct VkSamplerCreateInfo {
4130 VkStructureType sType;
4131 const void* pNext;
4132 VkSamplerCreateFlags flags;
4133 VkFilter magFilter;
4134 VkFilter minFilter;
4135 VkSamplerMipmapMode mipmapMode;
4136 VkSamplerAddressMode addressModeU;
4137 VkSamplerAddressMode addressModeV;
4138 VkSamplerAddressMode addressModeW;
4139 float mipLodBias;
4140 VkBool32 anisotropyEnable;
4141 float maxAnisotropy;
4142 VkBool32 compareEnable;
4143 VkCompareOp compareOp;
4144 float minLod;
4145 float maxLod;
4146 VkBorderColor borderColor;
4147 VkBool32 unnormalizedCoordinates;
4148} VkSamplerCreateInfo;
4149
4150typedef struct VkCopyDescriptorSet {
4151 VkStructureType sType;
4152 const void* pNext;
4153 VkDescriptorSet srcSet;
4154 uint32_t srcBinding;
4155 uint32_t srcArrayElement;
4156 VkDescriptorSet dstSet;
4157 uint32_t dstBinding;
4158 uint32_t dstArrayElement;
4159 uint32_t descriptorCount;
4160} VkCopyDescriptorSet;
4161
4162typedef struct VkDescriptorBufferInfo {
4163 VkBuffer buffer;
4164 VkDeviceSize offset;
4165 VkDeviceSize range;
4166} VkDescriptorBufferInfo;
4167
4168typedef struct VkDescriptorImageInfo {
4169 VkSampler sampler;
4170 VkImageView imageView;
4171 VkImageLayout imageLayout;
4172} VkDescriptorImageInfo;
4173
4174typedef struct VkDescriptorPoolSize {
4175 VkDescriptorType type;
4176 uint32_t descriptorCount;
4177} VkDescriptorPoolSize;
4178
4179typedef struct VkDescriptorPoolCreateInfo {
4180 VkStructureType sType;
4181 const void* pNext;
4182 VkDescriptorPoolCreateFlags flags;
4183 uint32_t maxSets;
4184 uint32_t poolSizeCount;
4185 const VkDescriptorPoolSize* pPoolSizes;
4186} VkDescriptorPoolCreateInfo;
4187
4188typedef struct VkDescriptorSetAllocateInfo {
4189 VkStructureType sType;
4190 const void* pNext;
4191 VkDescriptorPool descriptorPool;
4192 uint32_t descriptorSetCount;
4193 const VkDescriptorSetLayout* pSetLayouts;
4194} VkDescriptorSetAllocateInfo;
4195
4196typedef struct VkDescriptorSetLayoutBinding {
4197 uint32_t binding;
4198 VkDescriptorType descriptorType;
4199 uint32_t descriptorCount;
4200 VkShaderStageFlags stageFlags;
4201 const VkSampler* pImmutableSamplers;
4202} VkDescriptorSetLayoutBinding;
4203
4204typedef struct VkDescriptorSetLayoutCreateInfo {
4205 VkStructureType sType;
4206 const void* pNext;
4207 VkDescriptorSetLayoutCreateFlags flags;
4208 uint32_t bindingCount;
4209 const VkDescriptorSetLayoutBinding* pBindings;
4210} VkDescriptorSetLayoutCreateInfo;
4211
4212typedef struct VkWriteDescriptorSet {
4213 VkStructureType sType;
4214 const void* pNext;
4215 VkDescriptorSet dstSet;
4216 uint32_t dstBinding;
4217 uint32_t dstArrayElement;
4218 uint32_t descriptorCount;
4219 VkDescriptorType descriptorType;
4220 const VkDescriptorImageInfo* pImageInfo;
4221 const VkDescriptorBufferInfo* pBufferInfo;
4222 const VkBufferView* pTexelBufferView;
4223} VkWriteDescriptorSet;
4224
4225typedef union VkClearColorValue {
4226 float float32[4];
4227 int32_t int32[4];
4228 uint32_t uint32[4];
4229} VkClearColorValue;
4230
4231typedef struct VkDrawIndexedIndirectCommand {
4232 uint32_t indexCount;
4233 uint32_t instanceCount;
4234 uint32_t firstIndex;
4235 int32_t vertexOffset;
4236 uint32_t firstInstance;
4237} VkDrawIndexedIndirectCommand;
4238
4239typedef struct VkDrawIndirectCommand {
4240 uint32_t vertexCount;
4241 uint32_t instanceCount;
4242 uint32_t firstVertex;
4243 uint32_t firstInstance;
4244} VkDrawIndirectCommand;
4245
4246typedef struct VkStencilOpState {
4247 VkStencilOp failOp;
4248 VkStencilOp passOp;
4249 VkStencilOp depthFailOp;
4250 VkCompareOp compareOp;
4251 uint32_t compareMask;
4252 uint32_t writeMask;
4253 uint32_t reference;
4254} VkStencilOpState;
4255
4256typedef struct VkVertexInputAttributeDescription {
4257 uint32_t location;
4258 uint32_t binding;
4259 VkFormat format;
4260 uint32_t offset;
4261} VkVertexInputAttributeDescription;
4262
4263typedef struct VkVertexInputBindingDescription {
4264 uint32_t binding;
4265 uint32_t stride;
4266 VkVertexInputRate inputRate;
4267} VkVertexInputBindingDescription;
4268
4269typedef struct VkViewport {
4270 float x;
4271 float y;
4272 float width;
4273 float height;
4274 float minDepth;
4275 float maxDepth;
4276} VkViewport;
4277
4278typedef struct VkPipelineColorBlendAttachmentState {
4279 VkBool32 blendEnable;
4280 VkBlendFactor srcColorBlendFactor;
4281 VkBlendFactor dstColorBlendFactor;
4282 VkBlendOp colorBlendOp;
4283 VkBlendFactor srcAlphaBlendFactor;
4284 VkBlendFactor dstAlphaBlendFactor;
4285 VkBlendOp alphaBlendOp;
4286 VkColorComponentFlags colorWriteMask;
4287} VkPipelineColorBlendAttachmentState;
4288
4289typedef struct VkPipelineColorBlendStateCreateInfo {
4290 VkStructureType sType;
4291 const void* pNext;
4292 VkPipelineColorBlendStateCreateFlags flags;
4293 VkBool32 logicOpEnable;
4294 VkLogicOp logicOp;
4295 uint32_t attachmentCount;
4296 const VkPipelineColorBlendAttachmentState* pAttachments;
4297 float blendConstants[4];
4298} VkPipelineColorBlendStateCreateInfo;
4299
4300typedef struct VkPipelineDepthStencilStateCreateInfo {
4301 VkStructureType sType;
4302 const void* pNext;
4303 VkPipelineDepthStencilStateCreateFlags flags;
4304 VkBool32 depthTestEnable;
4305 VkBool32 depthWriteEnable;
4306 VkCompareOp depthCompareOp;
4307 VkBool32 depthBoundsTestEnable;
4308 VkBool32 stencilTestEnable;
4309 VkStencilOpState front;
4310 VkStencilOpState back;
4311 float minDepthBounds;
4312 float maxDepthBounds;
4313} VkPipelineDepthStencilStateCreateInfo;
4314
4315typedef struct VkPipelineDynamicStateCreateInfo {
4316 VkStructureType sType;
4317 const void* pNext;
4318 VkPipelineDynamicStateCreateFlags flags;
4319 uint32_t dynamicStateCount;
4320 const VkDynamicState* pDynamicStates;
4321} VkPipelineDynamicStateCreateInfo;
4322
4323typedef struct VkPipelineInputAssemblyStateCreateInfo {
4324 VkStructureType sType;
4325 const void* pNext;
4326 VkPipelineInputAssemblyStateCreateFlags flags;
4327 VkPrimitiveTopology topology;
4328 VkBool32 primitiveRestartEnable;
4329} VkPipelineInputAssemblyStateCreateInfo;
4330
4331typedef struct VkPipelineMultisampleStateCreateInfo {
4332 VkStructureType sType;
4333 const void* pNext;
4334 VkPipelineMultisampleStateCreateFlags flags;
4335 VkSampleCountFlagBits rasterizationSamples;
4336 VkBool32 sampleShadingEnable;
4337 float minSampleShading;
4338 const VkSampleMask* pSampleMask;
4339 VkBool32 alphaToCoverageEnable;
4340 VkBool32 alphaToOneEnable;
4341} VkPipelineMultisampleStateCreateInfo;
4342
4343typedef struct VkPipelineRasterizationStateCreateInfo {
4344 VkStructureType sType;
4345 const void* pNext;
4346 VkPipelineRasterizationStateCreateFlags flags;
4347 VkBool32 depthClampEnable;
4348 VkBool32 rasterizerDiscardEnable;
4349 VkPolygonMode polygonMode;
4350 VkCullModeFlags cullMode;
4351 VkFrontFace frontFace;
4352 VkBool32 depthBiasEnable;
4353 float depthBiasConstantFactor;
4354 float depthBiasClamp;
4355 float depthBiasSlopeFactor;
4356 float lineWidth;
4357} VkPipelineRasterizationStateCreateInfo;
4358
4359typedef struct VkPipelineTessellationStateCreateInfo {
4360 VkStructureType sType;
4361 const void* pNext;
4362 VkPipelineTessellationStateCreateFlags flags;
4363 uint32_t patchControlPoints;
4364} VkPipelineTessellationStateCreateInfo;
4365
4366typedef struct VkPipelineVertexInputStateCreateInfo {
4367 VkStructureType sType;
4368 const void* pNext;
4369 VkPipelineVertexInputStateCreateFlags flags;
4370 uint32_t vertexBindingDescriptionCount;
4371 const VkVertexInputBindingDescription* pVertexBindingDescriptions;
4372 uint32_t vertexAttributeDescriptionCount;
4373 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
4374} VkPipelineVertexInputStateCreateInfo;
4375
4376typedef struct VkPipelineViewportStateCreateInfo {
4377 VkStructureType sType;
4378 const void* pNext;
4379 VkPipelineViewportStateCreateFlags flags;
4380 uint32_t viewportCount;
4381 const VkViewport* pViewports;
4382 uint32_t scissorCount;
4383 const VkRect2D* pScissors;
4384} VkPipelineViewportStateCreateInfo;
4385
4386typedef struct VkGraphicsPipelineCreateInfo {
4387 VkStructureType sType;
4388 const void* pNext;
4389 VkPipelineCreateFlags flags;
4390 uint32_t stageCount;
4391 const VkPipelineShaderStageCreateInfo* pStages;
4392 const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
4393 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
4394 const VkPipelineTessellationStateCreateInfo* pTessellationState;
4395 const VkPipelineViewportStateCreateInfo* pViewportState;
4396 const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
4397 const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
4398 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
4399 const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
4400 const VkPipelineDynamicStateCreateInfo* pDynamicState;
4401 VkPipelineLayout layout;
4402 VkRenderPass renderPass;
4403 uint32_t subpass;
4404 VkPipeline basePipelineHandle;
4405 int32_t basePipelineIndex;
4406} VkGraphicsPipelineCreateInfo;
4407
4408typedef struct VkAttachmentDescription {
4409 VkAttachmentDescriptionFlags flags;
4410 VkFormat format;
4411 VkSampleCountFlagBits samples;
4412 VkAttachmentLoadOp loadOp;
4413 VkAttachmentStoreOp storeOp;
4414 VkAttachmentLoadOp stencilLoadOp;
4415 VkAttachmentStoreOp stencilStoreOp;
4416 VkImageLayout initialLayout;
4417 VkImageLayout finalLayout;
4418} VkAttachmentDescription;
4419
4420typedef struct VkAttachmentReference {
4421 uint32_t attachment;
4422 VkImageLayout layout;
4423} VkAttachmentReference;
4424
4425typedef struct VkFramebufferCreateInfo {
4426 VkStructureType sType;
4427 const void* pNext;
4428 VkFramebufferCreateFlags flags;
4429 VkRenderPass renderPass;
4430 uint32_t attachmentCount;
4431 const VkImageView* pAttachments;
4432 uint32_t width;
4433 uint32_t height;
4434 uint32_t layers;
4435} VkFramebufferCreateInfo;
4436
4437typedef struct VkSubpassDependency {
4438 uint32_t srcSubpass;
4439 uint32_t dstSubpass;
4440 VkPipelineStageFlags srcStageMask;
4441 VkPipelineStageFlags dstStageMask;
4442 VkAccessFlags srcAccessMask;
4443 VkAccessFlags dstAccessMask;
4444 VkDependencyFlags dependencyFlags;
4445} VkSubpassDependency;
4446
4447typedef struct VkSubpassDescription {
4448 VkSubpassDescriptionFlags flags;
4449 VkPipelineBindPoint pipelineBindPoint;
4450 uint32_t inputAttachmentCount;
4451 const VkAttachmentReference* pInputAttachments;
4452 uint32_t colorAttachmentCount;
4453 const VkAttachmentReference* pColorAttachments;
4454 const VkAttachmentReference* pResolveAttachments;
4455 const VkAttachmentReference* pDepthStencilAttachment;
4456 uint32_t preserveAttachmentCount;
4457 const uint32_t* pPreserveAttachments;
4458} VkSubpassDescription;
4459
4460typedef struct VkRenderPassCreateInfo {
4461 VkStructureType sType;
4462 const void* pNext;
4463 VkRenderPassCreateFlags flags;
4464 uint32_t attachmentCount;
4465 const VkAttachmentDescription* pAttachments;
4466 uint32_t subpassCount;
4467 const VkSubpassDescription* pSubpasses;
4468 uint32_t dependencyCount;
4469 const VkSubpassDependency* pDependencies;
4470} VkRenderPassCreateInfo;
4471
4472typedef struct VkClearDepthStencilValue {
4473 float depth;
4474 uint32_t stencil;
4475} VkClearDepthStencilValue;
4476
4477typedef struct VkClearRect {
4478 VkRect2D rect;
4479 uint32_t baseArrayLayer;
4480 uint32_t layerCount;
4481} VkClearRect;
4482
4483typedef union VkClearValue {
4484 VkClearColorValue color;
4485 VkClearDepthStencilValue depthStencil;
4486} VkClearValue;
4487
4488typedef struct VkClearAttachment {
4489 VkImageAspectFlags aspectMask;
4490 uint32_t colorAttachment;
4491 VkClearValue clearValue;
4492} VkClearAttachment;
4493
4494typedef struct VkImageBlit {
4495 VkImageSubresourceLayers srcSubresource;
4496 VkOffset3D srcOffsets[2];
4497 VkImageSubresourceLayers dstSubresource;
4498 VkOffset3D dstOffsets[2];
4499} VkImageBlit;
4500
4501typedef struct VkImageResolve {
4502 VkImageSubresourceLayers srcSubresource;
4503 VkOffset3D srcOffset;
4504 VkImageSubresourceLayers dstSubresource;
4505 VkOffset3D dstOffset;
4506 VkExtent3D extent;
4507} VkImageResolve;
4508
4509typedef struct VkRenderPassBeginInfo {
4510 VkStructureType sType;
4511 const void* pNext;
4512 VkRenderPass renderPass;
4513 VkFramebuffer framebuffer;
4514 VkRect2D renderArea;
4515 uint32_t clearValueCount;
4516 const VkClearValue* pClearValues;
4517} VkRenderPassBeginInfo;
4518
4519typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
4520typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
4521typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
4522typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
4523typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
4524typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
4525typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
4526typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
4527typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
4528typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
4529typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
4530typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
4531typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
4532typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4533typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4534typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4535typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4536typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
4537typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
4538typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
4539typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
4540typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
4541typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
4542typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
4543typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
4544typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4545typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4546typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
4547typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4548typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4549typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
4550typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
4551typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
4552typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
4553typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
4554typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
4555typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
4556typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
4557typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
4558typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
4559typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
4560typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
4561typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
4562typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
4563typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
4564typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
4565typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
4566typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
4567typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
4568typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
4569typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
4570typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
4571typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
4572typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
4573typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
4574typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
4575typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4576typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
4577typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
4578typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
4579typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
4580typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
4581typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4582typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4583typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
4584typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
4585typedef 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);
4586typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
4587typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
4588typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
4589typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
4590typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
4591typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4592typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
4593typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
4594typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
4595typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
4596typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
4597typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
4598typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
4599typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
4600typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
4601typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
4602typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
4603typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
4604typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
4605typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4606typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
4607typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
4608typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
4609typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
4610typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
4611typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
4612typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
4613typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
4614typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
4615typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
4616typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
4617typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
4618typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
4619typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
4620typedef 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);
4621typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4622typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
4623typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
4624typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4625typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4626typedef 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);
4627typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
4628typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4629typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
4630typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
4631typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
4632typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
4633typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
4634typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
4635typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
4636typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
4637typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
4638typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
4639typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
4640typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
4641typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
4642typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
4643typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
4644typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
4645typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
4646typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
4647typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4648typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4649typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
4650typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4651typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
4652typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
4653typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
4654typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
4655typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
4656
4657#ifndef VK_NO_PROTOTYPES
4658VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
4659 const VkInstanceCreateInfo* pCreateInfo,
4660 const VkAllocationCallbacks* pAllocator,
4661 VkInstance* pInstance);
4662
4663VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
4664 VkInstance instance,
4665 const VkAllocationCallbacks* pAllocator);
4666
4667VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
4668 VkInstance instance,
4669 uint32_t* pPhysicalDeviceCount,
4670 VkPhysicalDevice* pPhysicalDevices);
4671
4672VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
4673 VkPhysicalDevice physicalDevice,
4674 VkPhysicalDeviceFeatures* pFeatures);
4675
4676VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
4677 VkPhysicalDevice physicalDevice,
4678 VkFormat format,
4679 VkFormatProperties* pFormatProperties);
4680
4681VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
4682 VkPhysicalDevice physicalDevice,
4683 VkFormat format,
4684 VkImageType type,
4685 VkImageTiling tiling,
4686 VkImageUsageFlags usage,
4687 VkImageCreateFlags flags,
4688 VkImageFormatProperties* pImageFormatProperties);
4689
4690VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
4691 VkPhysicalDevice physicalDevice,
4692 VkPhysicalDeviceProperties* pProperties);
4693
4694VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
4695 VkPhysicalDevice physicalDevice,
4696 uint32_t* pQueueFamilyPropertyCount,
4697 VkQueueFamilyProperties* pQueueFamilyProperties);
4698
4699VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
4700 VkPhysicalDevice physicalDevice,
4701 VkPhysicalDeviceMemoryProperties* pMemoryProperties);
4702
4703VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
4704 VkInstance instance,
4705 const char* pName);
4706
4707VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
4708 VkDevice device,
4709 const char* pName);
4710
4711VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
4712 VkPhysicalDevice physicalDevice,
4713 const VkDeviceCreateInfo* pCreateInfo,
4714 const VkAllocationCallbacks* pAllocator,
4715 VkDevice* pDevice);
4716
4717VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
4718 VkDevice device,
4719 const VkAllocationCallbacks* pAllocator);
4720
4721VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
4722 const char* pLayerName,
4723 uint32_t* pPropertyCount,
4724 VkExtensionProperties* pProperties);
4725
4726VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
4727 VkPhysicalDevice physicalDevice,
4728 const char* pLayerName,
4729 uint32_t* pPropertyCount,
4730 VkExtensionProperties* pProperties);
4731
4732VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
4733 uint32_t* pPropertyCount,
4734 VkLayerProperties* pProperties);
4735
4736VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
4737 VkPhysicalDevice physicalDevice,
4738 uint32_t* pPropertyCount,
4739 VkLayerProperties* pProperties);
4740
4741VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
4742 VkDevice device,
4743 uint32_t queueFamilyIndex,
4744 uint32_t queueIndex,
4745 VkQueue* pQueue);
4746
4747VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
4748 VkQueue queue,
4749 uint32_t submitCount,
4750 const VkSubmitInfo* pSubmits,
4751 VkFence fence);
4752
4753VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
4754 VkQueue queue);
4755
4756VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
4757 VkDevice device);
4758
4759VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
4760 VkDevice device,
4761 const VkMemoryAllocateInfo* pAllocateInfo,
4762 const VkAllocationCallbacks* pAllocator,
4763 VkDeviceMemory* pMemory);
4764
4765VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
4766 VkDevice device,
4767 VkDeviceMemory memory,
4768 const VkAllocationCallbacks* pAllocator);
4769
4770VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
4771 VkDevice device,
4772 VkDeviceMemory memory,
4773 VkDeviceSize offset,
4774 VkDeviceSize size,
4775 VkMemoryMapFlags flags,
4776 void** ppData);
4777
4778VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
4779 VkDevice device,
4780 VkDeviceMemory memory);
4781
4782VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
4783 VkDevice device,
4784 uint32_t memoryRangeCount,
4785 const VkMappedMemoryRange* pMemoryRanges);
4786
4787VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
4788 VkDevice device,
4789 uint32_t memoryRangeCount,
4790 const VkMappedMemoryRange* pMemoryRanges);
4791
4792VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
4793 VkDevice device,
4794 VkDeviceMemory memory,
4795 VkDeviceSize* pCommittedMemoryInBytes);
4796
4797VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
4798 VkDevice device,
4799 VkBuffer buffer,
4800 VkDeviceMemory memory,
4801 VkDeviceSize memoryOffset);
4802
4803VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
4804 VkDevice device,
4805 VkImage image,
4806 VkDeviceMemory memory,
4807 VkDeviceSize memoryOffset);
4808
4809VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
4810 VkDevice device,
4811 VkBuffer buffer,
4812 VkMemoryRequirements* pMemoryRequirements);
4813
4814VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
4815 VkDevice device,
4816 VkImage image,
4817 VkMemoryRequirements* pMemoryRequirements);
4818
4819VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
4820 VkDevice device,
4821 VkImage image,
4822 uint32_t* pSparseMemoryRequirementCount,
4823 VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
4824
4825VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
4826 VkPhysicalDevice physicalDevice,
4827 VkFormat format,
4828 VkImageType type,
4829 VkSampleCountFlagBits samples,
4830 VkImageUsageFlags usage,
4831 VkImageTiling tiling,
4832 uint32_t* pPropertyCount,
4833 VkSparseImageFormatProperties* pProperties);
4834
4835VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
4836 VkQueue queue,
4837 uint32_t bindInfoCount,
4838 const VkBindSparseInfo* pBindInfo,
4839 VkFence fence);
4840
4841VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
4842 VkDevice device,
4843 const VkFenceCreateInfo* pCreateInfo,
4844 const VkAllocationCallbacks* pAllocator,
4845 VkFence* pFence);
4846
4847VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
4848 VkDevice device,
4849 VkFence fence,
4850 const VkAllocationCallbacks* pAllocator);
4851
4852VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
4853 VkDevice device,
4854 uint32_t fenceCount,
4855 const VkFence* pFences);
4856
4857VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
4858 VkDevice device,
4859 VkFence fence);
4860
4861VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
4862 VkDevice device,
4863 uint32_t fenceCount,
4864 const VkFence* pFences,
4865 VkBool32 waitAll,
4866 uint64_t timeout);
4867
4868VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
4869 VkDevice device,
4870 const VkSemaphoreCreateInfo* pCreateInfo,
4871 const VkAllocationCallbacks* pAllocator,
4872 VkSemaphore* pSemaphore);
4873
4874VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
4875 VkDevice device,
4876 VkSemaphore semaphore,
4877 const VkAllocationCallbacks* pAllocator);
4878
4879VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
4880 VkDevice device,
4881 const VkQueryPoolCreateInfo* pCreateInfo,
4882 const VkAllocationCallbacks* pAllocator,
4883 VkQueryPool* pQueryPool);
4884
4885VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
4886 VkDevice device,
4887 VkQueryPool queryPool,
4888 const VkAllocationCallbacks* pAllocator);
4889
4890VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
4891 VkDevice device,
4892 VkQueryPool queryPool,
4893 uint32_t firstQuery,
4894 uint32_t queryCount,
4895 size_t dataSize,
4896 void* pData,
4897 VkDeviceSize stride,
4898 VkQueryResultFlags flags);
4899
4900VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
4901 VkDevice device,
4902 const VkBufferCreateInfo* pCreateInfo,
4903 const VkAllocationCallbacks* pAllocator,
4904 VkBuffer* pBuffer);
4905
4906VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
4907 VkDevice device,
4908 VkBuffer buffer,
4909 const VkAllocationCallbacks* pAllocator);
4910
4911VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
4912 VkDevice device,
4913 const VkImageCreateInfo* pCreateInfo,
4914 const VkAllocationCallbacks* pAllocator,
4915 VkImage* pImage);
4916
4917VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
4918 VkDevice device,
4919 VkImage image,
4920 const VkAllocationCallbacks* pAllocator);
4921
4922VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
4923 VkDevice device,
4924 VkImage image,
4925 const VkImageSubresource* pSubresource,
4926 VkSubresourceLayout* pLayout);
4927
4928VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
4929 VkDevice device,
4930 const VkImageViewCreateInfo* pCreateInfo,
4931 const VkAllocationCallbacks* pAllocator,
4932 VkImageView* pView);
4933
4934VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
4935 VkDevice device,
4936 VkImageView imageView,
4937 const VkAllocationCallbacks* pAllocator);
4938
4939VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
4940 VkDevice device,
4941 const VkCommandPoolCreateInfo* pCreateInfo,
4942 const VkAllocationCallbacks* pAllocator,
4943 VkCommandPool* pCommandPool);
4944
4945VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
4946 VkDevice device,
4947 VkCommandPool commandPool,
4948 const VkAllocationCallbacks* pAllocator);
4949
4950VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
4951 VkDevice device,
4952 VkCommandPool commandPool,
4953 VkCommandPoolResetFlags flags);
4954
4955VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
4956 VkDevice device,
4957 const VkCommandBufferAllocateInfo* pAllocateInfo,
4958 VkCommandBuffer* pCommandBuffers);
4959
4960VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
4961 VkDevice device,
4962 VkCommandPool commandPool,
4963 uint32_t commandBufferCount,
4964 const VkCommandBuffer* pCommandBuffers);
4965
4966VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
4967 VkCommandBuffer commandBuffer,
4968 const VkCommandBufferBeginInfo* pBeginInfo);
4969
4970VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
4971 VkCommandBuffer commandBuffer);
4972
4973VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
4974 VkCommandBuffer commandBuffer,
4975 VkCommandBufferResetFlags flags);
4976
4977VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
4978 VkCommandBuffer commandBuffer,
4979 VkBuffer srcBuffer,
4980 VkBuffer dstBuffer,
4981 uint32_t regionCount,
4982 const VkBufferCopy* pRegions);
4983
4984VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
4985 VkCommandBuffer commandBuffer,
4986 VkImage srcImage,
4987 VkImageLayout srcImageLayout,
4988 VkImage dstImage,
4989 VkImageLayout dstImageLayout,
4990 uint32_t regionCount,
4991 const VkImageCopy* pRegions);
4992
4993VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
4994 VkCommandBuffer commandBuffer,
4995 VkBuffer srcBuffer,
4996 VkImage dstImage,
4997 VkImageLayout dstImageLayout,
4998 uint32_t regionCount,
4999 const VkBufferImageCopy* pRegions);
5000
5001VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
5002 VkCommandBuffer commandBuffer,
5003 VkImage srcImage,
5004 VkImageLayout srcImageLayout,
5005 VkBuffer dstBuffer,
5006 uint32_t regionCount,
5007 const VkBufferImageCopy* pRegions);
5008
5009VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
5010 VkCommandBuffer commandBuffer,
5011 VkBuffer dstBuffer,
5012 VkDeviceSize dstOffset,
5013 VkDeviceSize dataSize,
5014 const void* pData);
5015
5016VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
5017 VkCommandBuffer commandBuffer,
5018 VkBuffer dstBuffer,
5019 VkDeviceSize dstOffset,
5020 VkDeviceSize size,
5021 uint32_t data);
5022
5023VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
5024 VkCommandBuffer commandBuffer,
5025 VkPipelineStageFlags srcStageMask,
5026 VkPipelineStageFlags dstStageMask,
5027 VkDependencyFlags dependencyFlags,
5028 uint32_t memoryBarrierCount,
5029 const VkMemoryBarrier* pMemoryBarriers,
5030 uint32_t bufferMemoryBarrierCount,
5031 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
5032 uint32_t imageMemoryBarrierCount,
5033 const VkImageMemoryBarrier* pImageMemoryBarriers);
5034
5035VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
5036 VkCommandBuffer commandBuffer,
5037 VkQueryPool queryPool,
5038 uint32_t query,
5039 VkQueryControlFlags flags);
5040
5041VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
5042 VkCommandBuffer commandBuffer,
5043 VkQueryPool queryPool,
5044 uint32_t query);
5045
5046VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
5047 VkCommandBuffer commandBuffer,
5048 VkQueryPool queryPool,
5049 uint32_t firstQuery,
5050 uint32_t queryCount);
5051
5052VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
5053 VkCommandBuffer commandBuffer,
5054 VkPipelineStageFlagBits pipelineStage,
5055 VkQueryPool queryPool,
5056 uint32_t query);
5057
5058VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
5059 VkCommandBuffer commandBuffer,
5060 VkQueryPool queryPool,
5061 uint32_t firstQuery,
5062 uint32_t queryCount,
5063 VkBuffer dstBuffer,
5064 VkDeviceSize dstOffset,
5065 VkDeviceSize stride,
5066 VkQueryResultFlags flags);
5067
5068VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
5069 VkCommandBuffer commandBuffer,
5070 uint32_t commandBufferCount,
5071 const VkCommandBuffer* pCommandBuffers);
5072
5073VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
5074 VkDevice device,
5075 const VkEventCreateInfo* pCreateInfo,
5076 const VkAllocationCallbacks* pAllocator,
5077 VkEvent* pEvent);
5078
5079VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
5080 VkDevice device,
5081 VkEvent event,
5082 const VkAllocationCallbacks* pAllocator);
5083
5084VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
5085 VkDevice device,
5086 VkEvent event);
5087
5088VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
5089 VkDevice device,
5090 VkEvent event);
5091
5092VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
5093 VkDevice device,
5094 VkEvent event);
5095
5096VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
5097 VkDevice device,
5098 const VkBufferViewCreateInfo* pCreateInfo,
5099 const VkAllocationCallbacks* pAllocator,
5100 VkBufferView* pView);
5101
5102VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
5103 VkDevice device,
5104 VkBufferView bufferView,
5105 const VkAllocationCallbacks* pAllocator);
5106
5107VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
5108 VkDevice device,
5109 const VkShaderModuleCreateInfo* pCreateInfo,
5110 const VkAllocationCallbacks* pAllocator,
5111 VkShaderModule* pShaderModule);
5112
5113VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
5114 VkDevice device,
5115 VkShaderModule shaderModule,
5116 const VkAllocationCallbacks* pAllocator);
5117
5118VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
5119 VkDevice device,
5120 const VkPipelineCacheCreateInfo* pCreateInfo,
5121 const VkAllocationCallbacks* pAllocator,
5122 VkPipelineCache* pPipelineCache);
5123
5124VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
5125 VkDevice device,
5126 VkPipelineCache pipelineCache,
5127 const VkAllocationCallbacks* pAllocator);
5128
5129VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
5130 VkDevice device,
5131 VkPipelineCache pipelineCache,
5132 size_t* pDataSize,
5133 void* pData);
5134
5135VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
5136 VkDevice device,
5137 VkPipelineCache dstCache,
5138 uint32_t srcCacheCount,
5139 const VkPipelineCache* pSrcCaches);
5140
5141VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
5142 VkDevice device,
5143 VkPipelineCache pipelineCache,
5144 uint32_t createInfoCount,
5145 const VkComputePipelineCreateInfo* pCreateInfos,
5146 const VkAllocationCallbacks* pAllocator,
5147 VkPipeline* pPipelines);
5148
5149VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
5150 VkDevice device,
5151 VkPipeline pipeline,
5152 const VkAllocationCallbacks* pAllocator);
5153
5154VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
5155 VkDevice device,
5156 const VkPipelineLayoutCreateInfo* pCreateInfo,
5157 const VkAllocationCallbacks* pAllocator,
5158 VkPipelineLayout* pPipelineLayout);
5159
5160VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
5161 VkDevice device,
5162 VkPipelineLayout pipelineLayout,
5163 const VkAllocationCallbacks* pAllocator);
5164
5165VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
5166 VkDevice device,
5167 const VkSamplerCreateInfo* pCreateInfo,
5168 const VkAllocationCallbacks* pAllocator,
5169 VkSampler* pSampler);
5170
5171VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
5172 VkDevice device,
5173 VkSampler sampler,
5174 const VkAllocationCallbacks* pAllocator);
5175
5176VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
5177 VkDevice device,
5178 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
5179 const VkAllocationCallbacks* pAllocator,
5180 VkDescriptorSetLayout* pSetLayout);
5181
5182VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
5183 VkDevice device,
5184 VkDescriptorSetLayout descriptorSetLayout,
5185 const VkAllocationCallbacks* pAllocator);
5186
5187VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
5188 VkDevice device,
5189 const VkDescriptorPoolCreateInfo* pCreateInfo,
5190 const VkAllocationCallbacks* pAllocator,
5191 VkDescriptorPool* pDescriptorPool);
5192
5193VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
5194 VkDevice device,
5195 VkDescriptorPool descriptorPool,
5196 const VkAllocationCallbacks* pAllocator);
5197
5198VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
5199 VkDevice device,
5200 VkDescriptorPool descriptorPool,
5201 VkDescriptorPoolResetFlags flags);
5202
5203VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
5204 VkDevice device,
5205 const VkDescriptorSetAllocateInfo* pAllocateInfo,
5206 VkDescriptorSet* pDescriptorSets);
5207
5208VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
5209 VkDevice device,
5210 VkDescriptorPool descriptorPool,
5211 uint32_t descriptorSetCount,
5212 const VkDescriptorSet* pDescriptorSets);
5213
5214VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
5215 VkDevice device,
5216 uint32_t descriptorWriteCount,
5217 const VkWriteDescriptorSet* pDescriptorWrites,
5218 uint32_t descriptorCopyCount,
5219 const VkCopyDescriptorSet* pDescriptorCopies);
5220
5221VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
5222 VkCommandBuffer commandBuffer,
5223 VkPipelineBindPoint pipelineBindPoint,
5224 VkPipeline pipeline);
5225
5226VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
5227 VkCommandBuffer commandBuffer,
5228 VkPipelineBindPoint pipelineBindPoint,
5229 VkPipelineLayout layout,
5230 uint32_t firstSet,
5231 uint32_t descriptorSetCount,
5232 const VkDescriptorSet* pDescriptorSets,
5233 uint32_t dynamicOffsetCount,
5234 const uint32_t* pDynamicOffsets);
5235
5236VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
5237 VkCommandBuffer commandBuffer,
5238 VkImage image,
5239 VkImageLayout imageLayout,
5240 const VkClearColorValue* pColor,
5241 uint32_t rangeCount,
5242 const VkImageSubresourceRange* pRanges);
5243
5244VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
5245 VkCommandBuffer commandBuffer,
5246 uint32_t groupCountX,
5247 uint32_t groupCountY,
5248 uint32_t groupCountZ);
5249
5250VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
5251 VkCommandBuffer commandBuffer,
5252 VkBuffer buffer,
5253 VkDeviceSize offset);
5254
5255VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
5256 VkCommandBuffer commandBuffer,
5257 VkEvent event,
5258 VkPipelineStageFlags stageMask);
5259
5260VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
5261 VkCommandBuffer commandBuffer,
5262 VkEvent event,
5263 VkPipelineStageFlags stageMask);
5264
5265VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
5266 VkCommandBuffer commandBuffer,
5267 uint32_t eventCount,
5268 const VkEvent* pEvents,
5269 VkPipelineStageFlags srcStageMask,
5270 VkPipelineStageFlags dstStageMask,
5271 uint32_t memoryBarrierCount,
5272 const VkMemoryBarrier* pMemoryBarriers,
5273 uint32_t bufferMemoryBarrierCount,
5274 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
5275 uint32_t imageMemoryBarrierCount,
5276 const VkImageMemoryBarrier* pImageMemoryBarriers);
5277
5278VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
5279 VkCommandBuffer commandBuffer,
5280 VkPipelineLayout layout,
5281 VkShaderStageFlags stageFlags,
5282 uint32_t offset,
5283 uint32_t size,
5284 const void* pValues);
5285
5286VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
5287 VkDevice device,
5288 VkPipelineCache pipelineCache,
5289 uint32_t createInfoCount,
5290 const VkGraphicsPipelineCreateInfo* pCreateInfos,
5291 const VkAllocationCallbacks* pAllocator,
5292 VkPipeline* pPipelines);
5293
5294VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
5295 VkDevice device,
5296 const VkFramebufferCreateInfo* pCreateInfo,
5297 const VkAllocationCallbacks* pAllocator,
5298 VkFramebuffer* pFramebuffer);
5299
5300VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
5301 VkDevice device,
5302 VkFramebuffer framebuffer,
5303 const VkAllocationCallbacks* pAllocator);
5304
5305VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
5306 VkDevice device,
5307 const VkRenderPassCreateInfo* pCreateInfo,
5308 const VkAllocationCallbacks* pAllocator,
5309 VkRenderPass* pRenderPass);
5310
5311VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
5312 VkDevice device,
5313 VkRenderPass renderPass,
5314 const VkAllocationCallbacks* pAllocator);
5315
5316VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
5317 VkDevice device,
5318 VkRenderPass renderPass,
5319 VkExtent2D* pGranularity);
5320
5321VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
5322 VkCommandBuffer commandBuffer,
5323 uint32_t firstViewport,
5324 uint32_t viewportCount,
5325 const VkViewport* pViewports);
5326
5327VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
5328 VkCommandBuffer commandBuffer,
5329 uint32_t firstScissor,
5330 uint32_t scissorCount,
5331 const VkRect2D* pScissors);
5332
5333VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
5334 VkCommandBuffer commandBuffer,
5335 float lineWidth);
5336
5337VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
5338 VkCommandBuffer commandBuffer,
5339 float depthBiasConstantFactor,
5340 float depthBiasClamp,
5341 float depthBiasSlopeFactor);
5342
5343VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
5344 VkCommandBuffer commandBuffer,
5345 const float blendConstants[4]);
5346
5347VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
5348 VkCommandBuffer commandBuffer,
5349 float minDepthBounds,
5350 float maxDepthBounds);
5351
5352VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
5353 VkCommandBuffer commandBuffer,
5354 VkStencilFaceFlags faceMask,
5355 uint32_t compareMask);
5356
5357VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
5358 VkCommandBuffer commandBuffer,
5359 VkStencilFaceFlags faceMask,
5360 uint32_t writeMask);
5361
5362VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
5363 VkCommandBuffer commandBuffer,
5364 VkStencilFaceFlags faceMask,
5365 uint32_t reference);
5366
5367VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
5368 VkCommandBuffer commandBuffer,
5369 VkBuffer buffer,
5370 VkDeviceSize offset,
5371 VkIndexType indexType);
5372
5373VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
5374 VkCommandBuffer commandBuffer,
5375 uint32_t firstBinding,
5376 uint32_t bindingCount,
5377 const VkBuffer* pBuffers,
5378 const VkDeviceSize* pOffsets);
5379
5380VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
5381 VkCommandBuffer commandBuffer,
5382 uint32_t vertexCount,
5383 uint32_t instanceCount,
5384 uint32_t firstVertex,
5385 uint32_t firstInstance);
5386
5387VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
5388 VkCommandBuffer commandBuffer,
5389 uint32_t indexCount,
5390 uint32_t instanceCount,
5391 uint32_t firstIndex,
5392 int32_t vertexOffset,
5393 uint32_t firstInstance);
5394
5395VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
5396 VkCommandBuffer commandBuffer,
5397 VkBuffer buffer,
5398 VkDeviceSize offset,
5399 uint32_t drawCount,
5400 uint32_t stride);
5401
5402VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
5403 VkCommandBuffer commandBuffer,
5404 VkBuffer buffer,
5405 VkDeviceSize offset,
5406 uint32_t drawCount,
5407 uint32_t stride);
5408
5409VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
5410 VkCommandBuffer commandBuffer,
5411 VkImage srcImage,
5412 VkImageLayout srcImageLayout,
5413 VkImage dstImage,
5414 VkImageLayout dstImageLayout,
5415 uint32_t regionCount,
5416 const VkImageBlit* pRegions,
5417 VkFilter filter);
5418
5419VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
5420 VkCommandBuffer commandBuffer,
5421 VkImage image,
5422 VkImageLayout imageLayout,
5423 const VkClearDepthStencilValue* pDepthStencil,
5424 uint32_t rangeCount,
5425 const VkImageSubresourceRange* pRanges);
5426
5427VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
5428 VkCommandBuffer commandBuffer,
5429 uint32_t attachmentCount,
5430 const VkClearAttachment* pAttachments,
5431 uint32_t rectCount,
5432 const VkClearRect* pRects);
5433
5434VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
5435 VkCommandBuffer commandBuffer,
5436 VkImage srcImage,
5437 VkImageLayout srcImageLayout,
5438 VkImage dstImage,
5439 VkImageLayout dstImageLayout,
5440 uint32_t regionCount,
5441 const VkImageResolve* pRegions);
5442
5443VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
5444 VkCommandBuffer commandBuffer,
5445 const VkRenderPassBeginInfo* pRenderPassBegin,
5446 VkSubpassContents contents);
5447
5448VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
5449 VkCommandBuffer commandBuffer,
5450 VkSubpassContents contents);
5451
5452VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
5453 VkCommandBuffer commandBuffer);
5454#endif
5455
5456
5457// VK_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
5458#define VK_VERSION_1_1 1
5459// Vulkan 1.1 version number
5460#define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
5461
5462VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
5463VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
5464#define VK_MAX_DEVICE_GROUP_SIZE 32U
5465#define VK_LUID_SIZE 8U
5466#define VK_QUEUE_FAMILY_EXTERNAL (~1U)
5467
5468typedef enum VkPointClippingBehavior {
5469 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
5470 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
5471 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
5472 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
5473 VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
5474} VkPointClippingBehavior;
5475
5476typedef enum VkDescriptorUpdateTemplateType {
5477 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
5478 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS = 1,
5479 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS,
5480 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
5481 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
5482} VkDescriptorUpdateTemplateType;
5483
5484typedef enum VkSamplerYcbcrModelConversion {
5485 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
5486 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
5487 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
5488 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
5489 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
5490 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
5491 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
5492 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
5493 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
5494 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
5495 VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
5496} VkSamplerYcbcrModelConversion;
5497
5498typedef enum VkSamplerYcbcrRange {
5499 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
5500 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
5501 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
5502 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
5503 VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
5504} VkSamplerYcbcrRange;
5505
5506typedef enum VkChromaLocation {
5507 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
5508 VK_CHROMA_LOCATION_MIDPOINT = 1,
5509 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
5510 VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
5511 VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
5512} VkChromaLocation;
5513
5514typedef enum VkTessellationDomainOrigin {
5515 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
5516 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
5517 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
5518 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
5519 VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
5520} VkTessellationDomainOrigin;
5521
5522typedef enum VkSubgroupFeatureFlagBits {
5523 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
5524 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
5525 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
5526 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
5527 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
5528 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
5529 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
5530 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
5531 VK_SUBGROUP_FEATURE_ROTATE_BIT = 0x00000200,
5532 VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT = 0x00000400,
5533 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_EXT = 0x00000100,
5534 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_EXT,
5535 VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_BIT,
5536 VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT,
5537 VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5538} VkSubgroupFeatureFlagBits;
5539typedef VkFlags VkSubgroupFeatureFlags;
5540
5541typedef enum VkPeerMemoryFeatureFlagBits {
5542 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
5543 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
5544 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
5545 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
5546 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
5547 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
5548 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
5549 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
5550 VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5551} VkPeerMemoryFeatureFlagBits;
5552typedef VkFlags VkPeerMemoryFeatureFlags;
5553
5554typedef enum VkMemoryAllocateFlagBits {
5555 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
5556 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
5557 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
5558 VK_MEMORY_ALLOCATE_ZERO_INITIALIZE_BIT_EXT = 0x00000008,
5559 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
5560 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
5561 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
5562 VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5563} VkMemoryAllocateFlagBits;
5564typedef VkFlags VkMemoryAllocateFlags;
5565typedef VkFlags VkCommandPoolTrimFlags;
5566
5567typedef enum VkExternalMemoryHandleTypeFlagBits {
5568 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5569 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5570 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5571 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
5572 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
5573 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
5574 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
5575 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
5576 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
5577 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
5578 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
5579 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
5580 VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
5581 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OH_NATIVE_BUFFER_BIT_OHOS = 0x00008000,
5582 VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000,
5583 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT = 0x00010000,
5584 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_EXT = 0x00020000,
5585 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT = 0x00040000,
5586 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
5587 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5588 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5589 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
5590 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
5591 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
5592 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
5593 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5594} VkExternalMemoryHandleTypeFlagBits;
5595typedef VkFlags VkExternalMemoryHandleTypeFlags;
5596
5597typedef enum VkExternalMemoryFeatureFlagBits {
5598 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
5599 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
5600 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
5601 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5602 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5603 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
5604 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5605} VkExternalMemoryFeatureFlagBits;
5606typedef VkFlags VkExternalMemoryFeatureFlags;
5607
5608typedef enum VkExternalFenceHandleTypeFlagBits {
5609 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5610 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5611 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5612 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
5613 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5614 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5615 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5616 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
5617 VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5618} VkExternalFenceHandleTypeFlagBits;
5619typedef VkFlags VkExternalFenceHandleTypeFlags;
5620
5621typedef enum VkExternalFenceFeatureFlagBits {
5622 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5623 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5624 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5625 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
5626 VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5627} VkExternalFenceFeatureFlagBits;
5628typedef VkFlags VkExternalFenceFeatureFlags;
5629
5630typedef enum VkFenceImportFlagBits {
5631 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
5632 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
5633 VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5634} VkFenceImportFlagBits;
5635typedef VkFlags VkFenceImportFlags;
5636
5637typedef enum VkSemaphoreImportFlagBits {
5638 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
5639 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
5640 VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5641} VkSemaphoreImportFlagBits;
5642typedef VkFlags VkSemaphoreImportFlags;
5643
5644typedef enum VkExternalSemaphoreHandleTypeFlagBits {
5645 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5646 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5647 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5648 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
5649 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
5650 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080,
5651 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5652 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5653 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5654 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5655 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5656 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5657 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5658} VkExternalSemaphoreHandleTypeFlagBits;
5659typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
5660
5661typedef enum VkExternalSemaphoreFeatureFlagBits {
5662 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5663 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5664 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5665 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
5666 VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5667} VkExternalSemaphoreFeatureFlagBits;
5668typedef VkFlags VkExternalSemaphoreFeatureFlags;
5669typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
5670typedef struct VkBindBufferMemoryInfo {
5671 VkStructureType sType;
5672 const void* pNext;
5673 VkBuffer buffer;
5674 VkDeviceMemory memory;
5675 VkDeviceSize memoryOffset;
5676} VkBindBufferMemoryInfo;
5677
5678typedef struct VkBindImageMemoryInfo {
5679 VkStructureType sType;
5680 const void* pNext;
5681 VkImage image;
5682 VkDeviceMemory memory;
5683 VkDeviceSize memoryOffset;
5684} VkBindImageMemoryInfo;
5685
5686typedef struct VkMemoryDedicatedRequirements {
5687 VkStructureType sType;
5688 void* pNext;
5689 VkBool32 prefersDedicatedAllocation;
5690 VkBool32 requiresDedicatedAllocation;
5691} VkMemoryDedicatedRequirements;
5692
5693typedef struct VkMemoryDedicatedAllocateInfo {
5694 VkStructureType sType;
5695 const void* pNext;
5696 VkImage image;
5697 VkBuffer buffer;
5698} VkMemoryDedicatedAllocateInfo;
5699
5700typedef struct VkMemoryAllocateFlagsInfo {
5701 VkStructureType sType;
5702 const void* pNext;
5703 VkMemoryAllocateFlags flags;
5704 uint32_t deviceMask;
5705} VkMemoryAllocateFlagsInfo;
5706
5707typedef struct VkDeviceGroupCommandBufferBeginInfo {
5708 VkStructureType sType;
5709 const void* pNext;
5710 uint32_t deviceMask;
5711} VkDeviceGroupCommandBufferBeginInfo;
5712
5713typedef struct VkDeviceGroupSubmitInfo {
5714 VkStructureType sType;
5715 const void* pNext;
5716 uint32_t waitSemaphoreCount;
5717 const uint32_t* pWaitSemaphoreDeviceIndices;
5718 uint32_t commandBufferCount;
5719 const uint32_t* pCommandBufferDeviceMasks;
5720 uint32_t signalSemaphoreCount;
5721 const uint32_t* pSignalSemaphoreDeviceIndices;
5722} VkDeviceGroupSubmitInfo;
5723
5724typedef struct VkDeviceGroupBindSparseInfo {
5725 VkStructureType sType;
5726 const void* pNext;
5727 uint32_t resourceDeviceIndex;
5728 uint32_t memoryDeviceIndex;
5729} VkDeviceGroupBindSparseInfo;
5730
5731typedef struct VkBindBufferMemoryDeviceGroupInfo {
5732 VkStructureType sType;
5733 const void* pNext;
5734 uint32_t deviceIndexCount;
5735 const uint32_t* pDeviceIndices;
5736} VkBindBufferMemoryDeviceGroupInfo;
5737
5738typedef struct VkBindImageMemoryDeviceGroupInfo {
5739 VkStructureType sType;
5740 const void* pNext;
5741 uint32_t deviceIndexCount;
5742 const uint32_t* pDeviceIndices;
5743 uint32_t splitInstanceBindRegionCount;
5744 const VkRect2D* pSplitInstanceBindRegions;
5745} VkBindImageMemoryDeviceGroupInfo;
5746
5747typedef struct VkPhysicalDeviceGroupProperties {
5748 VkStructureType sType;
5749 void* pNext;
5750 uint32_t physicalDeviceCount;
5751 VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
5752 VkBool32 subsetAllocation;
5753} VkPhysicalDeviceGroupProperties;
5754
5755typedef struct VkDeviceGroupDeviceCreateInfo {
5756 VkStructureType sType;
5757 const void* pNext;
5758 uint32_t physicalDeviceCount;
5759 const VkPhysicalDevice* pPhysicalDevices;
5760} VkDeviceGroupDeviceCreateInfo;
5761
5762typedef struct VkBufferMemoryRequirementsInfo2 {
5763 VkStructureType sType;
5764 const void* pNext;
5765 VkBuffer buffer;
5766} VkBufferMemoryRequirementsInfo2;
5767
5768typedef struct VkImageMemoryRequirementsInfo2 {
5769 VkStructureType sType;
5770 const void* pNext;
5771 VkImage image;
5772} VkImageMemoryRequirementsInfo2;
5773
5774typedef struct VkImageSparseMemoryRequirementsInfo2 {
5775 VkStructureType sType;
5776 const void* pNext;
5777 VkImage image;
5778} VkImageSparseMemoryRequirementsInfo2;
5779
5780typedef struct VkMemoryRequirements2 {
5781 VkStructureType sType;
5782 void* pNext;
5783 VkMemoryRequirements memoryRequirements;
5784} VkMemoryRequirements2;
5785
5786typedef struct VkSparseImageMemoryRequirements2 {
5787 VkStructureType sType;
5788 void* pNext;
5789 VkSparseImageMemoryRequirements memoryRequirements;
5790} VkSparseImageMemoryRequirements2;
5791
5792typedef struct VkPhysicalDeviceFeatures2 {
5793 VkStructureType sType;
5794 void* pNext;
5795 VkPhysicalDeviceFeatures features;
5796} VkPhysicalDeviceFeatures2;
5797
5798typedef struct VkPhysicalDeviceProperties2 {
5799 VkStructureType sType;
5800 void* pNext;
5801 VkPhysicalDeviceProperties properties;
5802} VkPhysicalDeviceProperties2;
5803
5804typedef struct VkFormatProperties2 {
5805 VkStructureType sType;
5806 void* pNext;
5807 VkFormatProperties formatProperties;
5808} VkFormatProperties2;
5809
5810typedef struct VkImageFormatProperties2 {
5811 VkStructureType sType;
5812 void* pNext;
5813 VkImageFormatProperties imageFormatProperties;
5814} VkImageFormatProperties2;
5815
5816typedef struct VkPhysicalDeviceImageFormatInfo2 {
5817 VkStructureType sType;
5818 const void* pNext;
5819 VkFormat format;
5820 VkImageType type;
5821 VkImageTiling tiling;
5822 VkImageUsageFlags usage;
5823 VkImageCreateFlags flags;
5824} VkPhysicalDeviceImageFormatInfo2;
5825
5826typedef struct VkQueueFamilyProperties2 {
5827 VkStructureType sType;
5828 void* pNext;
5829 VkQueueFamilyProperties queueFamilyProperties;
5830} VkQueueFamilyProperties2;
5831
5832typedef struct VkPhysicalDeviceMemoryProperties2 {
5833 VkStructureType sType;
5834 void* pNext;
5835 VkPhysicalDeviceMemoryProperties memoryProperties;
5836} VkPhysicalDeviceMemoryProperties2;
5837
5838typedef struct VkSparseImageFormatProperties2 {
5839 VkStructureType sType;
5840 void* pNext;
5841 VkSparseImageFormatProperties properties;
5842} VkSparseImageFormatProperties2;
5843
5844typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
5845 VkStructureType sType;
5846 const void* pNext;
5847 VkFormat format;
5848 VkImageType type;
5849 VkSampleCountFlagBits samples;
5850 VkImageUsageFlags usage;
5851 VkImageTiling tiling;
5852} VkPhysicalDeviceSparseImageFormatInfo2;
5853
5854typedef struct VkImageViewUsageCreateInfo {
5855 VkStructureType sType;
5856 const void* pNext;
5857 VkImageUsageFlags usage;
5858} VkImageViewUsageCreateInfo;
5859
5860typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
5861 VkStructureType sType;
5862 void* pNext;
5863 VkBool32 protectedMemory;
5864} VkPhysicalDeviceProtectedMemoryFeatures;
5865
5866typedef struct VkPhysicalDeviceProtectedMemoryProperties {
5867 VkStructureType sType;
5868 void* pNext;
5869 VkBool32 protectedNoFault;
5870} VkPhysicalDeviceProtectedMemoryProperties;
5871
5872typedef struct VkDeviceQueueInfo2 {
5873 VkStructureType sType;
5874 const void* pNext;
5875 VkDeviceQueueCreateFlags flags;
5876 uint32_t queueFamilyIndex;
5877 uint32_t queueIndex;
5878} VkDeviceQueueInfo2;
5879
5880typedef struct VkProtectedSubmitInfo {
5881 VkStructureType sType;
5882 const void* pNext;
5883 VkBool32 protectedSubmit;
5884} VkProtectedSubmitInfo;
5885
5886typedef struct VkBindImagePlaneMemoryInfo {
5887 VkStructureType sType;
5888 const void* pNext;
5889 VkImageAspectFlagBits planeAspect;
5890} VkBindImagePlaneMemoryInfo;
5891
5892typedef struct VkImagePlaneMemoryRequirementsInfo {
5893 VkStructureType sType;
5894 const void* pNext;
5895 VkImageAspectFlagBits planeAspect;
5896} VkImagePlaneMemoryRequirementsInfo;
5897
5898typedef struct VkExternalMemoryProperties {
5899 VkExternalMemoryFeatureFlags externalMemoryFeatures;
5900 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
5901 VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
5902} VkExternalMemoryProperties;
5903
5904typedef struct VkPhysicalDeviceExternalImageFormatInfo {
5905 VkStructureType sType;
5906 const void* pNext;
5907 VkExternalMemoryHandleTypeFlagBits handleType;
5908} VkPhysicalDeviceExternalImageFormatInfo;
5909
5910typedef struct VkExternalImageFormatProperties {
5911 VkStructureType sType;
5912 void* pNext;
5913 VkExternalMemoryProperties externalMemoryProperties;
5914} VkExternalImageFormatProperties;
5915
5916typedef struct VkPhysicalDeviceExternalBufferInfo {
5917 VkStructureType sType;
5918 const void* pNext;
5919 VkBufferCreateFlags flags;
5920 VkBufferUsageFlags usage;
5921 VkExternalMemoryHandleTypeFlagBits handleType;
5922} VkPhysicalDeviceExternalBufferInfo;
5923
5924typedef struct VkExternalBufferProperties {
5925 VkStructureType sType;
5926 void* pNext;
5927 VkExternalMemoryProperties externalMemoryProperties;
5928} VkExternalBufferProperties;
5929
5930typedef struct VkPhysicalDeviceIDProperties {
5931 VkStructureType sType;
5932 void* pNext;
5933 uint8_t deviceUUID[VK_UUID_SIZE];
5934 uint8_t driverUUID[VK_UUID_SIZE];
5935 uint8_t deviceLUID[VK_LUID_SIZE];
5936 uint32_t deviceNodeMask;
5937 VkBool32 deviceLUIDValid;
5938} VkPhysicalDeviceIDProperties;
5939
5940typedef struct VkExternalMemoryImageCreateInfo {
5941 VkStructureType sType;
5942 const void* pNext;
5943 VkExternalMemoryHandleTypeFlags handleTypes;
5944} VkExternalMemoryImageCreateInfo;
5945
5946typedef struct VkExternalMemoryBufferCreateInfo {
5947 VkStructureType sType;
5948 const void* pNext;
5949 VkExternalMemoryHandleTypeFlags handleTypes;
5950} VkExternalMemoryBufferCreateInfo;
5951
5952typedef struct VkExportMemoryAllocateInfo {
5953 VkStructureType sType;
5954 const void* pNext;
5955 VkExternalMemoryHandleTypeFlags handleTypes;
5956} VkExportMemoryAllocateInfo;
5957
5958typedef struct VkPhysicalDeviceExternalFenceInfo {
5959 VkStructureType sType;
5960 const void* pNext;
5961 VkExternalFenceHandleTypeFlagBits handleType;
5962} VkPhysicalDeviceExternalFenceInfo;
5963
5964typedef struct VkExternalFenceProperties {
5965 VkStructureType sType;
5966 void* pNext;
5967 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
5968 VkExternalFenceHandleTypeFlags compatibleHandleTypes;
5969 VkExternalFenceFeatureFlags externalFenceFeatures;
5970} VkExternalFenceProperties;
5971
5972typedef struct VkExportFenceCreateInfo {
5973 VkStructureType sType;
5974 const void* pNext;
5975 VkExternalFenceHandleTypeFlags handleTypes;
5976} VkExportFenceCreateInfo;
5977
5978typedef struct VkExportSemaphoreCreateInfo {
5979 VkStructureType sType;
5980 const void* pNext;
5981 VkExternalSemaphoreHandleTypeFlags handleTypes;
5982} VkExportSemaphoreCreateInfo;
5983
5984typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
5985 VkStructureType sType;
5986 const void* pNext;
5987 VkExternalSemaphoreHandleTypeFlagBits handleType;
5988} VkPhysicalDeviceExternalSemaphoreInfo;
5989
5990typedef struct VkExternalSemaphoreProperties {
5991 VkStructureType sType;
5992 void* pNext;
5993 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
5994 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
5995 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
5996} VkExternalSemaphoreProperties;
5997
5998typedef struct VkPhysicalDeviceSubgroupProperties {
5999 VkStructureType sType;
6000 void* pNext;
6001 uint32_t subgroupSize;
6002 VkShaderStageFlags supportedStages;
6003 VkSubgroupFeatureFlags supportedOperations;
6004 VkBool32 quadOperationsInAllStages;
6005} VkPhysicalDeviceSubgroupProperties;
6006
6007typedef struct VkPhysicalDevice16BitStorageFeatures {
6008 VkStructureType sType;
6009 void* pNext;
6010 VkBool32 storageBuffer16BitAccess;
6011 VkBool32 uniformAndStorageBuffer16BitAccess;
6012 VkBool32 storagePushConstant16;
6013 VkBool32 storageInputOutput16;
6014} VkPhysicalDevice16BitStorageFeatures;
6015
6016typedef struct VkPhysicalDeviceVariablePointersFeatures {
6017 VkStructureType sType;
6018 void* pNext;
6019 VkBool32 variablePointersStorageBuffer;
6020 VkBool32 variablePointers;
6021} VkPhysicalDeviceVariablePointersFeatures;
6022
6023typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
6024
6025typedef struct VkDescriptorUpdateTemplateEntry {
6026 uint32_t dstBinding;
6027 uint32_t dstArrayElement;
6028 uint32_t descriptorCount;
6029 VkDescriptorType descriptorType;
6030 size_t offset;
6031 size_t stride;
6032} VkDescriptorUpdateTemplateEntry;
6033
6034typedef struct VkDescriptorUpdateTemplateCreateInfo {
6035 VkStructureType sType;
6036 const void* pNext;
6037 VkDescriptorUpdateTemplateCreateFlags flags;
6038 uint32_t descriptorUpdateEntryCount;
6039 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries;
6040 VkDescriptorUpdateTemplateType templateType;
6041 VkDescriptorSetLayout descriptorSetLayout;
6042 VkPipelineBindPoint pipelineBindPoint;
6043 VkPipelineLayout pipelineLayout;
6044 uint32_t set;
6045} VkDescriptorUpdateTemplateCreateInfo;
6046
6047typedef struct VkPhysicalDeviceMaintenance3Properties {
6048 VkStructureType sType;
6049 void* pNext;
6050 uint32_t maxPerSetDescriptors;
6051 VkDeviceSize maxMemoryAllocationSize;
6052} VkPhysicalDeviceMaintenance3Properties;
6053
6054typedef struct VkDescriptorSetLayoutSupport {
6055 VkStructureType sType;
6056 void* pNext;
6057 VkBool32 supported;
6058} VkDescriptorSetLayoutSupport;
6059
6060typedef struct VkSamplerYcbcrConversionCreateInfo {
6061 VkStructureType sType;
6062 const void* pNext;
6063 VkFormat format;
6064 VkSamplerYcbcrModelConversion ycbcrModel;
6065 VkSamplerYcbcrRange ycbcrRange;
6066 VkComponentMapping components;
6067 VkChromaLocation xChromaOffset;
6068 VkChromaLocation yChromaOffset;
6069 VkFilter chromaFilter;
6070 VkBool32 forceExplicitReconstruction;
6071} VkSamplerYcbcrConversionCreateInfo;
6072
6073typedef struct VkSamplerYcbcrConversionInfo {
6074 VkStructureType sType;
6075 const void* pNext;
6076 VkSamplerYcbcrConversion conversion;
6077} VkSamplerYcbcrConversionInfo;
6078
6079typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
6080 VkStructureType sType;
6081 void* pNext;
6082 VkBool32 samplerYcbcrConversion;
6083} VkPhysicalDeviceSamplerYcbcrConversionFeatures;
6084
6085typedef struct VkSamplerYcbcrConversionImageFormatProperties {
6086 VkStructureType sType;
6087 void* pNext;
6088 uint32_t combinedImageSamplerDescriptorCount;
6089} VkSamplerYcbcrConversionImageFormatProperties;
6090
6091typedef struct VkDeviceGroupRenderPassBeginInfo {
6092 VkStructureType sType;
6093 const void* pNext;
6094 uint32_t deviceMask;
6095 uint32_t deviceRenderAreaCount;
6096 const VkRect2D* pDeviceRenderAreas;
6097} VkDeviceGroupRenderPassBeginInfo;
6098
6099typedef struct VkPhysicalDevicePointClippingProperties {
6100 VkStructureType sType;
6101 void* pNext;
6102 VkPointClippingBehavior pointClippingBehavior;
6103} VkPhysicalDevicePointClippingProperties;
6104
6105typedef struct VkInputAttachmentAspectReference {
6106 uint32_t subpass;
6107 uint32_t inputAttachmentIndex;
6108 VkImageAspectFlags aspectMask;
6109} VkInputAttachmentAspectReference;
6110
6111typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
6112 VkStructureType sType;
6113 const void* pNext;
6114 uint32_t aspectReferenceCount;
6115 const VkInputAttachmentAspectReference* pAspectReferences;
6116} VkRenderPassInputAttachmentAspectCreateInfo;
6117
6118typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
6119 VkStructureType sType;
6120 const void* pNext;
6121 VkTessellationDomainOrigin domainOrigin;
6122} VkPipelineTessellationDomainOriginStateCreateInfo;
6123
6124typedef struct VkRenderPassMultiviewCreateInfo {
6125 VkStructureType sType;
6126 const void* pNext;
6127 uint32_t subpassCount;
6128 const uint32_t* pViewMasks;
6129 uint32_t dependencyCount;
6130 const int32_t* pViewOffsets;
6131 uint32_t correlationMaskCount;
6132 const uint32_t* pCorrelationMasks;
6133} VkRenderPassMultiviewCreateInfo;
6134
6135typedef struct VkPhysicalDeviceMultiviewFeatures {
6136 VkStructureType sType;
6137 void* pNext;
6138 VkBool32 multiview;
6139 VkBool32 multiviewGeometryShader;
6140 VkBool32 multiviewTessellationShader;
6141} VkPhysicalDeviceMultiviewFeatures;
6142
6143typedef struct VkPhysicalDeviceMultiviewProperties {
6144 VkStructureType sType;
6145 void* pNext;
6146 uint32_t maxMultiviewViewCount;
6147 uint32_t maxMultiviewInstanceIndex;
6148} VkPhysicalDeviceMultiviewProperties;
6149
6150typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
6151 VkStructureType sType;
6152 void* pNext;
6153 VkBool32 shaderDrawParameters;
6154} VkPhysicalDeviceShaderDrawParametersFeatures;
6155
6156typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
6157
6158typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
6159typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
6160typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
6161typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
6162typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
6163typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
6164typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
6165typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
6166typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
6167typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
6168typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
6169typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
6170typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
6171typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
6172typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
6173typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
6174typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
6175typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
6176typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
6177typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
6178typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
6179typedef 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);
6180typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
6181typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
6182typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
6183typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
6184typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
6185typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
6186
6187#ifndef VK_NO_PROTOTYPES
6188VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
6189 uint32_t* pApiVersion);
6190
6191VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
6192 VkDevice device,
6193 uint32_t bindInfoCount,
6194 const VkBindBufferMemoryInfo* pBindInfos);
6195
6196VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
6197 VkDevice device,
6198 uint32_t bindInfoCount,
6199 const VkBindImageMemoryInfo* pBindInfos);
6200
6201VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
6202 VkDevice device,
6203 uint32_t heapIndex,
6204 uint32_t localDeviceIndex,
6205 uint32_t remoteDeviceIndex,
6206 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
6207
6208VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
6209 VkCommandBuffer commandBuffer,
6210 uint32_t deviceMask);
6211
6212VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
6213 VkInstance instance,
6214 uint32_t* pPhysicalDeviceGroupCount,
6215 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
6216
6217VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
6218 VkDevice device,
6219 const VkImageMemoryRequirementsInfo2* pInfo,
6220 VkMemoryRequirements2* pMemoryRequirements);
6221
6222VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
6223 VkDevice device,
6224 const VkBufferMemoryRequirementsInfo2* pInfo,
6225 VkMemoryRequirements2* pMemoryRequirements);
6226
6227VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
6228 VkDevice device,
6229 const VkImageSparseMemoryRequirementsInfo2* pInfo,
6230 uint32_t* pSparseMemoryRequirementCount,
6231 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
6232
6233VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
6234 VkPhysicalDevice physicalDevice,
6235 VkPhysicalDeviceFeatures2* pFeatures);
6236
6237VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
6238 VkPhysicalDevice physicalDevice,
6239 VkPhysicalDeviceProperties2* pProperties);
6240
6241VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
6242 VkPhysicalDevice physicalDevice,
6243 VkFormat format,
6244 VkFormatProperties2* pFormatProperties);
6245
6246VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
6247 VkPhysicalDevice physicalDevice,
6248 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
6249 VkImageFormatProperties2* pImageFormatProperties);
6250
6251VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
6252 VkPhysicalDevice physicalDevice,
6253 uint32_t* pQueueFamilyPropertyCount,
6254 VkQueueFamilyProperties2* pQueueFamilyProperties);
6255
6256VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
6257 VkPhysicalDevice physicalDevice,
6258 VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
6259
6260VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
6261 VkPhysicalDevice physicalDevice,
6262 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
6263 uint32_t* pPropertyCount,
6264 VkSparseImageFormatProperties2* pProperties);
6265
6266VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
6267 VkDevice device,
6268 VkCommandPool commandPool,
6269 VkCommandPoolTrimFlags flags);
6270
6271VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
6272 VkDevice device,
6273 const VkDeviceQueueInfo2* pQueueInfo,
6274 VkQueue* pQueue);
6275
6276VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
6277 VkPhysicalDevice physicalDevice,
6278 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
6279 VkExternalBufferProperties* pExternalBufferProperties);
6280
6281VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
6282 VkPhysicalDevice physicalDevice,
6283 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
6284 VkExternalFenceProperties* pExternalFenceProperties);
6285
6286VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
6287 VkPhysicalDevice physicalDevice,
6288 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
6289 VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
6290
6291VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
6292 VkCommandBuffer commandBuffer,
6293 uint32_t baseGroupX,
6294 uint32_t baseGroupY,
6295 uint32_t baseGroupZ,
6296 uint32_t groupCountX,
6297 uint32_t groupCountY,
6298 uint32_t groupCountZ);
6299
6300VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
6301 VkDevice device,
6302 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
6303 const VkAllocationCallbacks* pAllocator,
6304 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
6305
6306VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
6307 VkDevice device,
6308 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
6309 const VkAllocationCallbacks* pAllocator);
6310
6311VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
6312 VkDevice device,
6313 VkDescriptorSet descriptorSet,
6314 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
6315 const void* pData);
6316
6317VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
6318 VkDevice device,
6319 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
6320 VkDescriptorSetLayoutSupport* pSupport);
6321
6322VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
6323 VkDevice device,
6324 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
6325 const VkAllocationCallbacks* pAllocator,
6326 VkSamplerYcbcrConversion* pYcbcrConversion);
6327
6328VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
6329 VkDevice device,
6330 VkSamplerYcbcrConversion ycbcrConversion,
6331 const VkAllocationCallbacks* pAllocator);
6332#endif
6333
6334
6335// VK_VERSION_1_2 is a preprocessor guard. Do not pass it to API calls.
6336#define VK_VERSION_1_2 1
6337// Vulkan 1.2 version number
6338#define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0
6339
6340#define VK_MAX_DRIVER_NAME_SIZE 256U
6341#define VK_MAX_DRIVER_INFO_SIZE 256U
6342
6343typedef enum VkDriverId {
6344 VK_DRIVER_ID_AMD_PROPRIETARY = 1,
6345 VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
6346 VK_DRIVER_ID_MESA_RADV = 3,
6347 VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
6348 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
6349 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
6350 VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
6351 VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
6352 VK_DRIVER_ID_ARM_PROPRIETARY = 9,
6353 VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
6354 VK_DRIVER_ID_GGP_PROPRIETARY = 11,
6355 VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
6356 VK_DRIVER_ID_MESA_LLVMPIPE = 13,
6357 VK_DRIVER_ID_MOLTENVK = 14,
6358 VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
6359 VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
6360 VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
6361 VK_DRIVER_ID_MESA_TURNIP = 18,
6362 VK_DRIVER_ID_MESA_V3DV = 19,
6363 VK_DRIVER_ID_MESA_PANVK = 20,
6364 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
6365 VK_DRIVER_ID_MESA_VENUS = 22,
6366 VK_DRIVER_ID_MESA_DOZEN = 23,
6367 VK_DRIVER_ID_MESA_NVK = 24,
6368 VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25,
6369 VK_DRIVER_ID_MESA_HONEYKRISP = 26,
6370 VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN = 27,
6371 VK_DRIVER_ID_MESA_KOSMICKRISP = 28,
6372 VK_DRIVER_ID_MESA_GFXSTREAM = 29,
6373 VK_DRIVER_ID_APE_SOFT = 30,
6374 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
6375 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
6376 VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
6377 VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
6378 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
6379 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
6380 VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
6381 VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
6382 VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
6383 VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
6384 VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
6385 VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
6386 VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
6387} VkDriverId;
6388
6389typedef enum VkShaderFloatControlsIndependence {
6390 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
6391 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
6392 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
6393 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
6394 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
6395 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
6396 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
6397} VkShaderFloatControlsIndependence;
6398
6399typedef enum VkSemaphoreType {
6400 VK_SEMAPHORE_TYPE_BINARY = 0,
6401 VK_SEMAPHORE_TYPE_TIMELINE = 1,
6402 VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
6403 VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
6404 VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
6405} VkSemaphoreType;
6406
6407typedef enum VkSamplerReductionMode {
6408 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
6409 VK_SAMPLER_REDUCTION_MODE_MIN = 1,
6410 VK_SAMPLER_REDUCTION_MODE_MAX = 2,
6411 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000,
6412 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
6413 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
6414 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
6415 VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
6416} VkSamplerReductionMode;
6417
6418typedef enum VkResolveModeFlagBits {
6419 VK_RESOLVE_MODE_NONE = 0,
6420 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
6421 VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
6422 VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
6423 VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
6424 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID = 0x00000010,
6425 VK_RESOLVE_MODE_CUSTOM_BIT_EXT = 0x00000020,
6426 VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
6427 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
6428 VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
6429 VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
6430 VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
6431 // VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID is a legacy alias
6432 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID,
6433 VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6434} VkResolveModeFlagBits;
6435typedef VkFlags VkResolveModeFlags;
6436
6437typedef enum VkSemaphoreWaitFlagBits {
6438 VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
6439 VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
6440 VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6441} VkSemaphoreWaitFlagBits;
6442typedef VkFlags VkSemaphoreWaitFlags;
6443
6444typedef enum VkDescriptorBindingFlagBits {
6445 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
6446 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
6447 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
6448 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
6449 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
6450 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
6451 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
6452 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
6453 VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6454} VkDescriptorBindingFlagBits;
6455typedef VkFlags VkDescriptorBindingFlags;
6456typedef struct VkConformanceVersion {
6457 uint8_t major;
6458 uint8_t minor;
6459 uint8_t subminor;
6460 uint8_t patch;
6461} VkConformanceVersion;
6462
6463typedef struct VkPhysicalDeviceDriverProperties {
6464 VkStructureType sType;
6465 void* pNext;
6466 VkDriverId driverID;
6467 char driverName[VK_MAX_DRIVER_NAME_SIZE];
6468 char driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6469 VkConformanceVersion conformanceVersion;
6470} VkPhysicalDeviceDriverProperties;
6471
6472typedef struct VkPhysicalDeviceVulkan11Features {
6473 VkStructureType sType;
6474 void* pNext;
6475 VkBool32 storageBuffer16BitAccess;
6476 VkBool32 uniformAndStorageBuffer16BitAccess;
6477 VkBool32 storagePushConstant16;
6478 VkBool32 storageInputOutput16;
6479 VkBool32 multiview;
6480 VkBool32 multiviewGeometryShader;
6481 VkBool32 multiviewTessellationShader;
6482 VkBool32 variablePointersStorageBuffer;
6483 VkBool32 variablePointers;
6484 VkBool32 protectedMemory;
6485 VkBool32 samplerYcbcrConversion;
6486 VkBool32 shaderDrawParameters;
6487} VkPhysicalDeviceVulkan11Features;
6488
6489typedef struct VkPhysicalDeviceVulkan11Properties {
6490 VkStructureType sType;
6491 void* pNext;
6492 uint8_t deviceUUID[VK_UUID_SIZE];
6493 uint8_t driverUUID[VK_UUID_SIZE];
6494 uint8_t deviceLUID[VK_LUID_SIZE];
6495 uint32_t deviceNodeMask;
6496 VkBool32 deviceLUIDValid;
6497 uint32_t subgroupSize;
6498 VkShaderStageFlags subgroupSupportedStages;
6499 VkSubgroupFeatureFlags subgroupSupportedOperations;
6500 VkBool32 subgroupQuadOperationsInAllStages;
6501 VkPointClippingBehavior pointClippingBehavior;
6502 uint32_t maxMultiviewViewCount;
6503 uint32_t maxMultiviewInstanceIndex;
6504 VkBool32 protectedNoFault;
6505 uint32_t maxPerSetDescriptors;
6506 VkDeviceSize maxMemoryAllocationSize;
6507} VkPhysicalDeviceVulkan11Properties;
6508
6509typedef struct VkPhysicalDeviceVulkan12Features {
6510 VkStructureType sType;
6511 void* pNext;
6512 VkBool32 samplerMirrorClampToEdge;
6513 VkBool32 drawIndirectCount;
6514 VkBool32 storageBuffer8BitAccess;
6515 VkBool32 uniformAndStorageBuffer8BitAccess;
6516 VkBool32 storagePushConstant8;
6517 VkBool32 shaderBufferInt64Atomics;
6518 VkBool32 shaderSharedInt64Atomics;
6519 VkBool32 shaderFloat16;
6520 VkBool32 shaderInt8;
6521 VkBool32 descriptorIndexing;
6522 VkBool32 shaderInputAttachmentArrayDynamicIndexing;
6523 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
6524 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
6525 VkBool32 shaderUniformBufferArrayNonUniformIndexing;
6526 VkBool32 shaderSampledImageArrayNonUniformIndexing;
6527 VkBool32 shaderStorageBufferArrayNonUniformIndexing;
6528 VkBool32 shaderStorageImageArrayNonUniformIndexing;
6529 VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
6530 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
6531 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
6532 VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
6533 VkBool32 descriptorBindingSampledImageUpdateAfterBind;
6534 VkBool32 descriptorBindingStorageImageUpdateAfterBind;
6535 VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
6536 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
6537 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
6538 VkBool32 descriptorBindingUpdateUnusedWhilePending;
6539 VkBool32 descriptorBindingPartiallyBound;
6540 VkBool32 descriptorBindingVariableDescriptorCount;
6541 VkBool32 runtimeDescriptorArray;
6542 VkBool32 samplerFilterMinmax;
6543 VkBool32 scalarBlockLayout;
6544 VkBool32 imagelessFramebuffer;
6545 VkBool32 uniformBufferStandardLayout;
6546 VkBool32 shaderSubgroupExtendedTypes;
6547 VkBool32 separateDepthStencilLayouts;
6548 VkBool32 hostQueryReset;
6549 VkBool32 timelineSemaphore;
6550 VkBool32 bufferDeviceAddress;
6551 VkBool32 bufferDeviceAddressCaptureReplay;
6552 VkBool32 bufferDeviceAddressMultiDevice;
6553 VkBool32 vulkanMemoryModel;
6554 VkBool32 vulkanMemoryModelDeviceScope;
6555 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
6556 VkBool32 shaderOutputViewportIndex;
6557 VkBool32 shaderOutputLayer;
6558 VkBool32 subgroupBroadcastDynamicId;
6559} VkPhysicalDeviceVulkan12Features;
6560
6561typedef struct VkPhysicalDeviceVulkan12Properties {
6562 VkStructureType sType;
6563 void* pNext;
6564 VkDriverId driverID;
6565 char driverName[VK_MAX_DRIVER_NAME_SIZE];
6566 char driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6567 VkConformanceVersion conformanceVersion;
6568 VkShaderFloatControlsIndependence denormBehaviorIndependence;
6569 VkShaderFloatControlsIndependence roundingModeIndependence;
6570 VkBool32 shaderSignedZeroInfNanPreserveFloat16;
6571 VkBool32 shaderSignedZeroInfNanPreserveFloat32;
6572 VkBool32 shaderSignedZeroInfNanPreserveFloat64;
6573 VkBool32 shaderDenormPreserveFloat16;
6574 VkBool32 shaderDenormPreserveFloat32;
6575 VkBool32 shaderDenormPreserveFloat64;
6576 VkBool32 shaderDenormFlushToZeroFloat16;
6577 VkBool32 shaderDenormFlushToZeroFloat32;
6578 VkBool32 shaderDenormFlushToZeroFloat64;
6579 VkBool32 shaderRoundingModeRTEFloat16;
6580 VkBool32 shaderRoundingModeRTEFloat32;
6581 VkBool32 shaderRoundingModeRTEFloat64;
6582 VkBool32 shaderRoundingModeRTZFloat16;
6583 VkBool32 shaderRoundingModeRTZFloat32;
6584 VkBool32 shaderRoundingModeRTZFloat64;
6585 uint32_t maxUpdateAfterBindDescriptorsInAllPools;
6586 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
6587 VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
6588 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
6589 VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
6590 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
6591 VkBool32 robustBufferAccessUpdateAfterBind;
6592 VkBool32 quadDivergentImplicitLod;
6593 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
6594 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6595 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6596 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
6597 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
6598 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
6599 uint32_t maxPerStageUpdateAfterBindResources;
6600 uint32_t maxDescriptorSetUpdateAfterBindSamplers;
6601 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
6602 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6603 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
6604 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6605 uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
6606 uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
6607 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
6608 VkResolveModeFlags supportedDepthResolveModes;
6609 VkResolveModeFlags supportedStencilResolveModes;
6610 VkBool32 independentResolveNone;
6611 VkBool32 independentResolve;
6612 VkBool32 filterMinmaxSingleComponentFormats;
6613 VkBool32 filterMinmaxImageComponentMapping;
6614 uint64_t maxTimelineSemaphoreValueDifference;
6615 VkSampleCountFlags framebufferIntegerColorSampleCounts;
6616} VkPhysicalDeviceVulkan12Properties;
6617
6618typedef struct VkImageFormatListCreateInfo {
6619 VkStructureType sType;
6620 const void* pNext;
6621 uint32_t viewFormatCount;
6622 const VkFormat* pViewFormats;
6623} VkImageFormatListCreateInfo;
6624
6625typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
6626 VkStructureType sType;
6627 void* pNext;
6628 VkBool32 vulkanMemoryModel;
6629 VkBool32 vulkanMemoryModelDeviceScope;
6630 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
6631} VkPhysicalDeviceVulkanMemoryModelFeatures;
6632
6633typedef struct VkPhysicalDeviceHostQueryResetFeatures {
6634 VkStructureType sType;
6635 void* pNext;
6636 VkBool32 hostQueryReset;
6637} VkPhysicalDeviceHostQueryResetFeatures;
6638
6639typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
6640 VkStructureType sType;
6641 void* pNext;
6642 VkBool32 timelineSemaphore;
6643} VkPhysicalDeviceTimelineSemaphoreFeatures;
6644
6645typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
6646 VkStructureType sType;
6647 void* pNext;
6648 uint64_t maxTimelineSemaphoreValueDifference;
6649} VkPhysicalDeviceTimelineSemaphoreProperties;
6650
6651typedef struct VkSemaphoreTypeCreateInfo {
6652 VkStructureType sType;
6653 const void* pNext;
6654 VkSemaphoreType semaphoreType;
6655 uint64_t initialValue;
6656} VkSemaphoreTypeCreateInfo;
6657
6658typedef struct VkTimelineSemaphoreSubmitInfo {
6659 VkStructureType sType;
6660 const void* pNext;
6661 uint32_t waitSemaphoreValueCount;
6662 const uint64_t* pWaitSemaphoreValues;
6663 uint32_t signalSemaphoreValueCount;
6664 const uint64_t* pSignalSemaphoreValues;
6665} VkTimelineSemaphoreSubmitInfo;
6666
6667typedef struct VkSemaphoreWaitInfo {
6668 VkStructureType sType;
6669 const void* pNext;
6670 VkSemaphoreWaitFlags flags;
6671 uint32_t semaphoreCount;
6672 const VkSemaphore* pSemaphores;
6673 const uint64_t* pValues;
6674} VkSemaphoreWaitInfo;
6675
6676typedef struct VkSemaphoreSignalInfo {
6677 VkStructureType sType;
6678 const void* pNext;
6679 VkSemaphore semaphore;
6680 uint64_t value;
6681} VkSemaphoreSignalInfo;
6682
6683typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
6684 VkStructureType sType;
6685 void* pNext;
6686 VkBool32 bufferDeviceAddress;
6687 VkBool32 bufferDeviceAddressCaptureReplay;
6688 VkBool32 bufferDeviceAddressMultiDevice;
6689} VkPhysicalDeviceBufferDeviceAddressFeatures;
6690
6691typedef struct VkBufferDeviceAddressInfo {
6692 VkStructureType sType;
6693 const void* pNext;
6694 VkBuffer buffer;
6695} VkBufferDeviceAddressInfo;
6696
6697typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
6698 VkStructureType sType;
6699 const void* pNext;
6700 uint64_t opaqueCaptureAddress;
6701} VkBufferOpaqueCaptureAddressCreateInfo;
6702
6703typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
6704 VkStructureType sType;
6705 const void* pNext;
6706 uint64_t opaqueCaptureAddress;
6707} VkMemoryOpaqueCaptureAddressAllocateInfo;
6708
6709typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
6710 VkStructureType sType;
6711 const void* pNext;
6712 VkDeviceMemory memory;
6713} VkDeviceMemoryOpaqueCaptureAddressInfo;
6714
6715typedef struct VkPhysicalDevice8BitStorageFeatures {
6716 VkStructureType sType;
6717 void* pNext;
6718 VkBool32 storageBuffer8BitAccess;
6719 VkBool32 uniformAndStorageBuffer8BitAccess;
6720 VkBool32 storagePushConstant8;
6721} VkPhysicalDevice8BitStorageFeatures;
6722
6723typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
6724 VkStructureType sType;
6725 void* pNext;
6726 VkBool32 shaderBufferInt64Atomics;
6727 VkBool32 shaderSharedInt64Atomics;
6728} VkPhysicalDeviceShaderAtomicInt64Features;
6729
6730typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
6731 VkStructureType sType;
6732 void* pNext;
6733 VkBool32 shaderFloat16;
6734 VkBool32 shaderInt8;
6735} VkPhysicalDeviceShaderFloat16Int8Features;
6736
6737typedef struct VkPhysicalDeviceFloatControlsProperties {
6738 VkStructureType sType;
6739 void* pNext;
6740 VkShaderFloatControlsIndependence denormBehaviorIndependence;
6741 VkShaderFloatControlsIndependence roundingModeIndependence;
6742 VkBool32 shaderSignedZeroInfNanPreserveFloat16;
6743 VkBool32 shaderSignedZeroInfNanPreserveFloat32;
6744 VkBool32 shaderSignedZeroInfNanPreserveFloat64;
6745 VkBool32 shaderDenormPreserveFloat16;
6746 VkBool32 shaderDenormPreserveFloat32;
6747 VkBool32 shaderDenormPreserveFloat64;
6748 VkBool32 shaderDenormFlushToZeroFloat16;
6749 VkBool32 shaderDenormFlushToZeroFloat32;
6750 VkBool32 shaderDenormFlushToZeroFloat64;
6751 VkBool32 shaderRoundingModeRTEFloat16;
6752 VkBool32 shaderRoundingModeRTEFloat32;
6753 VkBool32 shaderRoundingModeRTEFloat64;
6754 VkBool32 shaderRoundingModeRTZFloat16;
6755 VkBool32 shaderRoundingModeRTZFloat32;
6756 VkBool32 shaderRoundingModeRTZFloat64;
6757} VkPhysicalDeviceFloatControlsProperties;
6758
6759typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
6760 VkStructureType sType;
6761 const void* pNext;
6762 uint32_t bindingCount;
6763 const VkDescriptorBindingFlags* pBindingFlags;
6764} VkDescriptorSetLayoutBindingFlagsCreateInfo;
6765
6766typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
6767 VkStructureType sType;
6768 void* pNext;
6769 VkBool32 shaderInputAttachmentArrayDynamicIndexing;
6770 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
6771 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
6772 VkBool32 shaderUniformBufferArrayNonUniformIndexing;
6773 VkBool32 shaderSampledImageArrayNonUniformIndexing;
6774 VkBool32 shaderStorageBufferArrayNonUniformIndexing;
6775 VkBool32 shaderStorageImageArrayNonUniformIndexing;
6776 VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
6777 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
6778 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
6779 VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
6780 VkBool32 descriptorBindingSampledImageUpdateAfterBind;
6781 VkBool32 descriptorBindingStorageImageUpdateAfterBind;
6782 VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
6783 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
6784 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
6785 VkBool32 descriptorBindingUpdateUnusedWhilePending;
6786 VkBool32 descriptorBindingPartiallyBound;
6787 VkBool32 descriptorBindingVariableDescriptorCount;
6788 VkBool32 runtimeDescriptorArray;
6789} VkPhysicalDeviceDescriptorIndexingFeatures;
6790
6791typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
6792 VkStructureType sType;
6793 void* pNext;
6794 uint32_t maxUpdateAfterBindDescriptorsInAllPools;
6795 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
6796 VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
6797 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
6798 VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
6799 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
6800 VkBool32 robustBufferAccessUpdateAfterBind;
6801 VkBool32 quadDivergentImplicitLod;
6802 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
6803 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6804 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6805 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
6806 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
6807 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
6808 uint32_t maxPerStageUpdateAfterBindResources;
6809 uint32_t maxDescriptorSetUpdateAfterBindSamplers;
6810 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
6811 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6812 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
6813 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6814 uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
6815 uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
6816 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
6817} VkPhysicalDeviceDescriptorIndexingProperties;
6818
6819typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
6820 VkStructureType sType;
6821 const void* pNext;
6822 uint32_t descriptorSetCount;
6823 const uint32_t* pDescriptorCounts;
6824} VkDescriptorSetVariableDescriptorCountAllocateInfo;
6825
6826typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
6827 VkStructureType sType;
6828 void* pNext;
6829 uint32_t maxVariableDescriptorCount;
6830} VkDescriptorSetVariableDescriptorCountLayoutSupport;
6831
6832typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
6833 VkStructureType sType;
6834 void* pNext;
6835 VkBool32 scalarBlockLayout;
6836} VkPhysicalDeviceScalarBlockLayoutFeatures;
6837
6838typedef struct VkSamplerReductionModeCreateInfo {
6839 VkStructureType sType;
6840 const void* pNext;
6841 VkSamplerReductionMode reductionMode;
6842} VkSamplerReductionModeCreateInfo;
6843
6844typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
6845 VkStructureType sType;
6846 void* pNext;
6847 VkBool32 filterMinmaxSingleComponentFormats;
6848 VkBool32 filterMinmaxImageComponentMapping;
6849} VkPhysicalDeviceSamplerFilterMinmaxProperties;
6850
6851typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
6852 VkStructureType sType;
6853 void* pNext;
6854 VkBool32 uniformBufferStandardLayout;
6855} VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
6856
6857typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
6858 VkStructureType sType;
6859 void* pNext;
6860 VkBool32 shaderSubgroupExtendedTypes;
6861} VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
6862
6863typedef struct VkAttachmentDescription2 {
6864 VkStructureType sType;
6865 const void* pNext;
6866 VkAttachmentDescriptionFlags flags;
6867 VkFormat format;
6868 VkSampleCountFlagBits samples;
6869 VkAttachmentLoadOp loadOp;
6870 VkAttachmentStoreOp storeOp;
6871 VkAttachmentLoadOp stencilLoadOp;
6872 VkAttachmentStoreOp stencilStoreOp;
6873 VkImageLayout initialLayout;
6874 VkImageLayout finalLayout;
6875} VkAttachmentDescription2;
6876
6877typedef struct VkAttachmentReference2 {
6878 VkStructureType sType;
6879 const void* pNext;
6880 uint32_t attachment;
6881 VkImageLayout layout;
6882 VkImageAspectFlags aspectMask;
6883} VkAttachmentReference2;
6884
6885typedef struct VkSubpassDescription2 {
6886 VkStructureType sType;
6887 const void* pNext;
6888 VkSubpassDescriptionFlags flags;
6889 VkPipelineBindPoint pipelineBindPoint;
6890 uint32_t viewMask;
6891 uint32_t inputAttachmentCount;
6892 const VkAttachmentReference2* pInputAttachments;
6893 uint32_t colorAttachmentCount;
6894 const VkAttachmentReference2* pColorAttachments;
6895 const VkAttachmentReference2* pResolveAttachments;
6896 const VkAttachmentReference2* pDepthStencilAttachment;
6897 uint32_t preserveAttachmentCount;
6898 const uint32_t* pPreserveAttachments;
6899} VkSubpassDescription2;
6900
6901typedef struct VkSubpassDependency2 {
6902 VkStructureType sType;
6903 const void* pNext;
6904 uint32_t srcSubpass;
6905 uint32_t dstSubpass;
6906 VkPipelineStageFlags srcStageMask;
6907 VkPipelineStageFlags dstStageMask;
6908 VkAccessFlags srcAccessMask;
6909 VkAccessFlags dstAccessMask;
6910 VkDependencyFlags dependencyFlags;
6911 int32_t viewOffset;
6912} VkSubpassDependency2;
6913
6914typedef struct VkSubpassBeginInfo {
6915 VkStructureType sType;
6916 const void* pNext;
6917 VkSubpassContents contents;
6918} VkSubpassBeginInfo;
6919
6920typedef struct VkSubpassEndInfo {
6921 VkStructureType sType;
6922 const void* pNext;
6923} VkSubpassEndInfo;
6924
6925typedef struct VkRenderPassCreateInfo2 {
6926 VkStructureType sType;
6927 const void* pNext;
6928 VkRenderPassCreateFlags flags;
6929 uint32_t attachmentCount;
6930 const VkAttachmentDescription2* pAttachments;
6931 uint32_t subpassCount;
6932 const VkSubpassDescription2* pSubpasses;
6933 uint32_t dependencyCount;
6934 const VkSubpassDependency2* pDependencies;
6935 uint32_t correlatedViewMaskCount;
6936 const uint32_t* pCorrelatedViewMasks;
6937} VkRenderPassCreateInfo2;
6938
6939typedef struct VkSubpassDescriptionDepthStencilResolve {
6940 VkStructureType sType;
6941 const void* pNext;
6942 VkResolveModeFlagBits depthResolveMode;
6943 VkResolveModeFlagBits stencilResolveMode;
6944 const VkAttachmentReference2* pDepthStencilResolveAttachment;
6945} VkSubpassDescriptionDepthStencilResolve;
6946
6947typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
6948 VkStructureType sType;
6949 void* pNext;
6950 VkResolveModeFlags supportedDepthResolveModes;
6951 VkResolveModeFlags supportedStencilResolveModes;
6952 VkBool32 independentResolveNone;
6953 VkBool32 independentResolve;
6954} VkPhysicalDeviceDepthStencilResolveProperties;
6955
6956typedef struct VkImageStencilUsageCreateInfo {
6957 VkStructureType sType;
6958 const void* pNext;
6959 VkImageUsageFlags stencilUsage;
6960} VkImageStencilUsageCreateInfo;
6961
6962typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
6963 VkStructureType sType;
6964 void* pNext;
6965 VkBool32 imagelessFramebuffer;
6966} VkPhysicalDeviceImagelessFramebufferFeatures;
6967
6968typedef struct VkFramebufferAttachmentImageInfo {
6969 VkStructureType sType;
6970 const void* pNext;
6971 VkImageCreateFlags flags;
6972 VkImageUsageFlags usage;
6973 uint32_t width;
6974 uint32_t height;
6975 uint32_t layerCount;
6976 uint32_t viewFormatCount;
6977 const VkFormat* pViewFormats;
6978} VkFramebufferAttachmentImageInfo;
6979
6980typedef struct VkRenderPassAttachmentBeginInfo {
6981 VkStructureType sType;
6982 const void* pNext;
6983 uint32_t attachmentCount;
6984 const VkImageView* pAttachments;
6985} VkRenderPassAttachmentBeginInfo;
6986
6987typedef struct VkFramebufferAttachmentsCreateInfo {
6988 VkStructureType sType;
6989 const void* pNext;
6990 uint32_t attachmentImageInfoCount;
6991 const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos;
6992} VkFramebufferAttachmentsCreateInfo;
6993
6994typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
6995 VkStructureType sType;
6996 void* pNext;
6997 VkBool32 separateDepthStencilLayouts;
6998} VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
6999
7000typedef struct VkAttachmentReferenceStencilLayout {
7001 VkStructureType sType;
7002 void* pNext;
7003 VkImageLayout stencilLayout;
7004} VkAttachmentReferenceStencilLayout;
7005
7006typedef struct VkAttachmentDescriptionStencilLayout {
7007 VkStructureType sType;
7008 void* pNext;
7009 VkImageLayout stencilInitialLayout;
7010 VkImageLayout stencilFinalLayout;
7011} VkAttachmentDescriptionStencilLayout;
7012
7013typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
7014typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
7015typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
7016typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
7017typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
7018typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
7019typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
7020typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
7021typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
7022typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
7023typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
7024typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
7025typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
7026
7027#ifndef VK_NO_PROTOTYPES
7028VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
7029 VkDevice device,
7030 VkQueryPool queryPool,
7031 uint32_t firstQuery,
7032 uint32_t queryCount);
7033
7034VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
7035 VkDevice device,
7036 VkSemaphore semaphore,
7037 uint64_t* pValue);
7038
7039VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
7040 VkDevice device,
7041 const VkSemaphoreWaitInfo* pWaitInfo,
7042 uint64_t timeout);
7043
7044VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
7045 VkDevice device,
7046 const VkSemaphoreSignalInfo* pSignalInfo);
7047
7048VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
7049 VkDevice device,
7050 const VkBufferDeviceAddressInfo* pInfo);
7051
7052VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
7053 VkDevice device,
7054 const VkBufferDeviceAddressInfo* pInfo);
7055
7056VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
7057 VkDevice device,
7058 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
7059
7060VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
7061 VkCommandBuffer commandBuffer,
7062 VkBuffer buffer,
7063 VkDeviceSize offset,
7064 VkBuffer countBuffer,
7065 VkDeviceSize countBufferOffset,
7066 uint32_t maxDrawCount,
7067 uint32_t stride);
7068
7069VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
7070 VkCommandBuffer commandBuffer,
7071 VkBuffer buffer,
7072 VkDeviceSize offset,
7073 VkBuffer countBuffer,
7074 VkDeviceSize countBufferOffset,
7075 uint32_t maxDrawCount,
7076 uint32_t stride);
7077
7078VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
7079 VkDevice device,
7080 const VkRenderPassCreateInfo2* pCreateInfo,
7081 const VkAllocationCallbacks* pAllocator,
7082 VkRenderPass* pRenderPass);
7083
7084VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
7085 VkCommandBuffer commandBuffer,
7086 const VkRenderPassBeginInfo* pRenderPassBegin,
7087 const VkSubpassBeginInfo* pSubpassBeginInfo);
7088
7089VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
7090 VkCommandBuffer commandBuffer,
7091 const VkSubpassBeginInfo* pSubpassBeginInfo,
7092 const VkSubpassEndInfo* pSubpassEndInfo);
7093
7094VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
7095 VkCommandBuffer commandBuffer,
7096 const VkSubpassEndInfo* pSubpassEndInfo);
7097#endif
7098
7099
7100// VK_VERSION_1_3 is a preprocessor guard. Do not pass it to API calls.
7101#define VK_VERSION_1_3 1
7102// Vulkan 1.3 version number
7103#define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
7104
7105typedef uint64_t VkFlags64;
7106VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
7107
7108typedef enum VkToolPurposeFlagBits {
7109 VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001,
7110 VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002,
7111 VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004,
7112 VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008,
7113 VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010,
7114 VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
7115 VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
7116 VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
7117 VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
7118 VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
7119 VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
7120 VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
7121 VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7122} VkToolPurposeFlagBits;
7123typedef VkFlags VkToolPurposeFlags;
7124typedef VkFlags VkPrivateDataSlotCreateFlags;
7125typedef VkFlags64 VkPipelineStageFlags2;
7126
7127// Flag bits for VkPipelineStageFlagBits2
7128typedef VkFlags64 VkPipelineStageFlagBits2;
7129static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL;
7130static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL;
7131static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL;
7132static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL;
7133static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL;
7134static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL;
7135static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL;
7136static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL;
7137static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL;
7138static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL;
7139static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL;
7140static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL;
7141static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL;
7142static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL;
7143static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL;
7144static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL;
7145static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL;
7146static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL;
7147static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL;
7148static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL;
7149static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL;
7150static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL;
7151static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL;
7152static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL;
7153static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL;
7154static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL;
7155static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
7156static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
7157static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL;
7158static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL;
7159static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL;
7160static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL;
7161static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL;
7162static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL;
7163static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL;
7164static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL;
7165static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL;
7166static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL;
7167static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL;
7168static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
7169static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
7170static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
7171static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
7172static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
7173static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
7174static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
7175static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL;
7176static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL;
7177static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL;
7178static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL;
7179static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL;
7180static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL;
7181static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
7182static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
7183static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
7184static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
7185static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
7186static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT = 0x00020000ULL;
7187static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
7188static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
7189static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
7190static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
7191static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
7192static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
7193static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
7194static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
7195static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
7196static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL;
7197static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL;
7198static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL;
7199// VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI is a legacy alias
7200static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
7201static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
7202static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
7203static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL;
7204static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL;
7205static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL;
7206static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV = 0x100000000000ULL;
7207static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARM = 0x40000000000ULL;
7208static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR = 0x400000000000ULL;
7209static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MEMORY_DECOMPRESSION_BIT_EXT = 0x200000000000ULL;
7210
7211typedef VkFlags64 VkAccessFlags2;
7212
7213// Flag bits for VkAccessFlagBits2
7214typedef VkFlags64 VkAccessFlagBits2;
7215static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL;
7216static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL;
7217static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL;
7218static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL;
7219static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL;
7220static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL;
7221static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL;
7222static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL;
7223static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL;
7224static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL;
7225static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL;
7226static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL;
7227static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL;
7228static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL;
7229static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL;
7230static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL;
7231static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL;
7232static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL;
7233static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL;
7234static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL;
7235static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL;
7236static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
7237static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
7238static const VkAccessFlagBits2 VK_ACCESS_2_SAMPLER_HEAP_READ_BIT_EXT = 0x200000000000000ULL;
7239static const VkAccessFlagBits2 VK_ACCESS_2_RESOURCE_HEAP_READ_BIT_EXT = 0x400000000000000ULL;
7240static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
7241static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
7242static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_TILE_ATTACHMENT_READ_BIT_QCOM = 0x8000000000000ULL;
7243static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_TILE_ATTACHMENT_WRITE_BIT_QCOM = 0x10000000000000ULL;
7244static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL;
7245static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL;
7246static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL;
7247static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL;
7248static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL;
7249static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL;
7250static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL;
7251static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL;
7252static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL;
7253static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL;
7254static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL;
7255static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL;
7256static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL;
7257static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL;
7258static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL;
7259static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL;
7260static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL;
7261static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL;
7262static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL;
7263static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
7264static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
7265static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
7266static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
7267static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
7268static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
7269static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
7270static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
7271static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000ULL;
7272static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000ULL;
7273static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
7274static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
7275static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
7276static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
7277static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
7278static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
7279static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
7280static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
7281static const VkAccessFlagBits2 VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL;
7282static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
7283static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL;
7284static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL;
7285static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL;
7286static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL;
7287static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL;
7288static const VkAccessFlagBits2 VK_ACCESS_2_DATA_GRAPH_READ_BIT_ARM = 0x800000000000ULL;
7289static const VkAccessFlagBits2 VK_ACCESS_2_DATA_GRAPH_WRITE_BIT_ARM = 0x1000000000000ULL;
7290static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_DECOMPRESSION_READ_BIT_EXT = 0x80000000000000ULL;
7291static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_DECOMPRESSION_WRITE_BIT_EXT = 0x100000000000000ULL;
7292
7293
7294typedef enum VkSubmitFlagBits {
7295 VK_SUBMIT_PROTECTED_BIT = 0x00000001,
7296 VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
7297 VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7298} VkSubmitFlagBits;
7299typedef VkFlags VkSubmitFlags;
7300typedef VkFlags64 VkFormatFeatureFlags2;
7301
7302// Flag bits for VkFormatFeatureFlagBits2
7303typedef VkFlags64 VkFormatFeatureFlagBits2;
7304static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL;
7305static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL;
7306static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL;
7307static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL;
7308static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL;
7309static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL;
7310static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL;
7311static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL;
7312static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL;
7313static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL;
7314static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL;
7315static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL;
7316static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL;
7317static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL;
7318static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL;
7319static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL;
7320static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL;
7321static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL;
7322static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL;
7323static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL;
7324static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL;
7325static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL;
7326static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL;
7327static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL;
7328static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL;
7329static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL;
7330static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL;
7331static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT = 0x400000000000ULL;
7332static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL;
7333static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL;
7334static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL;
7335static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL;
7336static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL;
7337static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL;
7338static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL;
7339static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL;
7340static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_SXD_BIT_QCOM = 0x100000000000ULL;
7341static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL;
7342static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL;
7343static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL;
7344static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
7345static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL;
7346static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL;
7347static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL;
7348static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL;
7349static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL;
7350static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL;
7351static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL;
7352static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL;
7353static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL;
7354static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL;
7355static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL;
7356static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL;
7357static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL;
7358static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL;
7359static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL;
7360static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL;
7361static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL;
7362static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL;
7363static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL;
7364static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL;
7365static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
7366static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL;
7367static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL;
7368static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER_BIT_NV = 0x8000000000000ULL;
7369static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
7370static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL;
7371static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL;
7372static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL;
7373static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL;
7374static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_SHADER_BIT_ARM = 0x8000000000ULL;
7375static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_IMAGE_ALIASING_BIT_ARM = 0x80000000000ULL;
7376static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL;
7377static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL;
7378static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL;
7379static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_DATA_GRAPH_BIT_ARM = 0x1000000000000ULL;
7380static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR = 0x800000000000000ULL;
7381static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x2000000000000ULL;
7382static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x4000000000000ULL;
7383static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_2D_BIT_IMG = 0x200000000000ULL;
7384static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_COMPUTE_QUEUE_BIT_KHR = 0x10000000000000ULL;
7385static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_TRANSFER_QUEUE_BIT_KHR = 0x20000000000000ULL;
7386static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_COMPUTE_QUEUE_BIT_KHR = 0x40000000000000ULL;
7387static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_TRANSFER_QUEUE_BIT_KHR = 0x80000000000000ULL;
7388static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DATA_GRAPH_OPTICAL_FLOW_IMAGE_BIT_ARM = 0x100000000000000ULL;
7389static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DATA_GRAPH_OPTICAL_FLOW_VECTOR_BIT_ARM = 0x200000000000000ULL;
7390static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DATA_GRAPH_OPTICAL_FLOW_COST_BIT_ARM = 0x400000000000000ULL;
7391
7392
7393typedef enum VkPipelineCreationFeedbackFlagBits {
7394 VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001,
7395 VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002,
7396 VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004,
7397 VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
7398 VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
7399 VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
7400 VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7401} VkPipelineCreationFeedbackFlagBits;
7402typedef VkFlags VkPipelineCreationFeedbackFlags;
7403
7404typedef enum VkRenderingFlagBits {
7405 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001,
7406 VK_RENDERING_SUSPENDING_BIT = 0x00000002,
7407 VK_RENDERING_RESUMING_BIT = 0x00000004,
7408 VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008,
7409 VK_RENDERING_CONTENTS_INLINE_BIT_KHR = 0x00000010,
7410 VK_RENDERING_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x00000020,
7411 VK_RENDERING_FRAGMENT_REGION_BIT_EXT = 0x00000040,
7412 VK_RENDERING_CUSTOM_RESOLVE_BIT_EXT = 0x00000080,
7413 VK_RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR = 0x00000100,
7414 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
7415 VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
7416 VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
7417 VK_RENDERING_CONTENTS_INLINE_BIT_EXT = VK_RENDERING_CONTENTS_INLINE_BIT_KHR,
7418 VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7419} VkRenderingFlagBits;
7420typedef VkFlags VkRenderingFlags;
7421typedef struct VkPhysicalDeviceVulkan13Features {
7422 VkStructureType sType;
7423 void* pNext;
7424 VkBool32 robustImageAccess;
7425 VkBool32 inlineUniformBlock;
7426 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
7427 VkBool32 pipelineCreationCacheControl;
7428 VkBool32 privateData;
7429 VkBool32 shaderDemoteToHelperInvocation;
7430 VkBool32 shaderTerminateInvocation;
7431 VkBool32 subgroupSizeControl;
7432 VkBool32 computeFullSubgroups;
7433 VkBool32 synchronization2;
7434 VkBool32 textureCompressionASTC_HDR;
7435 VkBool32 shaderZeroInitializeWorkgroupMemory;
7436 VkBool32 dynamicRendering;
7437 VkBool32 shaderIntegerDotProduct;
7438 VkBool32 maintenance4;
7439} VkPhysicalDeviceVulkan13Features;
7440
7441typedef struct VkPhysicalDeviceVulkan13Properties {
7442 VkStructureType sType;
7443 void* pNext;
7444 uint32_t minSubgroupSize;
7445 uint32_t maxSubgroupSize;
7446 uint32_t maxComputeWorkgroupSubgroups;
7447 VkShaderStageFlags requiredSubgroupSizeStages;
7448 uint32_t maxInlineUniformBlockSize;
7449 uint32_t maxPerStageDescriptorInlineUniformBlocks;
7450 uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7451 uint32_t maxDescriptorSetInlineUniformBlocks;
7452 uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7453 uint32_t maxInlineUniformTotalSize;
7454 VkBool32 integerDotProduct8BitUnsignedAccelerated;
7455 VkBool32 integerDotProduct8BitSignedAccelerated;
7456 VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
7457 VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
7458 VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
7459 VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7460 VkBool32 integerDotProduct16BitUnsignedAccelerated;
7461 VkBool32 integerDotProduct16BitSignedAccelerated;
7462 VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
7463 VkBool32 integerDotProduct32BitUnsignedAccelerated;
7464 VkBool32 integerDotProduct32BitSignedAccelerated;
7465 VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
7466 VkBool32 integerDotProduct64BitUnsignedAccelerated;
7467 VkBool32 integerDotProduct64BitSignedAccelerated;
7468 VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
7469 VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7470 VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7471 VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7472 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7473 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7474 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7475 VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7476 VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7477 VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7478 VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7479 VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7480 VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7481 VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7482 VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7483 VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7484 VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
7485 VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
7486 VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
7487 VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
7488 VkDeviceSize maxBufferSize;
7489} VkPhysicalDeviceVulkan13Properties;
7490
7491typedef struct VkPhysicalDeviceToolProperties {
7492 VkStructureType sType;
7493 void* pNext;
7494 char name[VK_MAX_EXTENSION_NAME_SIZE];
7495 char version[VK_MAX_EXTENSION_NAME_SIZE];
7496 VkToolPurposeFlags purposes;
7497 char description[VK_MAX_DESCRIPTION_SIZE];
7498 char layer[VK_MAX_EXTENSION_NAME_SIZE];
7499} VkPhysicalDeviceToolProperties;
7500
7501typedef struct VkPhysicalDevicePrivateDataFeatures {
7502 VkStructureType sType;
7503 void* pNext;
7504 VkBool32 privateData;
7505} VkPhysicalDevicePrivateDataFeatures;
7506
7507typedef struct VkDevicePrivateDataCreateInfo {
7508 VkStructureType sType;
7509 const void* pNext;
7510 uint32_t privateDataSlotRequestCount;
7511} VkDevicePrivateDataCreateInfo;
7512
7513typedef struct VkPrivateDataSlotCreateInfo {
7514 VkStructureType sType;
7515 const void* pNext;
7516 VkPrivateDataSlotCreateFlags flags;
7517} VkPrivateDataSlotCreateInfo;
7518
7519typedef struct VkMemoryBarrier2 {
7520 VkStructureType sType;
7521 const void* pNext;
7522 VkPipelineStageFlags2 srcStageMask;
7523 VkAccessFlags2 srcAccessMask;
7524 VkPipelineStageFlags2 dstStageMask;
7525 VkAccessFlags2 dstAccessMask;
7526} VkMemoryBarrier2;
7527
7528typedef struct VkBufferMemoryBarrier2 {
7529 VkStructureType sType;
7530 const void* pNext;
7531 VkPipelineStageFlags2 srcStageMask;
7532 VkAccessFlags2 srcAccessMask;
7533 VkPipelineStageFlags2 dstStageMask;
7534 VkAccessFlags2 dstAccessMask;
7535 uint32_t srcQueueFamilyIndex;
7536 uint32_t dstQueueFamilyIndex;
7537 VkBuffer buffer;
7538 VkDeviceSize offset;
7539 VkDeviceSize size;
7540} VkBufferMemoryBarrier2;
7541
7542typedef struct VkImageMemoryBarrier2 {
7543 VkStructureType sType;
7544 const void* pNext;
7545 VkPipelineStageFlags2 srcStageMask;
7546 VkAccessFlags2 srcAccessMask;
7547 VkPipelineStageFlags2 dstStageMask;
7548 VkAccessFlags2 dstAccessMask;
7549 VkImageLayout oldLayout;
7550 VkImageLayout newLayout;
7551 uint32_t srcQueueFamilyIndex;
7552 uint32_t dstQueueFamilyIndex;
7553 VkImage image;
7554 VkImageSubresourceRange subresourceRange;
7555} VkImageMemoryBarrier2;
7556
7557typedef struct VkDependencyInfo {
7558 VkStructureType sType;
7559 const void* pNext;
7560 VkDependencyFlags dependencyFlags;
7561 uint32_t memoryBarrierCount;
7562 const VkMemoryBarrier2* pMemoryBarriers;
7563 uint32_t bufferMemoryBarrierCount;
7564 const VkBufferMemoryBarrier2* pBufferMemoryBarriers;
7565 uint32_t imageMemoryBarrierCount;
7566 const VkImageMemoryBarrier2* pImageMemoryBarriers;
7567} VkDependencyInfo;
7568
7569typedef struct VkSemaphoreSubmitInfo {
7570 VkStructureType sType;
7571 const void* pNext;
7572 VkSemaphore semaphore;
7573 uint64_t value;
7574 VkPipelineStageFlags2 stageMask;
7575 uint32_t deviceIndex;
7576} VkSemaphoreSubmitInfo;
7577
7578typedef struct VkCommandBufferSubmitInfo {
7579 VkStructureType sType;
7580 const void* pNext;
7581 VkCommandBuffer commandBuffer;
7582 uint32_t deviceMask;
7583} VkCommandBufferSubmitInfo;
7584
7585typedef struct VkSubmitInfo2 {
7586 VkStructureType sType;
7587 const void* pNext;
7588 VkSubmitFlags flags;
7589 uint32_t waitSemaphoreInfoCount;
7590 const VkSemaphoreSubmitInfo* pWaitSemaphoreInfos;
7591 uint32_t commandBufferInfoCount;
7592 const VkCommandBufferSubmitInfo* pCommandBufferInfos;
7593 uint32_t signalSemaphoreInfoCount;
7594 const VkSemaphoreSubmitInfo* pSignalSemaphoreInfos;
7595} VkSubmitInfo2;
7596
7597typedef struct VkPhysicalDeviceSynchronization2Features {
7598 VkStructureType sType;
7599 void* pNext;
7600 VkBool32 synchronization2;
7601} VkPhysicalDeviceSynchronization2Features;
7602
7603typedef struct VkBufferCopy2 {
7604 VkStructureType sType;
7605 const void* pNext;
7606 VkDeviceSize srcOffset;
7607 VkDeviceSize dstOffset;
7608 VkDeviceSize size;
7609} VkBufferCopy2;
7610
7611typedef struct VkCopyBufferInfo2 {
7612 VkStructureType sType;
7613 const void* pNext;
7614 VkBuffer srcBuffer;
7615 VkBuffer dstBuffer;
7616 uint32_t regionCount;
7617 const VkBufferCopy2* pRegions;
7618} VkCopyBufferInfo2;
7619
7620typedef struct VkImageCopy2 {
7621 VkStructureType sType;
7622 const void* pNext;
7623 VkImageSubresourceLayers srcSubresource;
7624 VkOffset3D srcOffset;
7625 VkImageSubresourceLayers dstSubresource;
7626 VkOffset3D dstOffset;
7627 VkExtent3D extent;
7628} VkImageCopy2;
7629
7630typedef struct VkCopyImageInfo2 {
7631 VkStructureType sType;
7632 const void* pNext;
7633 VkImage srcImage;
7634 VkImageLayout srcImageLayout;
7635 VkImage dstImage;
7636 VkImageLayout dstImageLayout;
7637 uint32_t regionCount;
7638 const VkImageCopy2* pRegions;
7639} VkCopyImageInfo2;
7640
7641typedef struct VkBufferImageCopy2 {
7642 VkStructureType sType;
7643 const void* pNext;
7644 VkDeviceSize bufferOffset;
7645 uint32_t bufferRowLength;
7646 uint32_t bufferImageHeight;
7647 VkImageSubresourceLayers imageSubresource;
7648 VkOffset3D imageOffset;
7649 VkExtent3D imageExtent;
7650} VkBufferImageCopy2;
7651
7652typedef struct VkCopyBufferToImageInfo2 {
7653 VkStructureType sType;
7654 const void* pNext;
7655 VkBuffer srcBuffer;
7656 VkImage dstImage;
7657 VkImageLayout dstImageLayout;
7658 uint32_t regionCount;
7659 const VkBufferImageCopy2* pRegions;
7660} VkCopyBufferToImageInfo2;
7661
7662typedef struct VkCopyImageToBufferInfo2 {
7663 VkStructureType sType;
7664 const void* pNext;
7665 VkImage srcImage;
7666 VkImageLayout srcImageLayout;
7667 VkBuffer dstBuffer;
7668 uint32_t regionCount;
7669 const VkBufferImageCopy2* pRegions;
7670} VkCopyImageToBufferInfo2;
7671
7672typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
7673 VkStructureType sType;
7674 void* pNext;
7675 VkBool32 textureCompressionASTC_HDR;
7676} VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
7677
7678typedef struct VkFormatProperties3 {
7679 VkStructureType sType;
7680 void* pNext;
7681 VkFormatFeatureFlags2 linearTilingFeatures;
7682 VkFormatFeatureFlags2 optimalTilingFeatures;
7683 VkFormatFeatureFlags2 bufferFeatures;
7684} VkFormatProperties3;
7685
7686typedef struct VkPhysicalDeviceMaintenance4Features {
7687 VkStructureType sType;
7688 void* pNext;
7689 VkBool32 maintenance4;
7690} VkPhysicalDeviceMaintenance4Features;
7691
7692typedef struct VkPhysicalDeviceMaintenance4Properties {
7693 VkStructureType sType;
7694 void* pNext;
7695 VkDeviceSize maxBufferSize;
7696} VkPhysicalDeviceMaintenance4Properties;
7697
7698typedef struct VkDeviceBufferMemoryRequirements {
7699 VkStructureType sType;
7700 const void* pNext;
7701 const VkBufferCreateInfo* pCreateInfo;
7702} VkDeviceBufferMemoryRequirements;
7703
7704typedef struct VkDeviceImageMemoryRequirements {
7705 VkStructureType sType;
7706 const void* pNext;
7707 const VkImageCreateInfo* pCreateInfo;
7708 VkImageAspectFlagBits planeAspect;
7709} VkDeviceImageMemoryRequirements;
7710
7711typedef struct VkPipelineCreationFeedback {
7712 VkPipelineCreationFeedbackFlags flags;
7713 uint64_t duration;
7714} VkPipelineCreationFeedback;
7715
7716typedef struct VkPipelineCreationFeedbackCreateInfo {
7717 VkStructureType sType;
7718 const void* pNext;
7719 VkPipelineCreationFeedback* pPipelineCreationFeedback;
7720 uint32_t pipelineStageCreationFeedbackCount;
7721 VkPipelineCreationFeedback* pPipelineStageCreationFeedbacks;
7722} VkPipelineCreationFeedbackCreateInfo;
7723
7724typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
7725 VkStructureType sType;
7726 void* pNext;
7727 VkBool32 shaderTerminateInvocation;
7728} VkPhysicalDeviceShaderTerminateInvocationFeatures;
7729
7730typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
7731 VkStructureType sType;
7732 void* pNext;
7733 VkBool32 shaderDemoteToHelperInvocation;
7734} VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
7735
7736typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
7737 VkStructureType sType;
7738 void* pNext;
7739 VkBool32 pipelineCreationCacheControl;
7740} VkPhysicalDevicePipelineCreationCacheControlFeatures;
7741
7742typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
7743 VkStructureType sType;
7744 void* pNext;
7745 VkBool32 shaderZeroInitializeWorkgroupMemory;
7746} VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
7747
7748typedef struct VkPhysicalDeviceImageRobustnessFeatures {
7749 VkStructureType sType;
7750 void* pNext;
7751 VkBool32 robustImageAccess;
7752} VkPhysicalDeviceImageRobustnessFeatures;
7753
7754typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
7755 VkStructureType sType;
7756 void* pNext;
7757 VkBool32 subgroupSizeControl;
7758 VkBool32 computeFullSubgroups;
7759} VkPhysicalDeviceSubgroupSizeControlFeatures;
7760
7761typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
7762 VkStructureType sType;
7763 void* pNext;
7764 uint32_t minSubgroupSize;
7765 uint32_t maxSubgroupSize;
7766 uint32_t maxComputeWorkgroupSubgroups;
7767 VkShaderStageFlags requiredSubgroupSizeStages;
7768} VkPhysicalDeviceSubgroupSizeControlProperties;
7769
7770typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
7771 VkStructureType sType;
7772 const void* pNext;
7773 uint32_t requiredSubgroupSize;
7774} VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
7775
7776typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
7777 VkStructureType sType;
7778 void* pNext;
7779 VkBool32 inlineUniformBlock;
7780 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
7781} VkPhysicalDeviceInlineUniformBlockFeatures;
7782
7783typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
7784 VkStructureType sType;
7785 void* pNext;
7786 uint32_t maxInlineUniformBlockSize;
7787 uint32_t maxPerStageDescriptorInlineUniformBlocks;
7788 uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7789 uint32_t maxDescriptorSetInlineUniformBlocks;
7790 uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7791} VkPhysicalDeviceInlineUniformBlockProperties;
7792
7793typedef struct VkWriteDescriptorSetInlineUniformBlock {
7794 VkStructureType sType;
7795 const void* pNext;
7796 uint32_t dataSize;
7797 const void* pData;
7798} VkWriteDescriptorSetInlineUniformBlock;
7799
7800typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
7801 VkStructureType sType;
7802 const void* pNext;
7803 uint32_t maxInlineUniformBlockBindings;
7804} VkDescriptorPoolInlineUniformBlockCreateInfo;
7805
7806typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
7807 VkStructureType sType;
7808 void* pNext;
7809 VkBool32 shaderIntegerDotProduct;
7810} VkPhysicalDeviceShaderIntegerDotProductFeatures;
7811
7812typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
7813 VkStructureType sType;
7814 void* pNext;
7815 VkBool32 integerDotProduct8BitUnsignedAccelerated;
7816 VkBool32 integerDotProduct8BitSignedAccelerated;
7817 VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
7818 VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
7819 VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
7820 VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7821 VkBool32 integerDotProduct16BitUnsignedAccelerated;
7822 VkBool32 integerDotProduct16BitSignedAccelerated;
7823 VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
7824 VkBool32 integerDotProduct32BitUnsignedAccelerated;
7825 VkBool32 integerDotProduct32BitSignedAccelerated;
7826 VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
7827 VkBool32 integerDotProduct64BitUnsignedAccelerated;
7828 VkBool32 integerDotProduct64BitSignedAccelerated;
7829 VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
7830 VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7831 VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7832 VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7833 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7834 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7835 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7836 VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7837 VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7838 VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7839 VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7840 VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7841 VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7842 VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7843 VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7844 VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7845} VkPhysicalDeviceShaderIntegerDotProductProperties;
7846
7847typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
7848 VkStructureType sType;
7849 void* pNext;
7850 VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
7851 VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
7852 VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
7853 VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
7854} VkPhysicalDeviceTexelBufferAlignmentProperties;
7855
7856typedef struct VkImageBlit2 {
7857 VkStructureType sType;
7858 const void* pNext;
7859 VkImageSubresourceLayers srcSubresource;
7860 VkOffset3D srcOffsets[2];
7861 VkImageSubresourceLayers dstSubresource;
7862 VkOffset3D dstOffsets[2];
7863} VkImageBlit2;
7864
7865typedef struct VkBlitImageInfo2 {
7866 VkStructureType sType;
7867 const void* pNext;
7868 VkImage srcImage;
7869 VkImageLayout srcImageLayout;
7870 VkImage dstImage;
7871 VkImageLayout dstImageLayout;
7872 uint32_t regionCount;
7873 const VkImageBlit2* pRegions;
7874 VkFilter filter;
7875} VkBlitImageInfo2;
7876
7877typedef struct VkImageResolve2 {
7878 VkStructureType sType;
7879 const void* pNext;
7880 VkImageSubresourceLayers srcSubresource;
7881 VkOffset3D srcOffset;
7882 VkImageSubresourceLayers dstSubresource;
7883 VkOffset3D dstOffset;
7884 VkExtent3D extent;
7885} VkImageResolve2;
7886
7887typedef struct VkResolveImageInfo2 {
7888 VkStructureType sType;
7889 const void* pNext;
7890 VkImage srcImage;
7891 VkImageLayout srcImageLayout;
7892 VkImage dstImage;
7893 VkImageLayout dstImageLayout;
7894 uint32_t regionCount;
7895 const VkImageResolve2* pRegions;
7896} VkResolveImageInfo2;
7897
7898typedef struct VkRenderingAttachmentInfo {
7899 VkStructureType sType;
7900 const void* pNext;
7901 VkImageView imageView;
7902 VkImageLayout imageLayout;
7903 VkResolveModeFlagBits resolveMode;
7904 VkImageView resolveImageView;
7905 VkImageLayout resolveImageLayout;
7906 VkAttachmentLoadOp loadOp;
7907 VkAttachmentStoreOp storeOp;
7908 VkClearValue clearValue;
7909} VkRenderingAttachmentInfo;
7910
7911typedef struct VkRenderingInfo {
7912 VkStructureType sType;
7913 const void* pNext;
7914 VkRenderingFlags flags;
7915 VkRect2D renderArea;
7916 uint32_t layerCount;
7917 uint32_t viewMask;
7918 uint32_t colorAttachmentCount;
7919 const VkRenderingAttachmentInfo* pColorAttachments;
7920 const VkRenderingAttachmentInfo* pDepthAttachment;
7921 const VkRenderingAttachmentInfo* pStencilAttachment;
7922} VkRenderingInfo;
7923
7924typedef struct VkPipelineRenderingCreateInfo {
7925 VkStructureType sType;
7926 const void* pNext;
7927 uint32_t viewMask;
7928 uint32_t colorAttachmentCount;
7929 const VkFormat* pColorAttachmentFormats;
7930 VkFormat depthAttachmentFormat;
7931 VkFormat stencilAttachmentFormat;
7932} VkPipelineRenderingCreateInfo;
7933
7934typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
7935 VkStructureType sType;
7936 void* pNext;
7937 VkBool32 dynamicRendering;
7938} VkPhysicalDeviceDynamicRenderingFeatures;
7939
7940typedef struct VkCommandBufferInheritanceRenderingInfo {
7941 VkStructureType sType;
7942 const void* pNext;
7943 VkRenderingFlags flags;
7944 uint32_t viewMask;
7945 uint32_t colorAttachmentCount;
7946 const VkFormat* pColorAttachmentFormats;
7947 VkFormat depthAttachmentFormat;
7948 VkFormat stencilAttachmentFormat;
7949 VkSampleCountFlagBits rasterizationSamples;
7950} VkCommandBufferInheritanceRenderingInfo;
7951
7952typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
7953typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
7954typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
7955typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
7956typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
7957typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
7958typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
7959typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
7960typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
7961typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
7962typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
7963typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
7964typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7965typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7966typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
7967typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
7968typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
7969typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
7970typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
7971typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
7972typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
7973typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer commandBuffer);
7974typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
7975typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
7976typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
7977typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
7978typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
7979typedef 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);
7980typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
7981typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
7982typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
7983typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
7984typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
7985typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
7986typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
7987typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
7988typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
7989
7990#ifndef VK_NO_PROTOTYPES
7991VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties(
7992 VkPhysicalDevice physicalDevice,
7993 uint32_t* pToolCount,
7994 VkPhysicalDeviceToolProperties* pToolProperties);
7995
7996VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot(
7997 VkDevice device,
7998 const VkPrivateDataSlotCreateInfo* pCreateInfo,
7999 const VkAllocationCallbacks* pAllocator,
8000 VkPrivateDataSlot* pPrivateDataSlot);
8001
8002VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot(
8003 VkDevice device,
8004 VkPrivateDataSlot privateDataSlot,
8005 const VkAllocationCallbacks* pAllocator);
8006
8007VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData(
8008 VkDevice device,
8009 VkObjectType objectType,
8010 uint64_t objectHandle,
8011 VkPrivateDataSlot privateDataSlot,
8012 uint64_t data);
8013
8014VKAPI_ATTR void VKAPI_CALL vkGetPrivateData(
8015 VkDevice device,
8016 VkObjectType objectType,
8017 uint64_t objectHandle,
8018 VkPrivateDataSlot privateDataSlot,
8019 uint64_t* pData);
8020
8021VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2(
8022 VkCommandBuffer commandBuffer,
8023 const VkDependencyInfo* pDependencyInfo);
8024
8025VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2(
8026 VkCommandBuffer commandBuffer,
8027 VkPipelineStageFlags2 stage,
8028 VkQueryPool queryPool,
8029 uint32_t query);
8030
8031VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2(
8032 VkQueue queue,
8033 uint32_t submitCount,
8034 const VkSubmitInfo2* pSubmits,
8035 VkFence fence);
8036
8037VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2(
8038 VkCommandBuffer commandBuffer,
8039 const VkCopyBufferInfo2* pCopyBufferInfo);
8040
8041VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2(
8042 VkCommandBuffer commandBuffer,
8043 const VkCopyImageInfo2* pCopyImageInfo);
8044
8045VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2(
8046 VkCommandBuffer commandBuffer,
8047 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
8048
8049VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2(
8050 VkCommandBuffer commandBuffer,
8051 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
8052
8053VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements(
8054 VkDevice device,
8055 const VkDeviceBufferMemoryRequirements* pInfo,
8056 VkMemoryRequirements2* pMemoryRequirements);
8057
8058VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements(
8059 VkDevice device,
8060 const VkDeviceImageMemoryRequirements* pInfo,
8061 VkMemoryRequirements2* pMemoryRequirements);
8062
8063VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements(
8064 VkDevice device,
8065 const VkDeviceImageMemoryRequirements* pInfo,
8066 uint32_t* pSparseMemoryRequirementCount,
8067 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
8068
8069VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2(
8070 VkCommandBuffer commandBuffer,
8071 VkEvent event,
8072 const VkDependencyInfo* pDependencyInfo);
8073
8074VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2(
8075 VkCommandBuffer commandBuffer,
8076 VkEvent event,
8077 VkPipelineStageFlags2 stageMask);
8078
8079VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2(
8080 VkCommandBuffer commandBuffer,
8081 uint32_t eventCount,
8082 const VkEvent* pEvents,
8083 const VkDependencyInfo* pDependencyInfos);
8084
8085VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2(
8086 VkCommandBuffer commandBuffer,
8087 const VkBlitImageInfo2* pBlitImageInfo);
8088
8089VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2(
8090 VkCommandBuffer commandBuffer,
8091 const VkResolveImageInfo2* pResolveImageInfo);
8092
8093VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering(
8094 VkCommandBuffer commandBuffer,
8095 const VkRenderingInfo* pRenderingInfo);
8096
8097VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering(
8098 VkCommandBuffer commandBuffer);
8099
8100VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode(
8101 VkCommandBuffer commandBuffer,
8102 VkCullModeFlags cullMode);
8103
8104VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace(
8105 VkCommandBuffer commandBuffer,
8106 VkFrontFace frontFace);
8107
8108VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology(
8109 VkCommandBuffer commandBuffer,
8110 VkPrimitiveTopology primitiveTopology);
8111
8112VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount(
8113 VkCommandBuffer commandBuffer,
8114 uint32_t viewportCount,
8115 const VkViewport* pViewports);
8116
8117VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount(
8118 VkCommandBuffer commandBuffer,
8119 uint32_t scissorCount,
8120 const VkRect2D* pScissors);
8121
8122VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2(
8123 VkCommandBuffer commandBuffer,
8124 uint32_t firstBinding,
8125 uint32_t bindingCount,
8126 const VkBuffer* pBuffers,
8127 const VkDeviceSize* pOffsets,
8128 const VkDeviceSize* pSizes,
8129 const VkDeviceSize* pStrides);
8130
8131VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable(
8132 VkCommandBuffer commandBuffer,
8133 VkBool32 depthTestEnable);
8134
8135VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable(
8136 VkCommandBuffer commandBuffer,
8137 VkBool32 depthWriteEnable);
8138
8139VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp(
8140 VkCommandBuffer commandBuffer,
8141 VkCompareOp depthCompareOp);
8142
8143VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable(
8144 VkCommandBuffer commandBuffer,
8145 VkBool32 depthBoundsTestEnable);
8146
8147VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable(
8148 VkCommandBuffer commandBuffer,
8149 VkBool32 stencilTestEnable);
8150
8151VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp(
8152 VkCommandBuffer commandBuffer,
8153 VkStencilFaceFlags faceMask,
8154 VkStencilOp failOp,
8155 VkStencilOp passOp,
8156 VkStencilOp depthFailOp,
8157 VkCompareOp compareOp);
8158
8159VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable(
8160 VkCommandBuffer commandBuffer,
8161 VkBool32 rasterizerDiscardEnable);
8162
8163VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable(
8164 VkCommandBuffer commandBuffer,
8165 VkBool32 depthBiasEnable);
8166
8167VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable(
8168 VkCommandBuffer commandBuffer,
8169 VkBool32 primitiveRestartEnable);
8170#endif
8171
8172
8173// VK_VERSION_1_4 is a preprocessor guard. Do not pass it to API calls.
8174#define VK_VERSION_1_4 1
8175// Vulkan 1.4 version number
8176#define VK_API_VERSION_1_4 VK_MAKE_API_VERSION(0, 1, 4, 0)// Patch version should always be set to 0
8177
8178#define VK_MAX_GLOBAL_PRIORITY_SIZE 16U
8179
8180typedef enum VkPipelineRobustnessBufferBehavior {
8181 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT = 0,
8182 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED = 1,
8183 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS = 2,
8184 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 = 3,
8185 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT,
8186 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED,
8187 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,
8188 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,
8189 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
8190} VkPipelineRobustnessBufferBehavior;
8191
8192typedef enum VkPipelineRobustnessImageBehavior {
8193 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT = 0,
8194 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED = 1,
8195 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS = 2,
8196 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2 = 3,
8197 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT,
8198 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED,
8199 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS,
8200 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2,
8201 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
8202} VkPipelineRobustnessImageBehavior;
8203
8204typedef enum VkQueueGlobalPriority {
8205 VK_QUEUE_GLOBAL_PRIORITY_LOW = 128,
8206 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM = 256,
8207 VK_QUEUE_GLOBAL_PRIORITY_HIGH = 512,
8208 VK_QUEUE_GLOBAL_PRIORITY_REALTIME = 1024,
8209 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW,
8210 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
8211 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
8212 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
8213 VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = VK_QUEUE_GLOBAL_PRIORITY_LOW,
8214 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
8215 VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
8216 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
8217 VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM = 0x7FFFFFFF
8218} VkQueueGlobalPriority;
8219
8220typedef enum VkLineRasterizationMode {
8221 VK_LINE_RASTERIZATION_MODE_DEFAULT = 0,
8222 VK_LINE_RASTERIZATION_MODE_RECTANGULAR = 1,
8223 VK_LINE_RASTERIZATION_MODE_BRESENHAM = 2,
8224 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH = 3,
8225 VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT,
8226 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
8227 VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
8228 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
8229 VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR = VK_LINE_RASTERIZATION_MODE_DEFAULT,
8230 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
8231 VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
8232 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
8233 VK_LINE_RASTERIZATION_MODE_MAX_ENUM = 0x7FFFFFFF
8234} VkLineRasterizationMode;
8235
8236typedef enum VkMemoryUnmapFlagBits {
8237 VK_MEMORY_UNMAP_RESERVE_BIT_EXT = 0x00000001,
8238 VK_MEMORY_UNMAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
8239} VkMemoryUnmapFlagBits;
8240typedef VkFlags VkMemoryUnmapFlags;
8241typedef VkFlags64 VkBufferUsageFlags2;
8242
8243// Flag bits for VkBufferUsageFlagBits2
8244typedef VkFlags64 VkBufferUsageFlagBits2;
8245static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT = 0x00000001ULL;
8246static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT = 0x00000002ULL;
8247static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004ULL;
8248static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000008ULL;
8249static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT = 0x00000010ULL;
8250static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT = 0x00000020ULL;
8251static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT = 0x00000040ULL;
8252static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT = 0x00000080ULL;
8253static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT = 0x00000100ULL;
8254static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT = 0x00020000ULL;
8255#ifdef VK_ENABLE_BETA_EXTENSIONS
8256static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL;
8257#endif
8258static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXT = 0x10000000ULL;
8259static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL;
8260static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL;
8261static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL;
8262static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL;
8263static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL;
8264static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
8265static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x00000010ULL;
8266static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x00000020ULL;
8267static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL;
8268static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL;
8269static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL;
8270static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL;
8271static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL;
8272static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL;
8273static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL;
8274static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL;
8275static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL;
8276static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL;
8277static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL;
8278static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL;
8279static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ULL;
8280static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL;
8281static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL;
8282static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL;
8283static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL;
8284static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL;
8285#ifdef VK_ENABLE_BETA_EXTENSIONS
8286static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX = 0x200000000ULL;
8287#endif
8288static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM = 0x20000000ULL;
8289static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM = 0x08000000ULL;
8290static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT = 0x100000000ULL;
8291static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT = 0x80000000ULL;
8292
8293
8294typedef enum VkHostImageCopyFlagBits {
8295 VK_HOST_IMAGE_COPY_MEMCPY_BIT = 0x00000001,
8296 // VK_HOST_IMAGE_COPY_MEMCPY is a legacy alias
8297 VK_HOST_IMAGE_COPY_MEMCPY = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
8298 VK_HOST_IMAGE_COPY_MEMCPY_BIT_EXT = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
8299 // VK_HOST_IMAGE_COPY_MEMCPY_EXT is a legacy alias
8300 VK_HOST_IMAGE_COPY_MEMCPY_EXT = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
8301 VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
8302} VkHostImageCopyFlagBits;
8303typedef VkFlags VkHostImageCopyFlags;
8304typedef VkFlags64 VkPipelineCreateFlags2;
8305
8306// Flag bits for VkPipelineCreateFlagBits2
8307typedef VkFlags64 VkPipelineCreateFlagBits2;
8308static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT = 0x00000001ULL;
8309static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT = 0x00000002ULL;
8310static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT = 0x00000004ULL;
8311static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008ULL;
8312static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT = 0x00000010ULL;
8313static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100ULL;
8314static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200ULL;
8315static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT = 0x08000000ULL;
8316static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT = 0x40000000ULL;
8317#ifdef VK_ENABLE_BETA_EXTENSIONS
8318static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX = 0x100000000ULL;
8319#endif
8320static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT = 0x1000000000ULL;
8321static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_BUILT_IN_PRIMITIVES_BIT_KHR = 0x00001000ULL;
8322static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL;
8323static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_BIT_NV = 0x200000000ULL;
8324static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x400000000ULL;
8325static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL;
8326static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL;
8327static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL;
8328static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL;
8329static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL;
8330static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ULL;
8331static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ULL;
8332static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ULL;
8333static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ULL;
8334static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ULL;
8335static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ULL;
8336static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ULL;
8337static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ULL;
8338static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ULL;
8339static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ULL;
8340static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000ULL;
8341static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ULL;
8342static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ULL;
8343static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ULL;
8344static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ULL;
8345static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ULL;
8346static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL;
8347static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL;
8348static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL;
8349static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL;
8350static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL;
8351static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL;
8352static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL;
8353#ifdef VK_ENABLE_BETA_EXTENSIONS
8354static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL;
8355#endif
8356static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL;
8357static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISALLOW_OPACITY_MICROMAP_BIT_ARM = 0x2000000000ULL;
8358static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INSTRUMENT_SHADERS_BIT_ARM = 0x8000000000ULL;
8359static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = 0x80000000ULL;
8360static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT = 0x4000000000ULL;
8361static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x10000000000ULL;
8362static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_KHR = 0x01000000ULL;
8363static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_OPACITY_MICROMAP_DISALLOW_MIXED_SPECIAL_INDEX_BIT_KHR = 0x20000000000ULL;
8364static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_64_BIT_INDEXING_BIT_EXT = 0x80000000000ULL;
8365
8366typedef struct VkPhysicalDeviceVulkan14Features {
8367 VkStructureType sType;
8368 void* pNext;
8369 VkBool32 globalPriorityQuery;
8370 VkBool32 shaderSubgroupRotate;
8371 VkBool32 shaderSubgroupRotateClustered;
8372 VkBool32 shaderFloatControls2;
8373 VkBool32 shaderExpectAssume;
8374 VkBool32 rectangularLines;
8375 VkBool32 bresenhamLines;
8376 VkBool32 smoothLines;
8377 VkBool32 stippledRectangularLines;
8378 VkBool32 stippledBresenhamLines;
8379 VkBool32 stippledSmoothLines;
8380 VkBool32 vertexAttributeInstanceRateDivisor;
8381 VkBool32 vertexAttributeInstanceRateZeroDivisor;
8382 VkBool32 indexTypeUint8;
8383 VkBool32 dynamicRenderingLocalRead;
8384 VkBool32 maintenance5;
8385 VkBool32 maintenance6;
8386 VkBool32 pipelineProtectedAccess;
8387 VkBool32 pipelineRobustness;
8388 VkBool32 hostImageCopy;
8389 VkBool32 pushDescriptor;
8390} VkPhysicalDeviceVulkan14Features;
8391
8392typedef struct VkPhysicalDeviceVulkan14Properties {
8393 VkStructureType sType;
8394 void* pNext;
8395 uint32_t lineSubPixelPrecisionBits;
8396 uint32_t maxVertexAttribDivisor;
8397 VkBool32 supportsNonZeroFirstInstance;
8398 uint32_t maxPushDescriptors;
8399 VkBool32 dynamicRenderingLocalReadDepthStencilAttachments;
8400 VkBool32 dynamicRenderingLocalReadMultisampledAttachments;
8401 VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting;
8402 VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting;
8403 VkBool32 depthStencilSwizzleOneSupport;
8404 VkBool32 polygonModePointSize;
8405 VkBool32 nonStrictSinglePixelWideLinesUseParallelogram;
8406 VkBool32 nonStrictWideLinesUseParallelogram;
8407 VkBool32 blockTexelViewCompatibleMultipleLayers;
8408 uint32_t maxCombinedImageSamplerDescriptorCount;
8409 VkBool32 fragmentShadingRateClampCombinerInputs;
8410 VkPipelineRobustnessBufferBehavior defaultRobustnessStorageBuffers;
8411 VkPipelineRobustnessBufferBehavior defaultRobustnessUniformBuffers;
8412 VkPipelineRobustnessBufferBehavior defaultRobustnessVertexInputs;
8413 VkPipelineRobustnessImageBehavior defaultRobustnessImages;
8414 uint32_t copySrcLayoutCount;
8415 VkImageLayout* pCopySrcLayouts;
8416 uint32_t copyDstLayoutCount;
8417 VkImageLayout* pCopyDstLayouts;
8418 uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE];
8419 VkBool32 identicalMemoryTypeRequirements;
8420} VkPhysicalDeviceVulkan14Properties;
8421
8422typedef struct VkDeviceQueueGlobalPriorityCreateInfo {
8423 VkStructureType sType;
8424 const void* pNext;
8425 VkQueueGlobalPriority globalPriority;
8426} VkDeviceQueueGlobalPriorityCreateInfo;
8427
8428typedef struct VkPhysicalDeviceGlobalPriorityQueryFeatures {
8429 VkStructureType sType;
8430 void* pNext;
8431 VkBool32 globalPriorityQuery;
8432} VkPhysicalDeviceGlobalPriorityQueryFeatures;
8433
8434typedef struct VkQueueFamilyGlobalPriorityProperties {
8435 VkStructureType sType;
8436 void* pNext;
8437 uint32_t priorityCount;
8438 VkQueueGlobalPriority priorities[VK_MAX_GLOBAL_PRIORITY_SIZE];
8439} VkQueueFamilyGlobalPriorityProperties;
8440
8441typedef struct VkPhysicalDeviceIndexTypeUint8Features {
8442 VkStructureType sType;
8443 void* pNext;
8444 VkBool32 indexTypeUint8;
8445} VkPhysicalDeviceIndexTypeUint8Features;
8446
8447typedef struct VkMemoryMapInfo {
8448 VkStructureType sType;
8449 const void* pNext;
8450 VkMemoryMapFlags flags;
8451 VkDeviceMemory memory;
8452 VkDeviceSize offset;
8453 VkDeviceSize size;
8454} VkMemoryMapInfo;
8455
8456typedef struct VkMemoryUnmapInfo {
8457 VkStructureType sType;
8458 const void* pNext;
8459 VkMemoryUnmapFlags flags;
8460 VkDeviceMemory memory;
8461} VkMemoryUnmapInfo;
8462
8463typedef struct VkPhysicalDeviceMaintenance5Features {
8464 VkStructureType sType;
8465 void* pNext;
8466 VkBool32 maintenance5;
8467} VkPhysicalDeviceMaintenance5Features;
8468
8469typedef struct VkPhysicalDeviceMaintenance5Properties {
8470 VkStructureType sType;
8471 void* pNext;
8472 VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting;
8473 VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting;
8474 VkBool32 depthStencilSwizzleOneSupport;
8475 VkBool32 polygonModePointSize;
8476 VkBool32 nonStrictSinglePixelWideLinesUseParallelogram;
8477 VkBool32 nonStrictWideLinesUseParallelogram;
8478} VkPhysicalDeviceMaintenance5Properties;
8479
8480typedef struct VkSubresourceLayout2 {
8481 VkStructureType sType;
8482 void* pNext;
8483 VkSubresourceLayout subresourceLayout;
8484} VkSubresourceLayout2;
8485
8486typedef struct VkImageSubresource2 {
8487 VkStructureType sType;
8488 void* pNext;
8489 VkImageSubresource imageSubresource;
8490} VkImageSubresource2;
8491
8492typedef struct VkDeviceImageSubresourceInfo {
8493 VkStructureType sType;
8494 const void* pNext;
8495 const VkImageCreateInfo* pCreateInfo;
8496 const VkImageSubresource2* pSubresource;
8497} VkDeviceImageSubresourceInfo;
8498
8499typedef struct VkBufferUsageFlags2CreateInfo {
8500 VkStructureType sType;
8501 const void* pNext;
8502 VkBufferUsageFlags2 usage;
8503} VkBufferUsageFlags2CreateInfo;
8504
8505typedef struct VkPhysicalDeviceMaintenance6Features {
8506 VkStructureType sType;
8507 void* pNext;
8508 VkBool32 maintenance6;
8509} VkPhysicalDeviceMaintenance6Features;
8510
8511typedef struct VkPhysicalDeviceMaintenance6Properties {
8512 VkStructureType sType;
8513 void* pNext;
8514 VkBool32 blockTexelViewCompatibleMultipleLayers;
8515 uint32_t maxCombinedImageSamplerDescriptorCount;
8516 VkBool32 fragmentShadingRateClampCombinerInputs;
8517} VkPhysicalDeviceMaintenance6Properties;
8518
8519typedef struct VkBindMemoryStatus {
8520 VkStructureType sType;
8521 const void* pNext;
8522 VkResult* pResult;
8523} VkBindMemoryStatus;
8524
8525typedef struct VkPhysicalDeviceHostImageCopyFeatures {
8526 VkStructureType sType;
8527 void* pNext;
8528 VkBool32 hostImageCopy;
8529} VkPhysicalDeviceHostImageCopyFeatures;
8530
8531typedef struct VkPhysicalDeviceHostImageCopyProperties {
8532 VkStructureType sType;
8533 void* pNext;
8534 uint32_t copySrcLayoutCount;
8535 VkImageLayout* pCopySrcLayouts;
8536 uint32_t copyDstLayoutCount;
8537 VkImageLayout* pCopyDstLayouts;
8538 uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE];
8539 VkBool32 identicalMemoryTypeRequirements;
8540} VkPhysicalDeviceHostImageCopyProperties;
8541
8542typedef struct VkMemoryToImageCopy {
8543 VkStructureType sType;
8544 const void* pNext;
8545 const void* pHostPointer;
8546 uint32_t memoryRowLength;
8547 uint32_t memoryImageHeight;
8548 VkImageSubresourceLayers imageSubresource;
8549 VkOffset3D imageOffset;
8550 VkExtent3D imageExtent;
8551} VkMemoryToImageCopy;
8552
8553typedef struct VkImageToMemoryCopy {
8554 VkStructureType sType;
8555 const void* pNext;
8556 void* pHostPointer;
8557 uint32_t memoryRowLength;
8558 uint32_t memoryImageHeight;
8559 VkImageSubresourceLayers imageSubresource;
8560 VkOffset3D imageOffset;
8561 VkExtent3D imageExtent;
8562} VkImageToMemoryCopy;
8563
8564typedef struct VkCopyMemoryToImageInfo {
8565 VkStructureType sType;
8566 const void* pNext;
8567 VkHostImageCopyFlags flags;
8568 VkImage dstImage;
8569 VkImageLayout dstImageLayout;
8570 uint32_t regionCount;
8571 const VkMemoryToImageCopy* pRegions;
8572} VkCopyMemoryToImageInfo;
8573
8574typedef struct VkCopyImageToMemoryInfo {
8575 VkStructureType sType;
8576 const void* pNext;
8577 VkHostImageCopyFlags flags;
8578 VkImage srcImage;
8579 VkImageLayout srcImageLayout;
8580 uint32_t regionCount;
8581 const VkImageToMemoryCopy* pRegions;
8582} VkCopyImageToMemoryInfo;
8583
8584typedef struct VkCopyImageToImageInfo {
8585 VkStructureType sType;
8586 const void* pNext;
8587 VkHostImageCopyFlags flags;
8588 VkImage srcImage;
8589 VkImageLayout srcImageLayout;
8590 VkImage dstImage;
8591 VkImageLayout dstImageLayout;
8592 uint32_t regionCount;
8593 const VkImageCopy2* pRegions;
8594} VkCopyImageToImageInfo;
8595
8596typedef struct VkHostImageLayoutTransitionInfo {
8597 VkStructureType sType;
8598 const void* pNext;
8599 VkImage image;
8600 VkImageLayout oldLayout;
8601 VkImageLayout newLayout;
8602 VkImageSubresourceRange subresourceRange;
8603} VkHostImageLayoutTransitionInfo;
8604
8605typedef struct VkSubresourceHostMemcpySize {
8606 VkStructureType sType;
8607 void* pNext;
8608 VkDeviceSize size;
8609} VkSubresourceHostMemcpySize;
8610
8611typedef struct VkHostImageCopyDevicePerformanceQuery {
8612 VkStructureType sType;
8613 void* pNext;
8614 VkBool32 optimalDeviceAccess;
8615 VkBool32 identicalMemoryLayout;
8616} VkHostImageCopyDevicePerformanceQuery;
8617
8618typedef struct VkPhysicalDeviceShaderSubgroupRotateFeatures {
8619 VkStructureType sType;
8620 void* pNext;
8621 VkBool32 shaderSubgroupRotate;
8622 VkBool32 shaderSubgroupRotateClustered;
8623} VkPhysicalDeviceShaderSubgroupRotateFeatures;
8624
8625typedef struct VkPhysicalDeviceShaderFloatControls2Features {
8626 VkStructureType sType;
8627 void* pNext;
8628 VkBool32 shaderFloatControls2;
8629} VkPhysicalDeviceShaderFloatControls2Features;
8630
8631typedef struct VkPhysicalDeviceShaderExpectAssumeFeatures {
8632 VkStructureType sType;
8633 void* pNext;
8634 VkBool32 shaderExpectAssume;
8635} VkPhysicalDeviceShaderExpectAssumeFeatures;
8636
8637typedef struct VkPipelineCreateFlags2CreateInfo {
8638 VkStructureType sType;
8639 const void* pNext;
8640 VkPipelineCreateFlags2 flags;
8641} VkPipelineCreateFlags2CreateInfo;
8642
8643typedef struct VkPhysicalDevicePushDescriptorProperties {
8644 VkStructureType sType;
8645 void* pNext;
8646 uint32_t maxPushDescriptors;
8647} VkPhysicalDevicePushDescriptorProperties;
8648
8649typedef struct VkBindDescriptorSetsInfo {
8650 VkStructureType sType;
8651 const void* pNext;
8652 VkShaderStageFlags stageFlags;
8653 VkPipelineLayout layout;
8654 uint32_t firstSet;
8655 uint32_t descriptorSetCount;
8656 const VkDescriptorSet* pDescriptorSets;
8657 uint32_t dynamicOffsetCount;
8658 const uint32_t* pDynamicOffsets;
8659} VkBindDescriptorSetsInfo;
8660
8661typedef struct VkPushConstantsInfo {
8662 VkStructureType sType;
8663 const void* pNext;
8664 VkPipelineLayout layout;
8665 VkShaderStageFlags stageFlags;
8666 uint32_t offset;
8667 uint32_t size;
8668 const void* pValues;
8669} VkPushConstantsInfo;
8670
8671typedef struct VkPushDescriptorSetInfo {
8672 VkStructureType sType;
8673 const void* pNext;
8674 VkShaderStageFlags stageFlags;
8675 VkPipelineLayout layout;
8676 uint32_t set;
8677 uint32_t descriptorWriteCount;
8678 const VkWriteDescriptorSet* pDescriptorWrites;
8679} VkPushDescriptorSetInfo;
8680
8681typedef struct VkPushDescriptorSetWithTemplateInfo {
8682 VkStructureType sType;
8683 const void* pNext;
8684 VkDescriptorUpdateTemplate descriptorUpdateTemplate;
8685 VkPipelineLayout layout;
8686 uint32_t set;
8687 const void* pData;
8688} VkPushDescriptorSetWithTemplateInfo;
8689
8690typedef struct VkPhysicalDevicePipelineProtectedAccessFeatures {
8691 VkStructureType sType;
8692 void* pNext;
8693 VkBool32 pipelineProtectedAccess;
8694} VkPhysicalDevicePipelineProtectedAccessFeatures;
8695
8696typedef struct VkPhysicalDevicePipelineRobustnessFeatures {
8697 VkStructureType sType;
8698 void* pNext;
8699 VkBool32 pipelineRobustness;
8700} VkPhysicalDevicePipelineRobustnessFeatures;
8701
8702typedef struct VkPhysicalDevicePipelineRobustnessProperties {
8703 VkStructureType sType;
8704 void* pNext;
8705 VkPipelineRobustnessBufferBehavior defaultRobustnessStorageBuffers;
8706 VkPipelineRobustnessBufferBehavior defaultRobustnessUniformBuffers;
8707 VkPipelineRobustnessBufferBehavior defaultRobustnessVertexInputs;
8708 VkPipelineRobustnessImageBehavior defaultRobustnessImages;
8709} VkPhysicalDevicePipelineRobustnessProperties;
8710
8711typedef struct VkPipelineRobustnessCreateInfo {
8712 VkStructureType sType;
8713 const void* pNext;
8714 VkPipelineRobustnessBufferBehavior storageBuffers;
8715 VkPipelineRobustnessBufferBehavior uniformBuffers;
8716 VkPipelineRobustnessBufferBehavior vertexInputs;
8717 VkPipelineRobustnessImageBehavior images;
8718} VkPipelineRobustnessCreateInfo;
8719
8720typedef struct VkPhysicalDeviceLineRasterizationFeatures {
8721 VkStructureType sType;
8722 void* pNext;
8723 VkBool32 rectangularLines;
8724 VkBool32 bresenhamLines;
8725 VkBool32 smoothLines;
8726 VkBool32 stippledRectangularLines;
8727 VkBool32 stippledBresenhamLines;
8728 VkBool32 stippledSmoothLines;
8729} VkPhysicalDeviceLineRasterizationFeatures;
8730
8731typedef struct VkPhysicalDeviceLineRasterizationProperties {
8732 VkStructureType sType;
8733 void* pNext;
8734 uint32_t lineSubPixelPrecisionBits;
8735} VkPhysicalDeviceLineRasterizationProperties;
8736
8737typedef struct VkPipelineRasterizationLineStateCreateInfo {
8738 VkStructureType sType;
8739 const void* pNext;
8740 VkLineRasterizationMode lineRasterizationMode;
8741 VkBool32 stippledLineEnable;
8742 uint32_t lineStippleFactor;
8743 uint16_t lineStipplePattern;
8744} VkPipelineRasterizationLineStateCreateInfo;
8745
8746typedef struct VkPhysicalDeviceVertexAttributeDivisorProperties {
8747 VkStructureType sType;
8748 void* pNext;
8749 uint32_t maxVertexAttribDivisor;
8750 VkBool32 supportsNonZeroFirstInstance;
8751} VkPhysicalDeviceVertexAttributeDivisorProperties;
8752
8753typedef struct VkVertexInputBindingDivisorDescription {
8754 uint32_t binding;
8755 uint32_t divisor;
8756} VkVertexInputBindingDivisorDescription;
8757
8758typedef struct VkPipelineVertexInputDivisorStateCreateInfo {
8759 VkStructureType sType;
8760 const void* pNext;
8761 uint32_t vertexBindingDivisorCount;
8762 const VkVertexInputBindingDivisorDescription* pVertexBindingDivisors;
8763} VkPipelineVertexInputDivisorStateCreateInfo;
8764
8765typedef struct VkPhysicalDeviceVertexAttributeDivisorFeatures {
8766 VkStructureType sType;
8767 void* pNext;
8768 VkBool32 vertexAttributeInstanceRateDivisor;
8769 VkBool32 vertexAttributeInstanceRateZeroDivisor;
8770} VkPhysicalDeviceVertexAttributeDivisorFeatures;
8771
8772typedef struct VkRenderingAreaInfo {
8773 VkStructureType sType;
8774 const void* pNext;
8775 uint32_t viewMask;
8776 uint32_t colorAttachmentCount;
8777 const VkFormat* pColorAttachmentFormats;
8778 VkFormat depthAttachmentFormat;
8779 VkFormat stencilAttachmentFormat;
8780} VkRenderingAreaInfo;
8781
8782typedef struct VkPhysicalDeviceDynamicRenderingLocalReadFeatures {
8783 VkStructureType sType;
8784 void* pNext;
8785 VkBool32 dynamicRenderingLocalRead;
8786} VkPhysicalDeviceDynamicRenderingLocalReadFeatures;
8787
8788typedef struct VkRenderingAttachmentLocationInfo {
8789 VkStructureType sType;
8790 const void* pNext;
8791 uint32_t colorAttachmentCount;
8792 const uint32_t* pColorAttachmentLocations;
8793} VkRenderingAttachmentLocationInfo;
8794
8795typedef struct VkRenderingInputAttachmentIndexInfo {
8796 VkStructureType sType;
8797 const void* pNext;
8798 uint32_t colorAttachmentCount;
8799 const uint32_t* pColorAttachmentInputIndices;
8800 const uint32_t* pDepthInputAttachmentIndex;
8801 const uint32_t* pStencilInputAttachmentIndex;
8802} VkRenderingInputAttachmentIndexInfo;
8803
8804typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
8805typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
8806typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayout)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
8807typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
8808typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImage)(VkDevice device, const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
8809typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemory)(VkDevice device, const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
8810typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImage)(VkDevice device, const VkCopyImageToImageInfo* pCopyImageToImageInfo);
8811typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayout)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions);
8812typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
8813typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
8814typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
8815typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo* pPushConstantsInfo);
8816typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
8817typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
8818typedef void (VKAPI_PTR *PFN_vkCmdSetLineStipple)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
8819typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
8820typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularity)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
8821typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocations)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
8822typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndices)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
8823
8824#ifndef VK_NO_PROTOTYPES
8825VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2(
8826 VkDevice device,
8827 const VkMemoryMapInfo* pMemoryMapInfo,
8828 void** ppData);
8829
8830VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2(
8831 VkDevice device,
8832 const VkMemoryUnmapInfo* pMemoryUnmapInfo);
8833
8834VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayout(
8835 VkDevice device,
8836 const VkDeviceImageSubresourceInfo* pInfo,
8837 VkSubresourceLayout2* pLayout);
8838
8839VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2(
8840 VkDevice device,
8841 VkImage image,
8842 const VkImageSubresource2* pSubresource,
8843 VkSubresourceLayout2* pLayout);
8844
8845VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImage(
8846 VkDevice device,
8847 const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
8848
8849VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemory(
8850 VkDevice device,
8851 const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
8852
8853VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImage(
8854 VkDevice device,
8855 const VkCopyImageToImageInfo* pCopyImageToImageInfo);
8856
8857VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayout(
8858 VkDevice device,
8859 uint32_t transitionCount,
8860 const VkHostImageLayoutTransitionInfo* pTransitions);
8861
8862VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet(
8863 VkCommandBuffer commandBuffer,
8864 VkPipelineBindPoint pipelineBindPoint,
8865 VkPipelineLayout layout,
8866 uint32_t set,
8867 uint32_t descriptorWriteCount,
8868 const VkWriteDescriptorSet* pDescriptorWrites);
8869
8870VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate(
8871 VkCommandBuffer commandBuffer,
8872 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
8873 VkPipelineLayout layout,
8874 uint32_t set,
8875 const void* pData);
8876
8877VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2(
8878 VkCommandBuffer commandBuffer,
8879 const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
8880
8881VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2(
8882 VkCommandBuffer commandBuffer,
8883 const VkPushConstantsInfo* pPushConstantsInfo);
8884
8885VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2(
8886 VkCommandBuffer commandBuffer,
8887 const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
8888
8889VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2(
8890 VkCommandBuffer commandBuffer,
8891 const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
8892
8893VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStipple(
8894 VkCommandBuffer commandBuffer,
8895 uint32_t lineStippleFactor,
8896 uint16_t lineStipplePattern);
8897
8898VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2(
8899 VkCommandBuffer commandBuffer,
8900 VkBuffer buffer,
8901 VkDeviceSize offset,
8902 VkDeviceSize size,
8903 VkIndexType indexType);
8904
8905VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularity(
8906 VkDevice device,
8907 const VkRenderingAreaInfo* pRenderingAreaInfo,
8908 VkExtent2D* pGranularity);
8909
8910VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocations(
8911 VkCommandBuffer commandBuffer,
8912 const VkRenderingAttachmentLocationInfo* pLocationInfo);
8913
8914VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndices(
8915 VkCommandBuffer commandBuffer,
8916 const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
8917#endif
8918
8919
8920// VK_KHR_surface is a preprocessor guard. Do not pass it to API calls.
8921#define VK_KHR_surface 1
8922VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
8923#define VK_KHR_SURFACE_SPEC_VERSION 25
8924#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
8925
8926typedef enum VkPresentModeKHR {
8927 VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
8928 VK_PRESENT_MODE_MAILBOX_KHR = 1,
8929 VK_PRESENT_MODE_FIFO_KHR = 2,
8930 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
8931 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
8932 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
8933 VK_PRESENT_MODE_FIFO_LATEST_READY_KHR = 1000361000,
8934 VK_PRESENT_MODE_FIFO_LATEST_READY_EXT = VK_PRESENT_MODE_FIFO_LATEST_READY_KHR,
8935 VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
8936} VkPresentModeKHR;
8937
8938typedef enum VkColorSpaceKHR {
8939 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
8940 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
8941 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
8942 VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
8943 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
8944 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
8945 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
8946 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
8947 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
8948 // VK_COLOR_SPACE_DOLBYVISION_EXT is legacy, but no reason was given in the API XML
8949 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
8950 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
8951 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
8952 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
8953 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
8954 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
8955 VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
8956 // VK_COLORSPACE_SRGB_NONLINEAR_KHR is a legacy alias
8957 VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
8958 // VK_COLOR_SPACE_DCI_P3_LINEAR_EXT is a legacy alias
8959 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
8960 VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
8961} VkColorSpaceKHR;
8962
8963typedef enum VkSurfaceTransformFlagBitsKHR {
8964 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
8965 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
8966 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
8967 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
8968 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
8969 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
8970 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
8971 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
8972 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
8973 VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8974} VkSurfaceTransformFlagBitsKHR;
8975typedef VkFlags VkSurfaceTransformFlagsKHR;
8976
8977typedef enum VkCompositeAlphaFlagBitsKHR {
8978 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
8979 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
8980 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
8981 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
8982 VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8983} VkCompositeAlphaFlagBitsKHR;
8984typedef VkFlags VkCompositeAlphaFlagsKHR;
8985typedef struct VkSurfaceCapabilitiesKHR {
8986 uint32_t minImageCount;
8987 uint32_t maxImageCount;
8988 VkExtent2D currentExtent;
8989 VkExtent2D minImageExtent;
8990 VkExtent2D maxImageExtent;
8991 uint32_t maxImageArrayLayers;
8992 VkSurfaceTransformFlagsKHR supportedTransforms;
8993 VkSurfaceTransformFlagBitsKHR currentTransform;
8994 VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
8995 VkImageUsageFlags supportedUsageFlags;
8996} VkSurfaceCapabilitiesKHR;
8997
8998typedef struct VkSurfaceFormatKHR {
8999 VkFormat format;
9000 VkColorSpaceKHR colorSpace;
9001} VkSurfaceFormatKHR;
9002
9003typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
9004typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
9005typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
9006typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
9007typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
9008
9009#ifndef VK_NO_PROTOTYPES
9010#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9011VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
9012 VkInstance instance,
9013 VkSurfaceKHR surface,
9014 const VkAllocationCallbacks* pAllocator);
9015#endif
9016
9017#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9018VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
9019 VkPhysicalDevice physicalDevice,
9020 uint32_t queueFamilyIndex,
9021 VkSurfaceKHR surface,
9022 VkBool32* pSupported);
9023#endif
9024
9025#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9026VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
9027 VkPhysicalDevice physicalDevice,
9028 VkSurfaceKHR surface,
9029 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
9030#endif
9031
9032#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9033VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
9034 VkPhysicalDevice physicalDevice,
9035 VkSurfaceKHR surface,
9036 uint32_t* pSurfaceFormatCount,
9037 VkSurfaceFormatKHR* pSurfaceFormats);
9038#endif
9039
9040#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9041VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
9042 VkPhysicalDevice physicalDevice,
9043 VkSurfaceKHR surface,
9044 uint32_t* pPresentModeCount,
9045 VkPresentModeKHR* pPresentModes);
9046#endif
9047#endif
9048
9049
9050// VK_KHR_swapchain is a preprocessor guard. Do not pass it to API calls.
9051#define VK_KHR_swapchain 1
9052VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
9053#define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
9054#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
9055
9056typedef enum VkSwapchainCreateFlagBitsKHR {
9057 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
9058 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
9059 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
9060 VK_SWAPCHAIN_CREATE_PRESENT_TIMING_BIT_EXT = 0x00000200,
9061 VK_SWAPCHAIN_CREATE_PRESENT_ID_2_BIT_KHR = 0x00000040,
9062 VK_SWAPCHAIN_CREATE_PRESENT_WAIT_2_BIT_KHR = 0x00000080,
9063 VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR = 0x00000008,
9064 VK_SWAPCHAIN_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00000100,
9065 VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR,
9066 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9067} VkSwapchainCreateFlagBitsKHR;
9068typedef VkFlags VkSwapchainCreateFlagsKHR;
9069
9070typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
9071 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
9072 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
9073 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
9074 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
9075 VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9076} VkDeviceGroupPresentModeFlagBitsKHR;
9077typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
9078typedef struct VkSwapchainCreateInfoKHR {
9079 VkStructureType sType;
9080 const void* pNext;
9081 VkSwapchainCreateFlagsKHR flags;
9082 VkSurfaceKHR surface;
9083 uint32_t minImageCount;
9084 VkFormat imageFormat;
9085 VkColorSpaceKHR imageColorSpace;
9086 VkExtent2D imageExtent;
9087 uint32_t imageArrayLayers;
9088 VkImageUsageFlags imageUsage;
9089 VkSharingMode imageSharingMode;
9090 uint32_t queueFamilyIndexCount;
9091 const uint32_t* pQueueFamilyIndices;
9092 VkSurfaceTransformFlagBitsKHR preTransform;
9093 VkCompositeAlphaFlagBitsKHR compositeAlpha;
9094 VkPresentModeKHR presentMode;
9095 VkBool32 clipped;
9096 VkSwapchainKHR oldSwapchain;
9097} VkSwapchainCreateInfoKHR;
9098
9099typedef struct VkPresentInfoKHR {
9100 VkStructureType sType;
9101 const void* pNext;
9102 uint32_t waitSemaphoreCount;
9103 const VkSemaphore* pWaitSemaphores;
9104 uint32_t swapchainCount;
9105 const VkSwapchainKHR* pSwapchains;
9106 const uint32_t* pImageIndices;
9107 VkResult* pResults;
9108} VkPresentInfoKHR;
9109
9110typedef struct VkImageSwapchainCreateInfoKHR {
9111 VkStructureType sType;
9112 const void* pNext;
9113 VkSwapchainKHR swapchain;
9114} VkImageSwapchainCreateInfoKHR;
9115
9116typedef struct VkBindImageMemorySwapchainInfoKHR {
9117 VkStructureType sType;
9118 const void* pNext;
9119 VkSwapchainKHR swapchain;
9120 uint32_t imageIndex;
9121} VkBindImageMemorySwapchainInfoKHR;
9122
9123typedef struct VkAcquireNextImageInfoKHR {
9124 VkStructureType sType;
9125 const void* pNext;
9126 VkSwapchainKHR swapchain;
9127 uint64_t timeout;
9128 VkSemaphore semaphore;
9129 VkFence fence;
9130 uint32_t deviceMask;
9131} VkAcquireNextImageInfoKHR;
9132
9133typedef struct VkDeviceGroupPresentCapabilitiesKHR {
9134 VkStructureType sType;
9135 void* pNext;
9136 uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE];
9137 VkDeviceGroupPresentModeFlagsKHR modes;
9138} VkDeviceGroupPresentCapabilitiesKHR;
9139
9140typedef struct VkDeviceGroupPresentInfoKHR {
9141 VkStructureType sType;
9142 const void* pNext;
9143 uint32_t swapchainCount;
9144 const uint32_t* pDeviceMasks;
9145 VkDeviceGroupPresentModeFlagBitsKHR mode;
9146} VkDeviceGroupPresentInfoKHR;
9147
9148typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
9149 VkStructureType sType;
9150 const void* pNext;
9151 VkDeviceGroupPresentModeFlagsKHR modes;
9152} VkDeviceGroupSwapchainCreateInfoKHR;
9153
9154typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
9155typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
9156typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
9157typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
9158typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
9159typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
9160typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
9161typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
9162typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
9163
9164#ifndef VK_NO_PROTOTYPES
9165#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9166VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
9167 VkDevice device,
9168 const VkSwapchainCreateInfoKHR* pCreateInfo,
9169 const VkAllocationCallbacks* pAllocator,
9170 VkSwapchainKHR* pSwapchain);
9171#endif
9172
9173#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9174VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
9175 VkDevice device,
9176 VkSwapchainKHR swapchain,
9177 const VkAllocationCallbacks* pAllocator);
9178#endif
9179
9180#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9181VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
9182 VkDevice device,
9183 VkSwapchainKHR swapchain,
9184 uint32_t* pSwapchainImageCount,
9185 VkImage* pSwapchainImages);
9186#endif
9187
9188#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9189VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
9190 VkDevice device,
9191 VkSwapchainKHR swapchain,
9192 uint64_t timeout,
9193 VkSemaphore semaphore,
9194 VkFence fence,
9195 uint32_t* pImageIndex);
9196#endif
9197
9198#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9199VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
9200 VkQueue queue,
9201 const VkPresentInfoKHR* pPresentInfo);
9202#endif
9203
9204#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9205VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
9206 VkDevice device,
9207 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
9208#endif
9209
9210#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9211VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
9212 VkDevice device,
9213 VkSurfaceKHR surface,
9214 VkDeviceGroupPresentModeFlagsKHR* pModes);
9215#endif
9216
9217#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9218VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
9219 VkPhysicalDevice physicalDevice,
9220 VkSurfaceKHR surface,
9221 uint32_t* pRectCount,
9222 VkRect2D* pRects);
9223#endif
9224
9225#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9226VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
9227 VkDevice device,
9228 const VkAcquireNextImageInfoKHR* pAcquireInfo,
9229 uint32_t* pImageIndex);
9230#endif
9231#endif
9232
9233
9234// VK_KHR_display is a preprocessor guard. Do not pass it to API calls.
9235#define VK_KHR_display 1
9236VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
9237VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
9238#define VK_KHR_DISPLAY_SPEC_VERSION 23
9239#define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
9240typedef VkFlags VkDisplayModeCreateFlagsKHR;
9241
9242typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
9243 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
9244 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
9245 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
9246 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
9247 VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9248} VkDisplayPlaneAlphaFlagBitsKHR;
9249typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
9250typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
9251typedef struct VkDisplayModeParametersKHR {
9252 VkExtent2D visibleRegion;
9253 uint32_t refreshRate;
9254} VkDisplayModeParametersKHR;
9255
9256typedef struct VkDisplayModeCreateInfoKHR {
9257 VkStructureType sType;
9258 const void* pNext;
9259 VkDisplayModeCreateFlagsKHR flags;
9260 VkDisplayModeParametersKHR parameters;
9261} VkDisplayModeCreateInfoKHR;
9262
9263typedef struct VkDisplayModePropertiesKHR {
9264 VkDisplayModeKHR displayMode;
9265 VkDisplayModeParametersKHR parameters;
9266} VkDisplayModePropertiesKHR;
9267
9268typedef struct VkDisplayPlaneCapabilitiesKHR {
9269 VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
9270 VkOffset2D minSrcPosition;
9271 VkOffset2D maxSrcPosition;
9272 VkExtent2D minSrcExtent;
9273 VkExtent2D maxSrcExtent;
9274 VkOffset2D minDstPosition;
9275 VkOffset2D maxDstPosition;
9276 VkExtent2D minDstExtent;
9277 VkExtent2D maxDstExtent;
9278} VkDisplayPlaneCapabilitiesKHR;
9279
9280typedef struct VkDisplayPlanePropertiesKHR {
9281 VkDisplayKHR currentDisplay;
9282 uint32_t currentStackIndex;
9283} VkDisplayPlanePropertiesKHR;
9284
9285typedef struct VkDisplayPropertiesKHR {
9286 VkDisplayKHR display;
9287 const char* displayName;
9288 VkExtent2D physicalDimensions;
9289 VkExtent2D physicalResolution;
9290 VkSurfaceTransformFlagsKHR supportedTransforms;
9291 VkBool32 planeReorderPossible;
9292 VkBool32 persistentContent;
9293} VkDisplayPropertiesKHR;
9294
9295typedef struct VkDisplaySurfaceCreateInfoKHR {
9296 VkStructureType sType;
9297 const void* pNext;
9298 VkDisplaySurfaceCreateFlagsKHR flags;
9299 VkDisplayModeKHR displayMode;
9300 uint32_t planeIndex;
9301 uint32_t planeStackIndex;
9302 VkSurfaceTransformFlagBitsKHR transform;
9303 float globalAlpha;
9304 VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
9305 VkExtent2D imageExtent;
9306} VkDisplaySurfaceCreateInfoKHR;
9307
9308typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
9309typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
9310typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
9311typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
9312typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
9313typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
9314typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
9315
9316#ifndef VK_NO_PROTOTYPES
9317#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9318VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
9319 VkPhysicalDevice physicalDevice,
9320 uint32_t* pPropertyCount,
9321 VkDisplayPropertiesKHR* pProperties);
9322#endif
9323
9324#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9325VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
9326 VkPhysicalDevice physicalDevice,
9327 uint32_t* pPropertyCount,
9328 VkDisplayPlanePropertiesKHR* pProperties);
9329#endif
9330
9331#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9332VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
9333 VkPhysicalDevice physicalDevice,
9334 uint32_t planeIndex,
9335 uint32_t* pDisplayCount,
9336 VkDisplayKHR* pDisplays);
9337#endif
9338
9339#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9340VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
9341 VkPhysicalDevice physicalDevice,
9342 VkDisplayKHR display,
9343 uint32_t* pPropertyCount,
9344 VkDisplayModePropertiesKHR* pProperties);
9345#endif
9346
9347#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9348VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
9349 VkPhysicalDevice physicalDevice,
9350 VkDisplayKHR display,
9351 const VkDisplayModeCreateInfoKHR* pCreateInfo,
9352 const VkAllocationCallbacks* pAllocator,
9353 VkDisplayModeKHR* pMode);
9354#endif
9355
9356#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9357VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
9358 VkPhysicalDevice physicalDevice,
9359 VkDisplayModeKHR mode,
9360 uint32_t planeIndex,
9361 VkDisplayPlaneCapabilitiesKHR* pCapabilities);
9362#endif
9363
9364#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9365VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
9366 VkInstance instance,
9367 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
9368 const VkAllocationCallbacks* pAllocator,
9369 VkSurfaceKHR* pSurface);
9370#endif
9371#endif
9372
9373
9374// VK_KHR_display_swapchain is a preprocessor guard. Do not pass it to API calls.
9375#define VK_KHR_display_swapchain 1
9376#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
9377#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
9378typedef struct VkDisplayPresentInfoKHR {
9379 VkStructureType sType;
9380 const void* pNext;
9381 VkRect2D srcRect;
9382 VkRect2D dstRect;
9383 VkBool32 persistent;
9384} VkDisplayPresentInfoKHR;
9385
9386typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
9387
9388#ifndef VK_NO_PROTOTYPES
9389#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9390VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
9391 VkDevice device,
9392 uint32_t swapchainCount,
9393 const VkSwapchainCreateInfoKHR* pCreateInfos,
9394 const VkAllocationCallbacks* pAllocator,
9395 VkSwapchainKHR* pSwapchains);
9396#endif
9397#endif
9398
9399
9400// VK_KHR_sampler_mirror_clamp_to_edge is a preprocessor guard. Do not pass it to API calls.
9401#define VK_KHR_sampler_mirror_clamp_to_edge 1
9402#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
9403#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
9404
9405
9406// VK_KHR_video_queue is a preprocessor guard. Do not pass it to API calls.
9407#define VK_KHR_video_queue 1
9408VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
9409VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
9410#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 8
9411#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
9412
9413typedef enum VkQueryResultStatusKHR {
9414 VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,
9415 VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,
9416 VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,
9417 VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR = -1000299000,
9418 VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF
9419} VkQueryResultStatusKHR;
9420
9421typedef enum VkVideoCodecOperationFlagBitsKHR {
9422 VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0,
9423 VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR = 0x00010000,
9424 VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR = 0x00020000,
9425 VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0x00000001,
9426 VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002,
9427 VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x00000004,
9428 VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR = 0x00040000,
9429 VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR = 0x00000008,
9430 VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9431} VkVideoCodecOperationFlagBitsKHR;
9432typedef VkFlags VkVideoCodecOperationFlagsKHR;
9433
9434typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
9435 VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0,
9436 VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
9437 VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
9438 VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
9439 VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,
9440 VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9441} VkVideoChromaSubsamplingFlagBitsKHR;
9442typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
9443
9444typedef enum VkVideoComponentBitDepthFlagBitsKHR {
9445 VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,
9446 VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,
9447 VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,
9448 VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,
9449 VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9450} VkVideoComponentBitDepthFlagBitsKHR;
9451typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
9452
9453typedef enum VkVideoCapabilityFlagBitsKHR {
9454 VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
9455 VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
9456 VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9457} VkVideoCapabilityFlagBitsKHR;
9458typedef VkFlags VkVideoCapabilityFlagsKHR;
9459
9460typedef enum VkVideoSessionCreateFlagBitsKHR {
9461 VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
9462 VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR = 0x00000002,
9463 VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x00000004,
9464 VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000008,
9465 VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x00000010,
9466 VK_VIDEO_SESSION_CREATE_INLINE_SESSION_PARAMETERS_BIT_KHR = 0x00000020,
9467 VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9468} VkVideoSessionCreateFlagBitsKHR;
9469typedef VkFlags VkVideoSessionCreateFlagsKHR;
9470
9471typedef enum VkVideoSessionParametersCreateFlagBitsKHR {
9472 VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR = 0x00000001,
9473 VK_VIDEO_SESSION_PARAMETERS_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9474} VkVideoSessionParametersCreateFlagBitsKHR;
9475typedef VkFlags VkVideoSessionParametersCreateFlagsKHR;
9476typedef VkFlags VkVideoBeginCodingFlagsKHR;
9477typedef VkFlags VkVideoEndCodingFlagsKHR;
9478
9479typedef enum VkVideoCodingControlFlagBitsKHR {
9480 VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
9481 VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002,
9482 VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR = 0x00000004,
9483 VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9484} VkVideoCodingControlFlagBitsKHR;
9485typedef VkFlags VkVideoCodingControlFlagsKHR;
9486typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR {
9487 VkStructureType sType;
9488 void* pNext;
9489 VkBool32 queryResultStatusSupport;
9490} VkQueueFamilyQueryResultStatusPropertiesKHR;
9491
9492typedef struct VkQueueFamilyVideoPropertiesKHR {
9493 VkStructureType sType;
9494 void* pNext;
9495 VkVideoCodecOperationFlagsKHR videoCodecOperations;
9496} VkQueueFamilyVideoPropertiesKHR;
9497
9498typedef struct VkVideoProfileInfoKHR {
9499 VkStructureType sType;
9500 const void* pNext;
9501 VkVideoCodecOperationFlagBitsKHR videoCodecOperation;
9502 VkVideoChromaSubsamplingFlagsKHR chromaSubsampling;
9503 VkVideoComponentBitDepthFlagsKHR lumaBitDepth;
9504 VkVideoComponentBitDepthFlagsKHR chromaBitDepth;
9505} VkVideoProfileInfoKHR;
9506
9507typedef struct VkVideoProfileListInfoKHR {
9508 VkStructureType sType;
9509 const void* pNext;
9510 uint32_t profileCount;
9511 const VkVideoProfileInfoKHR* pProfiles;
9512} VkVideoProfileListInfoKHR;
9513
9514typedef struct VkVideoCapabilitiesKHR {
9515 VkStructureType sType;
9516 void* pNext;
9517 VkVideoCapabilityFlagsKHR flags;
9518 VkDeviceSize minBitstreamBufferOffsetAlignment;
9519 VkDeviceSize minBitstreamBufferSizeAlignment;
9520 VkExtent2D pictureAccessGranularity;
9521 VkExtent2D minCodedExtent;
9522 VkExtent2D maxCodedExtent;
9523 uint32_t maxDpbSlots;
9524 uint32_t maxActiveReferencePictures;
9525 VkExtensionProperties stdHeaderVersion;
9526} VkVideoCapabilitiesKHR;
9527
9528typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
9529 VkStructureType sType;
9530 const void* pNext;
9531 VkImageUsageFlags imageUsage;
9532} VkPhysicalDeviceVideoFormatInfoKHR;
9533
9534typedef struct VkVideoFormatPropertiesKHR {
9535 VkStructureType sType;
9536 void* pNext;
9537 VkFormat format;
9538 VkComponentMapping componentMapping;
9539 VkImageCreateFlags imageCreateFlags;
9540 VkImageType imageType;
9541 VkImageTiling imageTiling;
9542 VkImageUsageFlags imageUsageFlags;
9543} VkVideoFormatPropertiesKHR;
9544
9545typedef struct VkVideoPictureResourceInfoKHR {
9546 VkStructureType sType;
9547 const void* pNext;
9548 VkOffset2D codedOffset;
9549 VkExtent2D codedExtent;
9550 uint32_t baseArrayLayer;
9551 VkImageView imageViewBinding;
9552} VkVideoPictureResourceInfoKHR;
9553
9554typedef struct VkVideoReferenceSlotInfoKHR {
9555 VkStructureType sType;
9556 const void* pNext;
9557 int32_t slotIndex;
9558 const VkVideoPictureResourceInfoKHR* pPictureResource;
9559} VkVideoReferenceSlotInfoKHR;
9560
9561typedef struct VkVideoSessionMemoryRequirementsKHR {
9562 VkStructureType sType;
9563 void* pNext;
9564 uint32_t memoryBindIndex;
9565 VkMemoryRequirements memoryRequirements;
9566} VkVideoSessionMemoryRequirementsKHR;
9567
9568typedef struct VkBindVideoSessionMemoryInfoKHR {
9569 VkStructureType sType;
9570 const void* pNext;
9571 uint32_t memoryBindIndex;
9572 VkDeviceMemory memory;
9573 VkDeviceSize memoryOffset;
9574 VkDeviceSize memorySize;
9575} VkBindVideoSessionMemoryInfoKHR;
9576
9577typedef struct VkVideoSessionCreateInfoKHR {
9578 VkStructureType sType;
9579 const void* pNext;
9580 uint32_t queueFamilyIndex;
9581 VkVideoSessionCreateFlagsKHR flags;
9582 const VkVideoProfileInfoKHR* pVideoProfile;
9583 VkFormat pictureFormat;
9584 VkExtent2D maxCodedExtent;
9585 VkFormat referencePictureFormat;
9586 uint32_t maxDpbSlots;
9587 uint32_t maxActiveReferencePictures;
9588 const VkExtensionProperties* pStdHeaderVersion;
9589} VkVideoSessionCreateInfoKHR;
9590
9591typedef struct VkVideoSessionParametersCreateInfoKHR {
9592 VkStructureType sType;
9593 const void* pNext;
9594 VkVideoSessionParametersCreateFlagsKHR flags;
9595 VkVideoSessionParametersKHR videoSessionParametersTemplate;
9596 VkVideoSessionKHR videoSession;
9597} VkVideoSessionParametersCreateInfoKHR;
9598
9599typedef struct VkVideoSessionParametersUpdateInfoKHR {
9600 VkStructureType sType;
9601 const void* pNext;
9602 uint32_t updateSequenceCount;
9603} VkVideoSessionParametersUpdateInfoKHR;
9604
9605typedef struct VkVideoBeginCodingInfoKHR {
9606 VkStructureType sType;
9607 const void* pNext;
9608 VkVideoBeginCodingFlagsKHR flags;
9609 VkVideoSessionKHR videoSession;
9610 VkVideoSessionParametersKHR videoSessionParameters;
9611 uint32_t referenceSlotCount;
9612 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
9613} VkVideoBeginCodingInfoKHR;
9614
9615typedef struct VkVideoEndCodingInfoKHR {
9616 VkStructureType sType;
9617 const void* pNext;
9618 VkVideoEndCodingFlagsKHR flags;
9619} VkVideoEndCodingInfoKHR;
9620
9621typedef struct VkVideoCodingControlInfoKHR {
9622 VkStructureType sType;
9623 const void* pNext;
9624 VkVideoCodingControlFlagsKHR flags;
9625} VkVideoCodingControlInfoKHR;
9626
9627typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
9628typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
9629typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
9630typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
9631typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
9632typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
9633typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
9634typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
9635typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
9636typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
9637typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
9638typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
9639
9640#ifndef VK_NO_PROTOTYPES
9641#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9642VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
9643 VkPhysicalDevice physicalDevice,
9644 const VkVideoProfileInfoKHR* pVideoProfile,
9645 VkVideoCapabilitiesKHR* pCapabilities);
9646#endif
9647
9648#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9649VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
9650 VkPhysicalDevice physicalDevice,
9651 const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
9652 uint32_t* pVideoFormatPropertyCount,
9653 VkVideoFormatPropertiesKHR* pVideoFormatProperties);
9654#endif
9655
9656#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9657VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(
9658 VkDevice device,
9659 const VkVideoSessionCreateInfoKHR* pCreateInfo,
9660 const VkAllocationCallbacks* pAllocator,
9661 VkVideoSessionKHR* pVideoSession);
9662#endif
9663
9664#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9665VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
9666 VkDevice device,
9667 VkVideoSessionKHR videoSession,
9668 const VkAllocationCallbacks* pAllocator);
9669#endif
9670
9671#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9672VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
9673 VkDevice device,
9674 VkVideoSessionKHR videoSession,
9675 uint32_t* pMemoryRequirementsCount,
9676 VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
9677#endif
9678
9679#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9680VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
9681 VkDevice device,
9682 VkVideoSessionKHR videoSession,
9683 uint32_t bindSessionMemoryInfoCount,
9684 const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
9685#endif
9686
9687#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9688VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
9689 VkDevice device,
9690 const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
9691 const VkAllocationCallbacks* pAllocator,
9692 VkVideoSessionParametersKHR* pVideoSessionParameters);
9693#endif
9694
9695#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9696VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(
9697 VkDevice device,
9698 VkVideoSessionParametersKHR videoSessionParameters,
9699 const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
9700#endif
9701
9702#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9703VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(
9704 VkDevice device,
9705 VkVideoSessionParametersKHR videoSessionParameters,
9706 const VkAllocationCallbacks* pAllocator);
9707#endif
9708
9709#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9710VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(
9711 VkCommandBuffer commandBuffer,
9712 const VkVideoBeginCodingInfoKHR* pBeginInfo);
9713#endif
9714
9715#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9716VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(
9717 VkCommandBuffer commandBuffer,
9718 const VkVideoEndCodingInfoKHR* pEndCodingInfo);
9719#endif
9720
9721#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9722VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
9723 VkCommandBuffer commandBuffer,
9724 const VkVideoCodingControlInfoKHR* pCodingControlInfo);
9725#endif
9726#endif
9727
9728
9729// VK_KHR_video_decode_queue is a preprocessor guard. Do not pass it to API calls.
9730#define VK_KHR_video_decode_queue 1
9731#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 8
9732#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
9733
9734typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
9735 VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
9736 VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
9737 VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9738} VkVideoDecodeCapabilityFlagBitsKHR;
9739typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
9740
9741typedef enum VkVideoDecodeUsageFlagBitsKHR {
9742 VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0,
9743 VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
9744 VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002,
9745 VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004,
9746 VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9747} VkVideoDecodeUsageFlagBitsKHR;
9748typedef VkFlags VkVideoDecodeUsageFlagsKHR;
9749typedef VkFlags VkVideoDecodeFlagsKHR;
9750typedef struct VkVideoDecodeCapabilitiesKHR {
9751 VkStructureType sType;
9752 void* pNext;
9753 VkVideoDecodeCapabilityFlagsKHR flags;
9754} VkVideoDecodeCapabilitiesKHR;
9755
9756typedef struct VkVideoDecodeUsageInfoKHR {
9757 VkStructureType sType;
9758 const void* pNext;
9759 VkVideoDecodeUsageFlagsKHR videoUsageHints;
9760} VkVideoDecodeUsageInfoKHR;
9761
9762typedef struct VkVideoDecodeInfoKHR {
9763 VkStructureType sType;
9764 const void* pNext;
9765 VkVideoDecodeFlagsKHR flags;
9766 VkBuffer srcBuffer;
9767 VkDeviceSize srcBufferOffset;
9768 VkDeviceSize srcBufferRange;
9769 VkVideoPictureResourceInfoKHR dstPictureResource;
9770 const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
9771 uint32_t referenceSlotCount;
9772 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
9773} VkVideoDecodeInfoKHR;
9774
9775typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo);
9776
9777#ifndef VK_NO_PROTOTYPES
9778#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9779VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
9780 VkCommandBuffer commandBuffer,
9781 const VkVideoDecodeInfoKHR* pDecodeInfo);
9782#endif
9783#endif
9784
9785
9786// VK_KHR_video_encode_h264 is a preprocessor guard. Do not pass it to API calls.
9787#define VK_KHR_video_encode_h264 1
9788#include "vk_video/vulkan_video_codec_h264std.h"
9789#include "vk_video/vulkan_video_codec_h264std_encode.h"
9790#define VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION 14
9791#define VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_KHR_video_encode_h264"
9792
9793typedef enum VkVideoEncodeH264CapabilityFlagBitsKHR {
9794 VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9795 VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
9796 VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR = 0x00000004,
9797 VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR = 0x00000008,
9798 VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
9799 VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
9800 VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
9801 VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR = 0x00000080,
9802 VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x00000100,
9803 VK_VIDEO_ENCODE_H264_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR = 0x00000400,
9804 VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR = 0x00000200,
9805 VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9806} VkVideoEncodeH264CapabilityFlagBitsKHR;
9807typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR;
9808
9809typedef enum VkVideoEncodeH264StdFlagBitsKHR {
9810 VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
9811 VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR = 0x00000002,
9812 VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
9813 VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000008,
9814 VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000010,
9815 VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
9816 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
9817 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR = 0x00000080,
9818 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR = 0x00000100,
9819 VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR = 0x00000200,
9820 VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR = 0x00000400,
9821 VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR = 0x00000800,
9822 VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR = 0x00001000,
9823 VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR = 0x00002000,
9824 VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
9825 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR = 0x00008000,
9826 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR = 0x00010000,
9827 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR = 0x00020000,
9828 VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
9829 VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
9830 VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9831} VkVideoEncodeH264StdFlagBitsKHR;
9832typedef VkFlags VkVideoEncodeH264StdFlagsKHR;
9833
9834typedef enum VkVideoEncodeH264RateControlFlagBitsKHR {
9835 VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9836 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
9837 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
9838 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
9839 VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
9840 VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9841} VkVideoEncodeH264RateControlFlagBitsKHR;
9842typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR;
9843typedef struct VkVideoEncodeH264CapabilitiesKHR {
9844 VkStructureType sType;
9845 void* pNext;
9846 VkVideoEncodeH264CapabilityFlagsKHR flags;
9847 StdVideoH264LevelIdc maxLevelIdc;
9848 uint32_t maxSliceCount;
9849 uint32_t maxPPictureL0ReferenceCount;
9850 uint32_t maxBPictureL0ReferenceCount;
9851 uint32_t maxL1ReferenceCount;
9852 uint32_t maxTemporalLayerCount;
9853 VkBool32 expectDyadicTemporalLayerPattern;
9854 int32_t minQp;
9855 int32_t maxQp;
9856 VkBool32 prefersGopRemainingFrames;
9857 VkBool32 requiresGopRemainingFrames;
9858 VkVideoEncodeH264StdFlagsKHR stdSyntaxFlags;
9859} VkVideoEncodeH264CapabilitiesKHR;
9860
9861typedef struct VkVideoEncodeH264QpKHR {
9862 int32_t qpI;
9863 int32_t qpP;
9864 int32_t qpB;
9865} VkVideoEncodeH264QpKHR;
9866
9867typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR {
9868 VkStructureType sType;
9869 void* pNext;
9870 VkVideoEncodeH264RateControlFlagsKHR preferredRateControlFlags;
9871 uint32_t preferredGopFrameCount;
9872 uint32_t preferredIdrPeriod;
9873 uint32_t preferredConsecutiveBFrameCount;
9874 uint32_t preferredTemporalLayerCount;
9875 VkVideoEncodeH264QpKHR preferredConstantQp;
9876 uint32_t preferredMaxL0ReferenceCount;
9877 uint32_t preferredMaxL1ReferenceCount;
9878 VkBool32 preferredStdEntropyCodingModeFlag;
9879} VkVideoEncodeH264QualityLevelPropertiesKHR;
9880
9881typedef struct VkVideoEncodeH264SessionCreateInfoKHR {
9882 VkStructureType sType;
9883 const void* pNext;
9884 VkBool32 useMaxLevelIdc;
9885 StdVideoH264LevelIdc maxLevelIdc;
9886} VkVideoEncodeH264SessionCreateInfoKHR;
9887
9888typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR {
9889 VkStructureType sType;
9890 const void* pNext;
9891 uint32_t stdSPSCount;
9892 const StdVideoH264SequenceParameterSet* pStdSPSs;
9893 uint32_t stdPPSCount;
9894 const StdVideoH264PictureParameterSet* pStdPPSs;
9895} VkVideoEncodeH264SessionParametersAddInfoKHR;
9896
9897typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR {
9898 VkStructureType sType;
9899 const void* pNext;
9900 uint32_t maxStdSPSCount;
9901 uint32_t maxStdPPSCount;
9902 const VkVideoEncodeH264SessionParametersAddInfoKHR* pParametersAddInfo;
9903} VkVideoEncodeH264SessionParametersCreateInfoKHR;
9904
9905typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR {
9906 VkStructureType sType;
9907 const void* pNext;
9908 VkBool32 writeStdSPS;
9909 VkBool32 writeStdPPS;
9910 uint32_t stdSPSId;
9911 uint32_t stdPPSId;
9912} VkVideoEncodeH264SessionParametersGetInfoKHR;
9913
9914typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR {
9915 VkStructureType sType;
9916 void* pNext;
9917 VkBool32 hasStdSPSOverrides;
9918 VkBool32 hasStdPPSOverrides;
9919} VkVideoEncodeH264SessionParametersFeedbackInfoKHR;
9920
9921typedef struct VkVideoEncodeH264NaluSliceInfoKHR {
9922 VkStructureType sType;
9923 const void* pNext;
9924 int32_t constantQp;
9925 const StdVideoEncodeH264SliceHeader* pStdSliceHeader;
9926} VkVideoEncodeH264NaluSliceInfoKHR;
9927
9928typedef struct VkVideoEncodeH264PictureInfoKHR {
9929 VkStructureType sType;
9930 const void* pNext;
9931 uint32_t naluSliceEntryCount;
9932 const VkVideoEncodeH264NaluSliceInfoKHR* pNaluSliceEntries;
9933 const StdVideoEncodeH264PictureInfo* pStdPictureInfo;
9934 VkBool32 generatePrefixNalu;
9935} VkVideoEncodeH264PictureInfoKHR;
9936
9937typedef struct VkVideoEncodeH264DpbSlotInfoKHR {
9938 VkStructureType sType;
9939 const void* pNext;
9940 const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo;
9941} VkVideoEncodeH264DpbSlotInfoKHR;
9942
9943typedef struct VkVideoEncodeH264ProfileInfoKHR {
9944 VkStructureType sType;
9945 const void* pNext;
9946 StdVideoH264ProfileIdc stdProfileIdc;
9947} VkVideoEncodeH264ProfileInfoKHR;
9948
9949typedef struct VkVideoEncodeH264RateControlInfoKHR {
9950 VkStructureType sType;
9951 const void* pNext;
9952 VkVideoEncodeH264RateControlFlagsKHR flags;
9953 uint32_t gopFrameCount;
9954 uint32_t idrPeriod;
9955 uint32_t consecutiveBFrameCount;
9956 uint32_t temporalLayerCount;
9957} VkVideoEncodeH264RateControlInfoKHR;
9958
9959typedef struct VkVideoEncodeH264FrameSizeKHR {
9960 uint32_t frameISize;
9961 uint32_t framePSize;
9962 uint32_t frameBSize;
9963} VkVideoEncodeH264FrameSizeKHR;
9964
9965typedef struct VkVideoEncodeH264RateControlLayerInfoKHR {
9966 VkStructureType sType;
9967 const void* pNext;
9968 VkBool32 useMinQp;
9969 VkVideoEncodeH264QpKHR minQp;
9970 VkBool32 useMaxQp;
9971 VkVideoEncodeH264QpKHR maxQp;
9972 VkBool32 useMaxFrameSize;
9973 VkVideoEncodeH264FrameSizeKHR maxFrameSize;
9974} VkVideoEncodeH264RateControlLayerInfoKHR;
9975
9976typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR {
9977 VkStructureType sType;
9978 const void* pNext;
9979 VkBool32 useGopRemainingFrames;
9980 uint32_t gopRemainingI;
9981 uint32_t gopRemainingP;
9982 uint32_t gopRemainingB;
9983} VkVideoEncodeH264GopRemainingFrameInfoKHR;
9984
9985
9986
9987// VK_KHR_video_encode_h265 is a preprocessor guard. Do not pass it to API calls.
9988#define VK_KHR_video_encode_h265 1
9989#include "vk_video/vulkan_video_codec_h265std.h"
9990#include "vk_video/vulkan_video_codec_h265std_encode.h"
9991#define VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION 14
9992#define VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_KHR_video_encode_h265"
9993
9994typedef enum VkVideoEncodeH265CapabilityFlagBitsKHR {
9995 VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9996 VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
9997 VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR = 0x00000004,
9998 VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR = 0x00000008,
9999 VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
10000 VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
10001 VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
10002 VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR = 0x00000080,
10003 VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR = 0x00000100,
10004 VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x00000200,
10005 VK_VIDEO_ENCODE_H265_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR = 0x00000800,
10006 VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR = 0x00000400,
10007 VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10008} VkVideoEncodeH265CapabilityFlagBitsKHR;
10009typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR;
10010
10011typedef enum VkVideoEncodeH265StdFlagBitsKHR {
10012 VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
10013 VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR = 0x00000002,
10014 VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
10015 VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR = 0x00000008,
10016 VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR = 0x00000010,
10017 VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
10018 VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
10019 VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR = 0x00000080,
10020 VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR = 0x00000100,
10021 VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR = 0x00000200,
10022 VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR = 0x00000400,
10023 VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR = 0x00000800,
10024 VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR = 0x00001000,
10025 VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR = 0x00002000,
10026 VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
10027 VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR = 0x00008000,
10028 VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR = 0x00010000,
10029 VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR = 0x00020000,
10030 VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR = 0x00040000,
10031 VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
10032 VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
10033 VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10034} VkVideoEncodeH265StdFlagBitsKHR;
10035typedef VkFlags VkVideoEncodeH265StdFlagsKHR;
10036
10037typedef enum VkVideoEncodeH265CtbSizeFlagBitsKHR {
10038 VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR = 0x00000001,
10039 VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR = 0x00000002,
10040 VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR = 0x00000004,
10041 VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10042} VkVideoEncodeH265CtbSizeFlagBitsKHR;
10043typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR;
10044
10045typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsKHR {
10046 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR = 0x00000001,
10047 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR = 0x00000002,
10048 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR = 0x00000004,
10049 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR = 0x00000008,
10050 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10051} VkVideoEncodeH265TransformBlockSizeFlagBitsKHR;
10052typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR;
10053
10054typedef enum VkVideoEncodeH265RateControlFlagBitsKHR {
10055 VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
10056 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
10057 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
10058 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
10059 VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
10060 VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10061} VkVideoEncodeH265RateControlFlagBitsKHR;
10062typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR;
10063typedef struct VkVideoEncodeH265CapabilitiesKHR {
10064 VkStructureType sType;
10065 void* pNext;
10066 VkVideoEncodeH265CapabilityFlagsKHR flags;
10067 StdVideoH265LevelIdc maxLevelIdc;
10068 uint32_t maxSliceSegmentCount;
10069 VkExtent2D maxTiles;
10070 VkVideoEncodeH265CtbSizeFlagsKHR ctbSizes;
10071 VkVideoEncodeH265TransformBlockSizeFlagsKHR transformBlockSizes;
10072 uint32_t maxPPictureL0ReferenceCount;
10073 uint32_t maxBPictureL0ReferenceCount;
10074 uint32_t maxL1ReferenceCount;
10075 uint32_t maxSubLayerCount;
10076 VkBool32 expectDyadicTemporalSubLayerPattern;
10077 int32_t minQp;
10078 int32_t maxQp;
10079 VkBool32 prefersGopRemainingFrames;
10080 VkBool32 requiresGopRemainingFrames;
10081 VkVideoEncodeH265StdFlagsKHR stdSyntaxFlags;
10082} VkVideoEncodeH265CapabilitiesKHR;
10083
10084typedef struct VkVideoEncodeH265SessionCreateInfoKHR {
10085 VkStructureType sType;
10086 const void* pNext;
10087 VkBool32 useMaxLevelIdc;
10088 StdVideoH265LevelIdc maxLevelIdc;
10089} VkVideoEncodeH265SessionCreateInfoKHR;
10090
10091typedef struct VkVideoEncodeH265QpKHR {
10092 int32_t qpI;
10093 int32_t qpP;
10094 int32_t qpB;
10095} VkVideoEncodeH265QpKHR;
10096
10097typedef struct VkVideoEncodeH265QualityLevelPropertiesKHR {
10098 VkStructureType sType;
10099 void* pNext;
10100 VkVideoEncodeH265RateControlFlagsKHR preferredRateControlFlags;
10101 uint32_t preferredGopFrameCount;
10102 uint32_t preferredIdrPeriod;
10103 uint32_t preferredConsecutiveBFrameCount;
10104 uint32_t preferredSubLayerCount;
10105 VkVideoEncodeH265QpKHR preferredConstantQp;
10106 uint32_t preferredMaxL0ReferenceCount;
10107 uint32_t preferredMaxL1ReferenceCount;
10108} VkVideoEncodeH265QualityLevelPropertiesKHR;
10109
10110typedef struct VkVideoEncodeH265SessionParametersAddInfoKHR {
10111 VkStructureType sType;
10112 const void* pNext;
10113 uint32_t stdVPSCount;
10114 const StdVideoH265VideoParameterSet* pStdVPSs;
10115 uint32_t stdSPSCount;
10116 const StdVideoH265SequenceParameterSet* pStdSPSs;
10117 uint32_t stdPPSCount;
10118 const StdVideoH265PictureParameterSet* pStdPPSs;
10119} VkVideoEncodeH265SessionParametersAddInfoKHR;
10120
10121typedef struct VkVideoEncodeH265SessionParametersCreateInfoKHR {
10122 VkStructureType sType;
10123 const void* pNext;
10124 uint32_t maxStdVPSCount;
10125 uint32_t maxStdSPSCount;
10126 uint32_t maxStdPPSCount;
10127 const VkVideoEncodeH265SessionParametersAddInfoKHR* pParametersAddInfo;
10128} VkVideoEncodeH265SessionParametersCreateInfoKHR;
10129
10130typedef struct VkVideoEncodeH265SessionParametersGetInfoKHR {
10131 VkStructureType sType;
10132 const void* pNext;
10133 VkBool32 writeStdVPS;
10134 VkBool32 writeStdSPS;
10135 VkBool32 writeStdPPS;
10136 uint32_t stdVPSId;
10137 uint32_t stdSPSId;
10138 uint32_t stdPPSId;
10139} VkVideoEncodeH265SessionParametersGetInfoKHR;
10140
10141typedef struct VkVideoEncodeH265SessionParametersFeedbackInfoKHR {
10142 VkStructureType sType;
10143 void* pNext;
10144 VkBool32 hasStdVPSOverrides;
10145 VkBool32 hasStdSPSOverrides;
10146 VkBool32 hasStdPPSOverrides;
10147} VkVideoEncodeH265SessionParametersFeedbackInfoKHR;
10148
10149typedef struct VkVideoEncodeH265NaluSliceSegmentInfoKHR {
10150 VkStructureType sType;
10151 const void* pNext;
10152 int32_t constantQp;
10153 const StdVideoEncodeH265SliceSegmentHeader* pStdSliceSegmentHeader;
10154} VkVideoEncodeH265NaluSliceSegmentInfoKHR;
10155
10156typedef struct VkVideoEncodeH265PictureInfoKHR {
10157 VkStructureType sType;
10158 const void* pNext;
10159 uint32_t naluSliceSegmentEntryCount;
10160 const VkVideoEncodeH265NaluSliceSegmentInfoKHR* pNaluSliceSegmentEntries;
10161 const StdVideoEncodeH265PictureInfo* pStdPictureInfo;
10162} VkVideoEncodeH265PictureInfoKHR;
10163
10164typedef struct VkVideoEncodeH265DpbSlotInfoKHR {
10165 VkStructureType sType;
10166 const void* pNext;
10167 const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo;
10168} VkVideoEncodeH265DpbSlotInfoKHR;
10169
10170typedef struct VkVideoEncodeH265ProfileInfoKHR {
10171 VkStructureType sType;
10172 const void* pNext;
10173 StdVideoH265ProfileIdc stdProfileIdc;
10174} VkVideoEncodeH265ProfileInfoKHR;
10175
10176typedef struct VkVideoEncodeH265RateControlInfoKHR {
10177 VkStructureType sType;
10178 const void* pNext;
10179 VkVideoEncodeH265RateControlFlagsKHR flags;
10180 uint32_t gopFrameCount;
10181 uint32_t idrPeriod;
10182 uint32_t consecutiveBFrameCount;
10183 uint32_t subLayerCount;
10184} VkVideoEncodeH265RateControlInfoKHR;
10185
10186typedef struct VkVideoEncodeH265FrameSizeKHR {
10187 uint32_t frameISize;
10188 uint32_t framePSize;
10189 uint32_t frameBSize;
10190} VkVideoEncodeH265FrameSizeKHR;
10191
10192typedef struct VkVideoEncodeH265RateControlLayerInfoKHR {
10193 VkStructureType sType;
10194 const void* pNext;
10195 VkBool32 useMinQp;
10196 VkVideoEncodeH265QpKHR minQp;
10197 VkBool32 useMaxQp;
10198 VkVideoEncodeH265QpKHR maxQp;
10199 VkBool32 useMaxFrameSize;
10200 VkVideoEncodeH265FrameSizeKHR maxFrameSize;
10201} VkVideoEncodeH265RateControlLayerInfoKHR;
10202
10203typedef struct VkVideoEncodeH265GopRemainingFrameInfoKHR {
10204 VkStructureType sType;
10205 const void* pNext;
10206 VkBool32 useGopRemainingFrames;
10207 uint32_t gopRemainingI;
10208 uint32_t gopRemainingP;
10209 uint32_t gopRemainingB;
10210} VkVideoEncodeH265GopRemainingFrameInfoKHR;
10211
10212
10213
10214// VK_KHR_video_decode_h264 is a preprocessor guard. Do not pass it to API calls.
10215#define VK_KHR_video_decode_h264 1
10216#include "vk_video/vulkan_video_codec_h264std_decode.h"
10217#define VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION 9
10218#define VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME "VK_KHR_video_decode_h264"
10219
10220typedef enum VkVideoDecodeH264PictureLayoutFlagBitsKHR {
10221 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0,
10222 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0x00000001,
10223 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0x00000002,
10224 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10225} VkVideoDecodeH264PictureLayoutFlagBitsKHR;
10226typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR;
10227typedef struct VkVideoDecodeH264ProfileInfoKHR {
10228 VkStructureType sType;
10229 const void* pNext;
10230 StdVideoH264ProfileIdc stdProfileIdc;
10231 VkVideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout;
10232} VkVideoDecodeH264ProfileInfoKHR;
10233
10234typedef struct VkVideoDecodeH264CapabilitiesKHR {
10235 VkStructureType sType;
10236 void* pNext;
10237 StdVideoH264LevelIdc maxLevelIdc;
10238 VkOffset2D fieldOffsetGranularity;
10239} VkVideoDecodeH264CapabilitiesKHR;
10240
10241typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR {
10242 VkStructureType sType;
10243 const void* pNext;
10244 uint32_t stdSPSCount;
10245 const StdVideoH264SequenceParameterSet* pStdSPSs;
10246 uint32_t stdPPSCount;
10247 const StdVideoH264PictureParameterSet* pStdPPSs;
10248} VkVideoDecodeH264SessionParametersAddInfoKHR;
10249
10250typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR {
10251 VkStructureType sType;
10252 const void* pNext;
10253 uint32_t maxStdSPSCount;
10254 uint32_t maxStdPPSCount;
10255 const VkVideoDecodeH264SessionParametersAddInfoKHR* pParametersAddInfo;
10256} VkVideoDecodeH264SessionParametersCreateInfoKHR;
10257
10258typedef struct VkVideoDecodeH264PictureInfoKHR {
10259 VkStructureType sType;
10260 const void* pNext;
10261 const StdVideoDecodeH264PictureInfo* pStdPictureInfo;
10262 uint32_t sliceCount;
10263 const uint32_t* pSliceOffsets;
10264} VkVideoDecodeH264PictureInfoKHR;
10265
10266typedef struct VkVideoDecodeH264DpbSlotInfoKHR {
10267 VkStructureType sType;
10268 const void* pNext;
10269 const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo;
10270} VkVideoDecodeH264DpbSlotInfoKHR;
10271
10272
10273
10274// VK_KHR_dynamic_rendering is a preprocessor guard. Do not pass it to API calls.
10275#define VK_KHR_dynamic_rendering 1
10276#define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
10277#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
10278typedef VkRenderingFlags VkRenderingFlagsKHR;
10279
10280typedef VkRenderingFlagBits VkRenderingFlagBitsKHR;
10281
10282typedef VkRenderingInfo VkRenderingInfoKHR;
10283
10284typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
10285
10286typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
10287
10288typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
10289
10290typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
10291
10292typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
10293typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer commandBuffer);
10294
10295#ifndef VK_NO_PROTOTYPES
10296#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10297VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
10298 VkCommandBuffer commandBuffer,
10299 const VkRenderingInfo* pRenderingInfo);
10300#endif
10301
10302#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10303VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
10304 VkCommandBuffer commandBuffer);
10305#endif
10306#endif
10307
10308
10309// VK_KHR_multiview is a preprocessor guard. Do not pass it to API calls.
10310#define VK_KHR_multiview 1
10311#define VK_KHR_MULTIVIEW_SPEC_VERSION 1
10312#define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
10313typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
10314
10315typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
10316
10317typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
10318
10319
10320
10321// VK_KHR_get_physical_device_properties2 is a preprocessor guard. Do not pass it to API calls.
10322#define VK_KHR_get_physical_device_properties2 1
10323#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
10324#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
10325typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
10326
10327typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
10328
10329typedef VkFormatProperties2 VkFormatProperties2KHR;
10330
10331typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
10332
10333typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
10334
10335typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
10336
10337typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
10338
10339typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
10340
10341typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
10342
10343typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
10344typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
10345typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
10346typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
10347typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
10348typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
10349typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
10350
10351#ifndef VK_NO_PROTOTYPES
10352#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10353VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
10354 VkPhysicalDevice physicalDevice,
10355 VkPhysicalDeviceFeatures2* pFeatures);
10356#endif
10357
10358#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10359VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
10360 VkPhysicalDevice physicalDevice,
10361 VkPhysicalDeviceProperties2* pProperties);
10362#endif
10363
10364#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10365VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
10366 VkPhysicalDevice physicalDevice,
10367 VkFormat format,
10368 VkFormatProperties2* pFormatProperties);
10369#endif
10370
10371#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10372VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
10373 VkPhysicalDevice physicalDevice,
10374 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
10375 VkImageFormatProperties2* pImageFormatProperties);
10376#endif
10377
10378#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10379VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
10380 VkPhysicalDevice physicalDevice,
10381 uint32_t* pQueueFamilyPropertyCount,
10382 VkQueueFamilyProperties2* pQueueFamilyProperties);
10383#endif
10384
10385#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10386VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
10387 VkPhysicalDevice physicalDevice,
10388 VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
10389#endif
10390
10391#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10392VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
10393 VkPhysicalDevice physicalDevice,
10394 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
10395 uint32_t* pPropertyCount,
10396 VkSparseImageFormatProperties2* pProperties);
10397#endif
10398#endif
10399
10400
10401// VK_KHR_device_group is a preprocessor guard. Do not pass it to API calls.
10402#define VK_KHR_device_group 1
10403#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4
10404#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
10405typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
10406
10407typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
10408
10409typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
10410
10411typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
10412
10413typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
10414
10415typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
10416
10417typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
10418
10419typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
10420
10421typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
10422
10423typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
10424
10425typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
10426
10427typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
10428typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
10429typedef 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);
10430
10431#ifndef VK_NO_PROTOTYPES
10432#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10433VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
10434 VkDevice device,
10435 uint32_t heapIndex,
10436 uint32_t localDeviceIndex,
10437 uint32_t remoteDeviceIndex,
10438 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
10439#endif
10440
10441#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10442VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
10443 VkCommandBuffer commandBuffer,
10444 uint32_t deviceMask);
10445#endif
10446
10447#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10448VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
10449 VkCommandBuffer commandBuffer,
10450 uint32_t baseGroupX,
10451 uint32_t baseGroupY,
10452 uint32_t baseGroupZ,
10453 uint32_t groupCountX,
10454 uint32_t groupCountY,
10455 uint32_t groupCountZ);
10456#endif
10457#endif
10458
10459
10460// VK_KHR_shader_draw_parameters is a preprocessor guard. Do not pass it to API calls.
10461#define VK_KHR_shader_draw_parameters 1
10462#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
10463#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
10464
10465
10466// VK_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
10467#define VK_KHR_maintenance1 1
10468#define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
10469#define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
10470// VK_KHR_MAINTENANCE1_SPEC_VERSION is a legacy alias
10471#define VK_KHR_MAINTENANCE1_SPEC_VERSION VK_KHR_MAINTENANCE_1_SPEC_VERSION
10472// VK_KHR_MAINTENANCE1_EXTENSION_NAME is a legacy alias
10473#define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME
10474typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
10475
10476typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
10477
10478#ifndef VK_NO_PROTOTYPES
10479#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10480VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
10481 VkDevice device,
10482 VkCommandPool commandPool,
10483 VkCommandPoolTrimFlags flags);
10484#endif
10485#endif
10486
10487
10488// VK_KHR_device_group_creation is a preprocessor guard. Do not pass it to API calls.
10489#define VK_KHR_device_group_creation 1
10490#define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
10491#define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
10492#define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE
10493typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
10494
10495typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
10496
10497typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
10498
10499#ifndef VK_NO_PROTOTYPES
10500#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10501VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
10502 VkInstance instance,
10503 uint32_t* pPhysicalDeviceGroupCount,
10504 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
10505#endif
10506#endif
10507
10508
10509// VK_KHR_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
10510#define VK_KHR_external_memory_capabilities 1
10511#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
10512#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
10513#define VK_LUID_SIZE_KHR VK_LUID_SIZE
10514typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
10515
10516typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
10517
10518typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
10519
10520typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
10521
10522typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
10523
10524typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
10525
10526typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
10527
10528typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
10529
10530typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
10531
10532typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
10533
10534typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
10535
10536#ifndef VK_NO_PROTOTYPES
10537#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10538VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
10539 VkPhysicalDevice physicalDevice,
10540 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
10541 VkExternalBufferProperties* pExternalBufferProperties);
10542#endif
10543#endif
10544
10545
10546// VK_KHR_external_memory is a preprocessor guard. Do not pass it to API calls.
10547#define VK_KHR_external_memory 1
10548#define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
10549#define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
10550#define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL
10551typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
10552
10553typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
10554
10555typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
10556
10557
10558
10559// VK_KHR_external_memory_fd is a preprocessor guard. Do not pass it to API calls.
10560#define VK_KHR_external_memory_fd 1
10561#define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
10562#define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
10563typedef struct VkImportMemoryFdInfoKHR {
10564 VkStructureType sType;
10565 const void* pNext;
10566 VkExternalMemoryHandleTypeFlagBits handleType;
10567 int fd;
10568} VkImportMemoryFdInfoKHR;
10569
10570typedef struct VkMemoryFdPropertiesKHR {
10571 VkStructureType sType;
10572 void* pNext;
10573 uint32_t memoryTypeBits;
10574} VkMemoryFdPropertiesKHR;
10575
10576typedef struct VkMemoryGetFdInfoKHR {
10577 VkStructureType sType;
10578 const void* pNext;
10579 VkDeviceMemory memory;
10580 VkExternalMemoryHandleTypeFlagBits handleType;
10581} VkMemoryGetFdInfoKHR;
10582
10583typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
10584typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
10585
10586#ifndef VK_NO_PROTOTYPES
10587#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10588VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
10589 VkDevice device,
10590 const VkMemoryGetFdInfoKHR* pGetFdInfo,
10591 int* pFd);
10592#endif
10593
10594#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10595VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
10596 VkDevice device,
10597 VkExternalMemoryHandleTypeFlagBits handleType,
10598 int fd,
10599 VkMemoryFdPropertiesKHR* pMemoryFdProperties);
10600#endif
10601#endif
10602
10603
10604// VK_KHR_external_semaphore_capabilities is a preprocessor guard. Do not pass it to API calls.
10605#define VK_KHR_external_semaphore_capabilities 1
10606#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
10607#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
10608typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
10609
10610typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
10611
10612typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
10613
10614typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
10615
10616typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
10617
10618typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
10619
10620typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
10621
10622#ifndef VK_NO_PROTOTYPES
10623#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10624VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
10625 VkPhysicalDevice physicalDevice,
10626 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
10627 VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
10628#endif
10629#endif
10630
10631
10632// VK_KHR_external_semaphore is a preprocessor guard. Do not pass it to API calls.
10633#define VK_KHR_external_semaphore 1
10634#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
10635#define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
10636typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
10637
10638typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
10639
10640typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
10641
10642
10643
10644// VK_KHR_external_semaphore_fd is a preprocessor guard. Do not pass it to API calls.
10645#define VK_KHR_external_semaphore_fd 1
10646#define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
10647#define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
10648typedef struct VkImportSemaphoreFdInfoKHR {
10649 VkStructureType sType;
10650 const void* pNext;
10651 VkSemaphore semaphore;
10652 VkSemaphoreImportFlags flags;
10653 VkExternalSemaphoreHandleTypeFlagBits handleType;
10654 int fd;
10655} VkImportSemaphoreFdInfoKHR;
10656
10657typedef struct VkSemaphoreGetFdInfoKHR {
10658 VkStructureType sType;
10659 const void* pNext;
10660 VkSemaphore semaphore;
10661 VkExternalSemaphoreHandleTypeFlagBits handleType;
10662} VkSemaphoreGetFdInfoKHR;
10663
10664typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
10665typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
10666
10667#ifndef VK_NO_PROTOTYPES
10668#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10669VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
10670 VkDevice device,
10671 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
10672#endif
10673
10674#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10675VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
10676 VkDevice device,
10677 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
10678 int* pFd);
10679#endif
10680#endif
10681
10682
10683// VK_KHR_push_descriptor is a preprocessor guard. Do not pass it to API calls.
10684#define VK_KHR_push_descriptor 1
10685#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
10686#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
10687typedef VkPhysicalDevicePushDescriptorProperties VkPhysicalDevicePushDescriptorPropertiesKHR;
10688
10689typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
10690typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
10691
10692#ifndef VK_NO_PROTOTYPES
10693#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10694VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
10695 VkCommandBuffer commandBuffer,
10696 VkPipelineBindPoint pipelineBindPoint,
10697 VkPipelineLayout layout,
10698 uint32_t set,
10699 uint32_t descriptorWriteCount,
10700 const VkWriteDescriptorSet* pDescriptorWrites);
10701#endif
10702
10703#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10704VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
10705 VkCommandBuffer commandBuffer,
10706 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10707 VkPipelineLayout layout,
10708 uint32_t set,
10709 const void* pData);
10710#endif
10711#endif
10712
10713
10714// VK_KHR_shader_float16_int8 is a preprocessor guard. Do not pass it to API calls.
10715#define VK_KHR_shader_float16_int8 1
10716#define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
10717#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
10718typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
10719
10720typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
10721
10722
10723
10724// VK_KHR_16bit_storage is a preprocessor guard. Do not pass it to API calls.
10725#define VK_KHR_16bit_storage 1
10726#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
10727#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
10728typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
10729
10730
10731
10732// VK_KHR_incremental_present is a preprocessor guard. Do not pass it to API calls.
10733#define VK_KHR_incremental_present 1
10734#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
10735#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
10736typedef struct VkRectLayerKHR {
10737 VkOffset2D offset;
10738 VkExtent2D extent;
10739 uint32_t layer;
10740} VkRectLayerKHR;
10741
10742typedef struct VkPresentRegionKHR {
10743 uint32_t rectangleCount;
10744 const VkRectLayerKHR* pRectangles;
10745} VkPresentRegionKHR;
10746
10747typedef struct VkPresentRegionsKHR {
10748 VkStructureType sType;
10749 const void* pNext;
10750 uint32_t swapchainCount;
10751 const VkPresentRegionKHR* pRegions;
10752} VkPresentRegionsKHR;
10753
10754
10755
10756// VK_KHR_descriptor_update_template is a preprocessor guard. Do not pass it to API calls.
10757#define VK_KHR_descriptor_update_template 1
10758typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
10759
10760#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
10761#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
10762typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
10763
10764typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
10765
10766typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
10767
10768typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
10769
10770typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
10771typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
10772typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
10773
10774#ifndef VK_NO_PROTOTYPES
10775#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10776VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
10777 VkDevice device,
10778 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
10779 const VkAllocationCallbacks* pAllocator,
10780 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
10781#endif
10782
10783#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10784VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
10785 VkDevice device,
10786 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10787 const VkAllocationCallbacks* pAllocator);
10788#endif
10789
10790#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10791VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
10792 VkDevice device,
10793 VkDescriptorSet descriptorSet,
10794 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10795 const void* pData);
10796#endif
10797#endif
10798
10799
10800// VK_KHR_imageless_framebuffer is a preprocessor guard. Do not pass it to API calls.
10801#define VK_KHR_imageless_framebuffer 1
10802#define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
10803#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
10804typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
10805
10806typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
10807
10808typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
10809
10810typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
10811
10812
10813
10814// VK_KHR_create_renderpass2 is a preprocessor guard. Do not pass it to API calls.
10815#define VK_KHR_create_renderpass2 1
10816#define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
10817#define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
10818typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
10819
10820typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
10821
10822typedef VkAttachmentReference2 VkAttachmentReference2KHR;
10823
10824typedef VkSubpassDescription2 VkSubpassDescription2KHR;
10825
10826typedef VkSubpassDependency2 VkSubpassDependency2KHR;
10827
10828typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
10829
10830typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
10831
10832typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
10833typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
10834typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
10835typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
10836
10837#ifndef VK_NO_PROTOTYPES
10838#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10839VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
10840 VkDevice device,
10841 const VkRenderPassCreateInfo2* pCreateInfo,
10842 const VkAllocationCallbacks* pAllocator,
10843 VkRenderPass* pRenderPass);
10844#endif
10845
10846#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10847VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
10848 VkCommandBuffer commandBuffer,
10849 const VkRenderPassBeginInfo* pRenderPassBegin,
10850 const VkSubpassBeginInfo* pSubpassBeginInfo);
10851#endif
10852
10853#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10854VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
10855 VkCommandBuffer commandBuffer,
10856 const VkSubpassBeginInfo* pSubpassBeginInfo,
10857 const VkSubpassEndInfo* pSubpassEndInfo);
10858#endif
10859
10860#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10861VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
10862 VkCommandBuffer commandBuffer,
10863 const VkSubpassEndInfo* pSubpassEndInfo);
10864#endif
10865#endif
10866
10867
10868// VK_KHR_shared_presentable_image is a preprocessor guard. Do not pass it to API calls.
10869#define VK_KHR_shared_presentable_image 1
10870#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
10871#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
10872typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
10873 VkStructureType sType;
10874 void* pNext;
10875 VkImageUsageFlags sharedPresentSupportedUsageFlags;
10876} VkSharedPresentSurfaceCapabilitiesKHR;
10877
10878typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
10879
10880#ifndef VK_NO_PROTOTYPES
10881#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10882VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
10883 VkDevice device,
10884 VkSwapchainKHR swapchain);
10885#endif
10886#endif
10887
10888
10889// VK_KHR_external_fence_capabilities is a preprocessor guard. Do not pass it to API calls.
10890#define VK_KHR_external_fence_capabilities 1
10891#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
10892#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
10893typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
10894
10895typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
10896
10897typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
10898
10899typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
10900
10901typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
10902
10903typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
10904
10905typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
10906
10907#ifndef VK_NO_PROTOTYPES
10908#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10909VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
10910 VkPhysicalDevice physicalDevice,
10911 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
10912 VkExternalFenceProperties* pExternalFenceProperties);
10913#endif
10914#endif
10915
10916
10917// VK_KHR_external_fence is a preprocessor guard. Do not pass it to API calls.
10918#define VK_KHR_external_fence 1
10919#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
10920#define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
10921typedef VkFenceImportFlags VkFenceImportFlagsKHR;
10922
10923typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
10924
10925typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
10926
10927
10928
10929// VK_KHR_external_fence_fd is a preprocessor guard. Do not pass it to API calls.
10930#define VK_KHR_external_fence_fd 1
10931#define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
10932#define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
10933typedef struct VkImportFenceFdInfoKHR {
10934 VkStructureType sType;
10935 const void* pNext;
10936 VkFence fence;
10937 VkFenceImportFlags flags;
10938 VkExternalFenceHandleTypeFlagBits handleType;
10939 int fd;
10940} VkImportFenceFdInfoKHR;
10941
10942typedef struct VkFenceGetFdInfoKHR {
10943 VkStructureType sType;
10944 const void* pNext;
10945 VkFence fence;
10946 VkExternalFenceHandleTypeFlagBits handleType;
10947} VkFenceGetFdInfoKHR;
10948
10949typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
10950typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
10951
10952#ifndef VK_NO_PROTOTYPES
10953#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10954VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
10955 VkDevice device,
10956 const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
10957#endif
10958
10959#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10960VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
10961 VkDevice device,
10962 const VkFenceGetFdInfoKHR* pGetFdInfo,
10963 int* pFd);
10964#endif
10965#endif
10966
10967
10968// VK_KHR_performance_query is a preprocessor guard. Do not pass it to API calls.
10969#define VK_KHR_performance_query 1
10970#define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
10971#define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
10972
10973typedef enum VkPerformanceCounterUnitKHR {
10974 VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
10975 VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
10976 VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
10977 VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
10978 VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
10979 VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
10980 VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
10981 VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
10982 VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
10983 VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
10984 VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
10985 VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
10986} VkPerformanceCounterUnitKHR;
10987
10988typedef enum VkPerformanceCounterScopeKHR {
10989 VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
10990 VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
10991 VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
10992 // VK_QUERY_SCOPE_COMMAND_BUFFER_KHR is a legacy alias
10993 VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
10994 // VK_QUERY_SCOPE_RENDER_PASS_KHR is a legacy alias
10995 VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
10996 // VK_QUERY_SCOPE_COMMAND_KHR is a legacy alias
10997 VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
10998 VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
10999} VkPerformanceCounterScopeKHR;
11000
11001typedef enum VkPerformanceCounterStorageKHR {
11002 VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
11003 VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
11004 VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
11005 VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
11006 VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
11007 VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
11008 VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
11009} VkPerformanceCounterStorageKHR;
11010
11011typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
11012 VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001,
11013 VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002,
11014 // VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR is a legacy alias
11015 VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
11016 // VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR is a legacy alias
11017 VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
11018 VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11019} VkPerformanceCounterDescriptionFlagBitsKHR;
11020typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
11021
11022typedef enum VkAcquireProfilingLockFlagBitsKHR {
11023 VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11024} VkAcquireProfilingLockFlagBitsKHR;
11025typedef VkFlags VkAcquireProfilingLockFlagsKHR;
11026typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
11027 VkStructureType sType;
11028 void* pNext;
11029 VkBool32 performanceCounterQueryPools;
11030 VkBool32 performanceCounterMultipleQueryPools;
11031} VkPhysicalDevicePerformanceQueryFeaturesKHR;
11032
11033typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
11034 VkStructureType sType;
11035 void* pNext;
11036 VkBool32 allowCommandBufferQueryCopies;
11037} VkPhysicalDevicePerformanceQueryPropertiesKHR;
11038
11039typedef struct VkPerformanceCounterKHR {
11040 VkStructureType sType;
11041 void* pNext;
11042 VkPerformanceCounterUnitKHR unit;
11043 VkPerformanceCounterScopeKHR scope;
11044 VkPerformanceCounterStorageKHR storage;
11045 uint8_t uuid[VK_UUID_SIZE];
11046} VkPerformanceCounterKHR;
11047
11048typedef struct VkPerformanceCounterDescriptionKHR {
11049 VkStructureType sType;
11050 void* pNext;
11051 VkPerformanceCounterDescriptionFlagsKHR flags;
11052 char name[VK_MAX_DESCRIPTION_SIZE];
11053 char category[VK_MAX_DESCRIPTION_SIZE];
11054 char description[VK_MAX_DESCRIPTION_SIZE];
11055} VkPerformanceCounterDescriptionKHR;
11056
11057typedef struct VkQueryPoolPerformanceCreateInfoKHR {
11058 VkStructureType sType;
11059 const void* pNext;
11060 uint32_t queueFamilyIndex;
11061 uint32_t counterIndexCount;
11062 const uint32_t* pCounterIndices;
11063} VkQueryPoolPerformanceCreateInfoKHR;
11064
11065typedef union VkPerformanceCounterResultKHR {
11066 int32_t int32;
11067 int64_t int64;
11068 uint32_t uint32;
11069 uint64_t uint64;
11070 float float32;
11071 double float64;
11072} VkPerformanceCounterResultKHR;
11073
11074typedef struct VkAcquireProfilingLockInfoKHR {
11075 VkStructureType sType;
11076 const void* pNext;
11077 VkAcquireProfilingLockFlagsKHR flags;
11078 uint64_t timeout;
11079} VkAcquireProfilingLockInfoKHR;
11080
11081typedef struct VkPerformanceQuerySubmitInfoKHR {
11082 VkStructureType sType;
11083 const void* pNext;
11084 uint32_t counterPassIndex;
11085} VkPerformanceQuerySubmitInfoKHR;
11086
11087typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
11088typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
11089typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
11090typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
11091
11092#ifndef VK_NO_PROTOTYPES
11093#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11094VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
11095 VkPhysicalDevice physicalDevice,
11096 uint32_t queueFamilyIndex,
11097 uint32_t* pCounterCount,
11098 VkPerformanceCounterKHR* pCounters,
11099 VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
11100#endif
11101
11102#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11103VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
11104 VkPhysicalDevice physicalDevice,
11105 const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
11106 uint32_t* pNumPasses);
11107#endif
11108
11109#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11110VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
11111 VkDevice device,
11112 const VkAcquireProfilingLockInfoKHR* pInfo);
11113#endif
11114
11115#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11116VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
11117 VkDevice device);
11118#endif
11119#endif
11120
11121
11122// VK_KHR_maintenance2 is a preprocessor guard. Do not pass it to API calls.
11123#define VK_KHR_maintenance2 1
11124#define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
11125#define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
11126// VK_KHR_MAINTENANCE2_SPEC_VERSION is a legacy alias
11127#define VK_KHR_MAINTENANCE2_SPEC_VERSION VK_KHR_MAINTENANCE_2_SPEC_VERSION
11128// VK_KHR_MAINTENANCE2_EXTENSION_NAME is a legacy alias
11129#define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME
11130typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
11131
11132typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
11133
11134typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
11135
11136typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
11137
11138typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
11139
11140typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
11141
11142typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
11143
11144
11145
11146// VK_KHR_get_surface_capabilities2 is a preprocessor guard. Do not pass it to API calls.
11147#define VK_KHR_get_surface_capabilities2 1
11148#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
11149#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
11150typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
11151 VkStructureType sType;
11152 const void* pNext;
11153 VkSurfaceKHR surface;
11154} VkPhysicalDeviceSurfaceInfo2KHR;
11155
11156typedef struct VkSurfaceCapabilities2KHR {
11157 VkStructureType sType;
11158 void* pNext;
11159 VkSurfaceCapabilitiesKHR surfaceCapabilities;
11160} VkSurfaceCapabilities2KHR;
11161
11162typedef struct VkSurfaceFormat2KHR {
11163 VkStructureType sType;
11164 void* pNext;
11165 VkSurfaceFormatKHR surfaceFormat;
11166} VkSurfaceFormat2KHR;
11167
11168typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
11169typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
11170
11171#ifndef VK_NO_PROTOTYPES
11172#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11173VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
11174 VkPhysicalDevice physicalDevice,
11175 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11176 VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
11177#endif
11178
11179#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11180VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
11181 VkPhysicalDevice physicalDevice,
11182 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11183 uint32_t* pSurfaceFormatCount,
11184 VkSurfaceFormat2KHR* pSurfaceFormats);
11185#endif
11186#endif
11187
11188
11189// VK_KHR_variable_pointers is a preprocessor guard. Do not pass it to API calls.
11190#define VK_KHR_variable_pointers 1
11191#define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
11192#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
11193typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
11194
11195typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
11196
11197
11198
11199// VK_KHR_get_display_properties2 is a preprocessor guard. Do not pass it to API calls.
11200#define VK_KHR_get_display_properties2 1
11201#define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
11202#define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
11203typedef struct VkDisplayProperties2KHR {
11204 VkStructureType sType;
11205 void* pNext;
11206 VkDisplayPropertiesKHR displayProperties;
11207} VkDisplayProperties2KHR;
11208
11209typedef struct VkDisplayPlaneProperties2KHR {
11210 VkStructureType sType;
11211 void* pNext;
11212 VkDisplayPlanePropertiesKHR displayPlaneProperties;
11213} VkDisplayPlaneProperties2KHR;
11214
11215typedef struct VkDisplayModeProperties2KHR {
11216 VkStructureType sType;
11217 void* pNext;
11218 VkDisplayModePropertiesKHR displayModeProperties;
11219} VkDisplayModeProperties2KHR;
11220
11221typedef struct VkDisplayPlaneInfo2KHR {
11222 VkStructureType sType;
11223 const void* pNext;
11224 VkDisplayModeKHR mode;
11225 uint32_t planeIndex;
11226} VkDisplayPlaneInfo2KHR;
11227
11228typedef struct VkDisplayPlaneCapabilities2KHR {
11229 VkStructureType sType;
11230 void* pNext;
11231 VkDisplayPlaneCapabilitiesKHR capabilities;
11232} VkDisplayPlaneCapabilities2KHR;
11233
11234typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
11235typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
11236typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
11237typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
11238
11239#ifndef VK_NO_PROTOTYPES
11240#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11241VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
11242 VkPhysicalDevice physicalDevice,
11243 uint32_t* pPropertyCount,
11244 VkDisplayProperties2KHR* pProperties);
11245#endif
11246
11247#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11248VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
11249 VkPhysicalDevice physicalDevice,
11250 uint32_t* pPropertyCount,
11251 VkDisplayPlaneProperties2KHR* pProperties);
11252#endif
11253
11254#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11255VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
11256 VkPhysicalDevice physicalDevice,
11257 VkDisplayKHR display,
11258 uint32_t* pPropertyCount,
11259 VkDisplayModeProperties2KHR* pProperties);
11260#endif
11261
11262#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11263VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
11264 VkPhysicalDevice physicalDevice,
11265 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
11266 VkDisplayPlaneCapabilities2KHR* pCapabilities);
11267#endif
11268#endif
11269
11270
11271// VK_KHR_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
11272#define VK_KHR_dedicated_allocation 1
11273#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
11274#define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
11275typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
11276
11277typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
11278
11279
11280
11281// VK_KHR_storage_buffer_storage_class is a preprocessor guard. Do not pass it to API calls.
11282#define VK_KHR_storage_buffer_storage_class 1
11283#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
11284#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
11285
11286
11287// VK_KHR_shader_bfloat16 is a preprocessor guard. Do not pass it to API calls.
11288#define VK_KHR_shader_bfloat16 1
11289#define VK_KHR_SHADER_BFLOAT16_SPEC_VERSION 1
11290#define VK_KHR_SHADER_BFLOAT16_EXTENSION_NAME "VK_KHR_shader_bfloat16"
11291typedef struct VkPhysicalDeviceShaderBfloat16FeaturesKHR {
11292 VkStructureType sType;
11293 void* pNext;
11294 VkBool32 shaderBFloat16Type;
11295 VkBool32 shaderBFloat16DotProduct;
11296 VkBool32 shaderBFloat16CooperativeMatrix;
11297} VkPhysicalDeviceShaderBfloat16FeaturesKHR;
11298
11299
11300
11301// VK_KHR_relaxed_block_layout is a preprocessor guard. Do not pass it to API calls.
11302#define VK_KHR_relaxed_block_layout 1
11303#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
11304#define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
11305
11306
11307// VK_KHR_get_memory_requirements2 is a preprocessor guard. Do not pass it to API calls.
11308#define VK_KHR_get_memory_requirements2 1
11309#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
11310#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
11311typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
11312
11313typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
11314
11315typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
11316
11317typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
11318
11319typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
11320
11321typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11322typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11323typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11324
11325#ifndef VK_NO_PROTOTYPES
11326#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11327VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
11328 VkDevice device,
11329 const VkImageMemoryRequirementsInfo2* pInfo,
11330 VkMemoryRequirements2* pMemoryRequirements);
11331#endif
11332
11333#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11334VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
11335 VkDevice device,
11336 const VkBufferMemoryRequirementsInfo2* pInfo,
11337 VkMemoryRequirements2* pMemoryRequirements);
11338#endif
11339
11340#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11341VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
11342 VkDevice device,
11343 const VkImageSparseMemoryRequirementsInfo2* pInfo,
11344 uint32_t* pSparseMemoryRequirementCount,
11345 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11346#endif
11347#endif
11348
11349
11350// VK_KHR_image_format_list is a preprocessor guard. Do not pass it to API calls.
11351#define VK_KHR_image_format_list 1
11352#define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
11353#define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
11354typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
11355
11356
11357
11358// VK_KHR_sampler_ycbcr_conversion is a preprocessor guard. Do not pass it to API calls.
11359#define VK_KHR_sampler_ycbcr_conversion 1
11360typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
11361
11362#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
11363#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
11364typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
11365
11366typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
11367
11368typedef VkChromaLocation VkChromaLocationKHR;
11369
11370typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
11371
11372typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
11373
11374typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
11375
11376typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
11377
11378typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
11379
11380typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
11381
11382typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
11383typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
11384
11385#ifndef VK_NO_PROTOTYPES
11386#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11387VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
11388 VkDevice device,
11389 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
11390 const VkAllocationCallbacks* pAllocator,
11391 VkSamplerYcbcrConversion* pYcbcrConversion);
11392#endif
11393
11394#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11395VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
11396 VkDevice device,
11397 VkSamplerYcbcrConversion ycbcrConversion,
11398 const VkAllocationCallbacks* pAllocator);
11399#endif
11400#endif
11401
11402
11403// VK_KHR_bind_memory2 is a preprocessor guard. Do not pass it to API calls.
11404#define VK_KHR_bind_memory2 1
11405#define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
11406#define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
11407typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
11408
11409typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
11410
11411typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
11412typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
11413
11414#ifndef VK_NO_PROTOTYPES
11415#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11416VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
11417 VkDevice device,
11418 uint32_t bindInfoCount,
11419 const VkBindBufferMemoryInfo* pBindInfos);
11420#endif
11421
11422#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11423VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
11424 VkDevice device,
11425 uint32_t bindInfoCount,
11426 const VkBindImageMemoryInfo* pBindInfos);
11427#endif
11428#endif
11429
11430
11431// VK_KHR_maintenance3 is a preprocessor guard. Do not pass it to API calls.
11432#define VK_KHR_maintenance3 1
11433#define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
11434#define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
11435// VK_KHR_MAINTENANCE3_SPEC_VERSION is a legacy alias
11436#define VK_KHR_MAINTENANCE3_SPEC_VERSION VK_KHR_MAINTENANCE_3_SPEC_VERSION
11437// VK_KHR_MAINTENANCE3_EXTENSION_NAME is a legacy alias
11438#define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME
11439typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
11440
11441typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
11442
11443typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
11444
11445#ifndef VK_NO_PROTOTYPES
11446#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11447VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
11448 VkDevice device,
11449 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
11450 VkDescriptorSetLayoutSupport* pSupport);
11451#endif
11452#endif
11453
11454
11455// VK_KHR_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
11456#define VK_KHR_draw_indirect_count 1
11457#define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
11458#define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
11459typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
11460typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
11461
11462#ifndef VK_NO_PROTOTYPES
11463#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11464VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
11465 VkCommandBuffer commandBuffer,
11466 VkBuffer buffer,
11467 VkDeviceSize offset,
11468 VkBuffer countBuffer,
11469 VkDeviceSize countBufferOffset,
11470 uint32_t maxDrawCount,
11471 uint32_t stride);
11472#endif
11473
11474#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11475VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
11476 VkCommandBuffer commandBuffer,
11477 VkBuffer buffer,
11478 VkDeviceSize offset,
11479 VkBuffer countBuffer,
11480 VkDeviceSize countBufferOffset,
11481 uint32_t maxDrawCount,
11482 uint32_t stride);
11483#endif
11484#endif
11485
11486
11487// VK_KHR_shader_subgroup_extended_types is a preprocessor guard. Do not pass it to API calls.
11488#define VK_KHR_shader_subgroup_extended_types 1
11489#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
11490#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
11491typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
11492
11493
11494
11495// VK_KHR_8bit_storage is a preprocessor guard. Do not pass it to API calls.
11496#define VK_KHR_8bit_storage 1
11497#define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
11498#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
11499typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
11500
11501
11502
11503// VK_KHR_shader_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
11504#define VK_KHR_shader_atomic_int64 1
11505#define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
11506#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
11507typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
11508
11509
11510
11511// VK_KHR_shader_clock is a preprocessor guard. Do not pass it to API calls.
11512#define VK_KHR_shader_clock 1
11513#define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1
11514#define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
11515typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
11516 VkStructureType sType;
11517 void* pNext;
11518 VkBool32 shaderSubgroupClock;
11519 VkBool32 shaderDeviceClock;
11520} VkPhysicalDeviceShaderClockFeaturesKHR;
11521
11522
11523
11524// VK_KHR_video_decode_h265 is a preprocessor guard. Do not pass it to API calls.
11525#define VK_KHR_video_decode_h265 1
11526#include "vk_video/vulkan_video_codec_h265std_decode.h"
11527#define VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION 8
11528#define VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME "VK_KHR_video_decode_h265"
11529typedef struct VkVideoDecodeH265ProfileInfoKHR {
11530 VkStructureType sType;
11531 const void* pNext;
11532 StdVideoH265ProfileIdc stdProfileIdc;
11533} VkVideoDecodeH265ProfileInfoKHR;
11534
11535typedef struct VkVideoDecodeH265CapabilitiesKHR {
11536 VkStructureType sType;
11537 void* pNext;
11538 StdVideoH265LevelIdc maxLevelIdc;
11539} VkVideoDecodeH265CapabilitiesKHR;
11540
11541typedef struct VkVideoDecodeH265SessionParametersAddInfoKHR {
11542 VkStructureType sType;
11543 const void* pNext;
11544 uint32_t stdVPSCount;
11545 const StdVideoH265VideoParameterSet* pStdVPSs;
11546 uint32_t stdSPSCount;
11547 const StdVideoH265SequenceParameterSet* pStdSPSs;
11548 uint32_t stdPPSCount;
11549 const StdVideoH265PictureParameterSet* pStdPPSs;
11550} VkVideoDecodeH265SessionParametersAddInfoKHR;
11551
11552typedef struct VkVideoDecodeH265SessionParametersCreateInfoKHR {
11553 VkStructureType sType;
11554 const void* pNext;
11555 uint32_t maxStdVPSCount;
11556 uint32_t maxStdSPSCount;
11557 uint32_t maxStdPPSCount;
11558 const VkVideoDecodeH265SessionParametersAddInfoKHR* pParametersAddInfo;
11559} VkVideoDecodeH265SessionParametersCreateInfoKHR;
11560
11561typedef struct VkVideoDecodeH265PictureInfoKHR {
11562 VkStructureType sType;
11563 const void* pNext;
11564 const StdVideoDecodeH265PictureInfo* pStdPictureInfo;
11565 uint32_t sliceSegmentCount;
11566 const uint32_t* pSliceSegmentOffsets;
11567} VkVideoDecodeH265PictureInfoKHR;
11568
11569typedef struct VkVideoDecodeH265DpbSlotInfoKHR {
11570 VkStructureType sType;
11571 const void* pNext;
11572 const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo;
11573} VkVideoDecodeH265DpbSlotInfoKHR;
11574
11575
11576
11577// VK_KHR_global_priority is a preprocessor guard. Do not pass it to API calls.
11578#define VK_KHR_global_priority 1
11579#define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
11580#define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
11581#define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR VK_MAX_GLOBAL_PRIORITY_SIZE
11582typedef VkQueueGlobalPriority VkQueueGlobalPriorityKHR;
11583
11584typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoKHR;
11585
11586typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
11587
11588typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesKHR;
11589
11590
11591
11592// VK_KHR_driver_properties is a preprocessor guard. Do not pass it to API calls.
11593#define VK_KHR_driver_properties 1
11594#define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
11595#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
11596#define VK_MAX_DRIVER_NAME_SIZE_KHR VK_MAX_DRIVER_NAME_SIZE
11597#define VK_MAX_DRIVER_INFO_SIZE_KHR VK_MAX_DRIVER_INFO_SIZE
11598typedef VkDriverId VkDriverIdKHR;
11599
11600typedef VkConformanceVersion VkConformanceVersionKHR;
11601
11602typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
11603
11604
11605
11606// VK_KHR_shader_float_controls is a preprocessor guard. Do not pass it to API calls.
11607#define VK_KHR_shader_float_controls 1
11608#define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
11609#define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
11610typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
11611
11612typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
11613
11614
11615
11616// VK_KHR_depth_stencil_resolve is a preprocessor guard. Do not pass it to API calls.
11617#define VK_KHR_depth_stencil_resolve 1
11618#define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
11619#define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
11620typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
11621
11622typedef VkResolveModeFlags VkResolveModeFlagsKHR;
11623
11624typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
11625
11626typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
11627
11628
11629
11630// VK_KHR_swapchain_mutable_format is a preprocessor guard. Do not pass it to API calls.
11631#define VK_KHR_swapchain_mutable_format 1
11632#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
11633#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
11634
11635
11636// VK_KHR_timeline_semaphore is a preprocessor guard. Do not pass it to API calls.
11637#define VK_KHR_timeline_semaphore 1
11638#define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
11639#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
11640typedef VkSemaphoreType VkSemaphoreTypeKHR;
11641
11642typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
11643
11644typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
11645
11646typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
11647
11648typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
11649
11650typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
11651
11652typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
11653
11654typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
11655
11656typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
11657
11658typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
11659typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
11660typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
11661
11662#ifndef VK_NO_PROTOTYPES
11663#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11664VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
11665 VkDevice device,
11666 VkSemaphore semaphore,
11667 uint64_t* pValue);
11668#endif
11669
11670#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11671VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
11672 VkDevice device,
11673 const VkSemaphoreWaitInfo* pWaitInfo,
11674 uint64_t timeout);
11675#endif
11676
11677#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11678VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
11679 VkDevice device,
11680 const VkSemaphoreSignalInfo* pSignalInfo);
11681#endif
11682#endif
11683
11684
11685// VK_KHR_vulkan_memory_model is a preprocessor guard. Do not pass it to API calls.
11686#define VK_KHR_vulkan_memory_model 1
11687#define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
11688#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
11689typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
11690
11691
11692
11693// VK_KHR_shader_terminate_invocation is a preprocessor guard. Do not pass it to API calls.
11694#define VK_KHR_shader_terminate_invocation 1
11695#define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
11696#define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
11697typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
11698
11699
11700
11701// VK_KHR_fragment_shading_rate is a preprocessor guard. Do not pass it to API calls.
11702#define VK_KHR_fragment_shading_rate 1
11703#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
11704#define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
11705
11706typedef enum VkFragmentShadingRateCombinerOpKHR {
11707 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
11708 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
11709 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
11710 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
11711 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
11712 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
11713} VkFragmentShadingRateCombinerOpKHR;
11714typedef struct VkFragmentShadingRateAttachmentInfoKHR {
11715 VkStructureType sType;
11716 const void* pNext;
11717 const VkAttachmentReference2* pFragmentShadingRateAttachment;
11718 VkExtent2D shadingRateAttachmentTexelSize;
11719} VkFragmentShadingRateAttachmentInfoKHR;
11720
11721typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
11722 VkStructureType sType;
11723 const void* pNext;
11724 VkExtent2D fragmentSize;
11725 VkFragmentShadingRateCombinerOpKHR combinerOps[2];
11726} VkPipelineFragmentShadingRateStateCreateInfoKHR;
11727
11728typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
11729 VkStructureType sType;
11730 void* pNext;
11731 VkBool32 pipelineFragmentShadingRate;
11732 VkBool32 primitiveFragmentShadingRate;
11733 VkBool32 attachmentFragmentShadingRate;
11734} VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
11735
11736typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
11737 VkStructureType sType;
11738 void* pNext;
11739 VkExtent2D minFragmentShadingRateAttachmentTexelSize;
11740 VkExtent2D maxFragmentShadingRateAttachmentTexelSize;
11741 uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
11742 VkBool32 primitiveFragmentShadingRateWithMultipleViewports;
11743 VkBool32 layeredShadingRateAttachments;
11744 VkBool32 fragmentShadingRateNonTrivialCombinerOps;
11745 VkExtent2D maxFragmentSize;
11746 uint32_t maxFragmentSizeAspectRatio;
11747 uint32_t maxFragmentShadingRateCoverageSamples;
11748 VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples;
11749 VkBool32 fragmentShadingRateWithShaderDepthStencilWrites;
11750 VkBool32 fragmentShadingRateWithSampleMask;
11751 VkBool32 fragmentShadingRateWithShaderSampleMask;
11752 VkBool32 fragmentShadingRateWithConservativeRasterization;
11753 VkBool32 fragmentShadingRateWithFragmentShaderInterlock;
11754 VkBool32 fragmentShadingRateWithCustomSampleLocations;
11755 VkBool32 fragmentShadingRateStrictMultiplyCombiner;
11756} VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
11757
11758typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
11759 VkStructureType sType;
11760 void* pNext;
11761 VkSampleCountFlags sampleCounts;
11762 VkExtent2D fragmentSize;
11763} VkPhysicalDeviceFragmentShadingRateKHR;
11764
11765typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
11766 VkStructureType sType;
11767 const void* pNext;
11768 VkImageView imageView;
11769 VkImageLayout imageLayout;
11770 VkExtent2D shadingRateAttachmentTexelSize;
11771} VkRenderingFragmentShadingRateAttachmentInfoKHR;
11772
11773typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
11774typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
11775
11776#ifndef VK_NO_PROTOTYPES
11777#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11778VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
11779 VkPhysicalDevice physicalDevice,
11780 uint32_t* pFragmentShadingRateCount,
11781 VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
11782#endif
11783
11784#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11785VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
11786 VkCommandBuffer commandBuffer,
11787 const VkExtent2D* pFragmentSize,
11788 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
11789#endif
11790#endif
11791
11792
11793// VK_KHR_shader_constant_data is a preprocessor guard. Do not pass it to API calls.
11794#define VK_KHR_shader_constant_data 1
11795#define VK_KHR_SHADER_CONSTANT_DATA_SPEC_VERSION 1
11796#define VK_KHR_SHADER_CONSTANT_DATA_EXTENSION_NAME "VK_KHR_shader_constant_data"
11797typedef struct VkPhysicalDeviceShaderConstantDataFeaturesKHR {
11798 VkStructureType sType;
11799 void* pNext;
11800 VkBool32 shaderConstantData;
11801} VkPhysicalDeviceShaderConstantDataFeaturesKHR;
11802
11803
11804
11805// VK_KHR_dynamic_rendering_local_read is a preprocessor guard. Do not pass it to API calls.
11806#define VK_KHR_dynamic_rendering_local_read 1
11807#define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION 1
11808#define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME "VK_KHR_dynamic_rendering_local_read"
11809typedef VkPhysicalDeviceDynamicRenderingLocalReadFeatures VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR;
11810
11811typedef VkRenderingAttachmentLocationInfo VkRenderingAttachmentLocationInfoKHR;
11812
11813typedef VkRenderingInputAttachmentIndexInfo VkRenderingInputAttachmentIndexInfoKHR;
11814
11815typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocationsKHR)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
11816typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
11817
11818#ifndef VK_NO_PROTOTYPES
11819#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11820VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocationsKHR(
11821 VkCommandBuffer commandBuffer,
11822 const VkRenderingAttachmentLocationInfo* pLocationInfo);
11823#endif
11824
11825#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11826VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndicesKHR(
11827 VkCommandBuffer commandBuffer,
11828 const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
11829#endif
11830#endif
11831
11832
11833// VK_KHR_shader_abort is a preprocessor guard. Do not pass it to API calls.
11834#define VK_KHR_shader_abort 1
11835#define VK_KHR_SHADER_ABORT_SPEC_VERSION 1
11836#define VK_KHR_SHADER_ABORT_EXTENSION_NAME "VK_KHR_shader_abort"
11837typedef struct VkPhysicalDeviceShaderAbortFeaturesKHR {
11838 VkStructureType sType;
11839 void* pNext;
11840 VkBool32 shaderAbort;
11841} VkPhysicalDeviceShaderAbortFeaturesKHR;
11842
11843typedef struct VkDeviceFaultShaderAbortMessageInfoKHR {
11844 VkStructureType sType;
11845 void* pNext;
11846 uint64_t messageDataSize;
11847 void* pMessageData;
11848} VkDeviceFaultShaderAbortMessageInfoKHR;
11849
11850typedef struct VkPhysicalDeviceShaderAbortPropertiesKHR {
11851 VkStructureType sType;
11852 void* pNext;
11853 uint64_t maxShaderAbortMessageSize;
11854} VkPhysicalDeviceShaderAbortPropertiesKHR;
11855
11856
11857
11858// VK_KHR_shader_quad_control is a preprocessor guard. Do not pass it to API calls.
11859#define VK_KHR_shader_quad_control 1
11860#define VK_KHR_SHADER_QUAD_CONTROL_SPEC_VERSION 1
11861#define VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME "VK_KHR_shader_quad_control"
11862typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR {
11863 VkStructureType sType;
11864 void* pNext;
11865 VkBool32 shaderQuadControl;
11866} VkPhysicalDeviceShaderQuadControlFeaturesKHR;
11867
11868
11869
11870// VK_KHR_spirv_1_4 is a preprocessor guard. Do not pass it to API calls.
11871#define VK_KHR_spirv_1_4 1
11872#define VK_KHR_SPIRV_1_4_SPEC_VERSION 1
11873#define VK_KHR_SPIRV_1_4_EXTENSION_NAME "VK_KHR_spirv_1_4"
11874
11875
11876// VK_KHR_surface_protected_capabilities is a preprocessor guard. Do not pass it to API calls.
11877#define VK_KHR_surface_protected_capabilities 1
11878#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
11879#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
11880typedef struct VkSurfaceProtectedCapabilitiesKHR {
11881 VkStructureType sType;
11882 void* pNext;
11883 VkBool32 supportsProtected;
11884} VkSurfaceProtectedCapabilitiesKHR;
11885
11886
11887
11888// VK_KHR_separate_depth_stencil_layouts is a preprocessor guard. Do not pass it to API calls.
11889#define VK_KHR_separate_depth_stencil_layouts 1
11890#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
11891#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
11892typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
11893
11894typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
11895
11896typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
11897
11898
11899
11900// VK_KHR_present_wait is a preprocessor guard. Do not pass it to API calls.
11901#define VK_KHR_present_wait 1
11902#define VK_KHR_PRESENT_WAIT_SPEC_VERSION 1
11903#define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
11904typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
11905 VkStructureType sType;
11906 void* pNext;
11907 VkBool32 presentWait;
11908} VkPhysicalDevicePresentWaitFeaturesKHR;
11909
11910typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
11911
11912#ifndef VK_NO_PROTOTYPES
11913#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11914VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
11915 VkDevice device,
11916 VkSwapchainKHR swapchain,
11917 uint64_t presentId,
11918 uint64_t timeout);
11919#endif
11920#endif
11921
11922
11923// VK_KHR_uniform_buffer_standard_layout is a preprocessor guard. Do not pass it to API calls.
11924#define VK_KHR_uniform_buffer_standard_layout 1
11925#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
11926#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
11927typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
11928
11929
11930
11931// VK_KHR_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
11932#define VK_KHR_buffer_device_address 1
11933#define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
11934#define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
11935typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
11936
11937typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
11938
11939typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
11940
11941typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
11942
11943typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
11944
11945typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
11946typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
11947typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
11948
11949#ifndef VK_NO_PROTOTYPES
11950#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11951VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
11952 VkDevice device,
11953 const VkBufferDeviceAddressInfo* pInfo);
11954#endif
11955
11956#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11957VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
11958 VkDevice device,
11959 const VkBufferDeviceAddressInfo* pInfo);
11960#endif
11961
11962#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11963VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
11964 VkDevice device,
11965 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
11966#endif
11967#endif
11968
11969
11970// VK_KHR_deferred_host_operations is a preprocessor guard. Do not pass it to API calls.
11971#define VK_KHR_deferred_host_operations 1
11972VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
11973#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
11974#define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
11975typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
11976typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
11977typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
11978typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
11979typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
11980
11981#ifndef VK_NO_PROTOTYPES
11982#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11983VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
11984 VkDevice device,
11985 const VkAllocationCallbacks* pAllocator,
11986 VkDeferredOperationKHR* pDeferredOperation);
11987#endif
11988
11989#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11990VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
11991 VkDevice device,
11992 VkDeferredOperationKHR operation,
11993 const VkAllocationCallbacks* pAllocator);
11994#endif
11995
11996#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11997VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
11998 VkDevice device,
11999 VkDeferredOperationKHR operation);
12000#endif
12001
12002#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12003VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
12004 VkDevice device,
12005 VkDeferredOperationKHR operation);
12006#endif
12007
12008#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12009VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
12010 VkDevice device,
12011 VkDeferredOperationKHR operation);
12012#endif
12013#endif
12014
12015
12016// VK_KHR_pipeline_executable_properties is a preprocessor guard. Do not pass it to API calls.
12017#define VK_KHR_pipeline_executable_properties 1
12018#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
12019#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
12020
12021typedef enum VkPipelineExecutableStatisticFormatKHR {
12022 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
12023 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
12024 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
12025 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
12026 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
12027} VkPipelineExecutableStatisticFormatKHR;
12028typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
12029 VkStructureType sType;
12030 void* pNext;
12031 VkBool32 pipelineExecutableInfo;
12032} VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
12033
12034typedef struct VkPipelineInfoKHR {
12035 VkStructureType sType;
12036 const void* pNext;
12037 VkPipeline pipeline;
12038} VkPipelineInfoKHR;
12039
12040typedef struct VkPipelineExecutablePropertiesKHR {
12041 VkStructureType sType;
12042 void* pNext;
12043 VkShaderStageFlags stages;
12044 char name[VK_MAX_DESCRIPTION_SIZE];
12045 char description[VK_MAX_DESCRIPTION_SIZE];
12046 uint32_t subgroupSize;
12047} VkPipelineExecutablePropertiesKHR;
12048
12049typedef struct VkPipelineExecutableInfoKHR {
12050 VkStructureType sType;
12051 const void* pNext;
12052 VkPipeline pipeline;
12053 uint32_t executableIndex;
12054} VkPipelineExecutableInfoKHR;
12055
12056typedef union VkPipelineExecutableStatisticValueKHR {
12057 VkBool32 b32;
12058 int64_t i64;
12059 uint64_t u64;
12060 double f64;
12061} VkPipelineExecutableStatisticValueKHR;
12062
12063typedef struct VkPipelineExecutableStatisticKHR {
12064 VkStructureType sType;
12065 void* pNext;
12066 char name[VK_MAX_DESCRIPTION_SIZE];
12067 char description[VK_MAX_DESCRIPTION_SIZE];
12068 VkPipelineExecutableStatisticFormatKHR format;
12069 VkPipelineExecutableStatisticValueKHR value;
12070} VkPipelineExecutableStatisticKHR;
12071
12072typedef struct VkPipelineExecutableInternalRepresentationKHR {
12073 VkStructureType sType;
12074 void* pNext;
12075 char name[VK_MAX_DESCRIPTION_SIZE];
12076 char description[VK_MAX_DESCRIPTION_SIZE];
12077 VkBool32 isText;
12078 size_t dataSize;
12079 void* pData;
12080} VkPipelineExecutableInternalRepresentationKHR;
12081
12082typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
12083typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
12084typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
12085
12086#ifndef VK_NO_PROTOTYPES
12087#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12088VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
12089 VkDevice device,
12090 const VkPipelineInfoKHR* pPipelineInfo,
12091 uint32_t* pExecutableCount,
12092 VkPipelineExecutablePropertiesKHR* pProperties);
12093#endif
12094
12095#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12096VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
12097 VkDevice device,
12098 const VkPipelineExecutableInfoKHR* pExecutableInfo,
12099 uint32_t* pStatisticCount,
12100 VkPipelineExecutableStatisticKHR* pStatistics);
12101#endif
12102
12103#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12104VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
12105 VkDevice device,
12106 const VkPipelineExecutableInfoKHR* pExecutableInfo,
12107 uint32_t* pInternalRepresentationCount,
12108 VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
12109#endif
12110#endif
12111
12112
12113// VK_KHR_map_memory2 is a preprocessor guard. Do not pass it to API calls.
12114#define VK_KHR_map_memory2 1
12115#define VK_KHR_MAP_MEMORY_2_SPEC_VERSION 1
12116#define VK_KHR_MAP_MEMORY_2_EXTENSION_NAME "VK_KHR_map_memory2"
12117typedef VkMemoryUnmapFlagBits VkMemoryUnmapFlagBitsKHR;
12118
12119typedef VkMemoryUnmapFlags VkMemoryUnmapFlagsKHR;
12120
12121typedef VkMemoryMapInfo VkMemoryMapInfoKHR;
12122
12123typedef VkMemoryUnmapInfo VkMemoryUnmapInfoKHR;
12124
12125typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
12126typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2KHR)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
12127
12128#ifndef VK_NO_PROTOTYPES
12129#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12130VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2KHR(
12131 VkDevice device,
12132 const VkMemoryMapInfo* pMemoryMapInfo,
12133 void** ppData);
12134#endif
12135
12136#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12137VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2KHR(
12138 VkDevice device,
12139 const VkMemoryUnmapInfo* pMemoryUnmapInfo);
12140#endif
12141#endif
12142
12143
12144// VK_KHR_shader_integer_dot_product is a preprocessor guard. Do not pass it to API calls.
12145#define VK_KHR_shader_integer_dot_product 1
12146#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
12147#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
12148typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
12149
12150typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
12151
12152
12153
12154// VK_KHR_pipeline_library is a preprocessor guard. Do not pass it to API calls.
12155#define VK_KHR_pipeline_library 1
12156#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
12157#define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
12158typedef struct VkPipelineLibraryCreateInfoKHR {
12159 VkStructureType sType;
12160 const void* pNext;
12161 uint32_t libraryCount;
12162 const VkPipeline* pLibraries;
12163} VkPipelineLibraryCreateInfoKHR;
12164
12165
12166
12167// VK_KHR_shader_non_semantic_info is a preprocessor guard. Do not pass it to API calls.
12168#define VK_KHR_shader_non_semantic_info 1
12169#define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
12170#define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
12171
12172
12173// VK_KHR_present_id is a preprocessor guard. Do not pass it to API calls.
12174#define VK_KHR_present_id 1
12175#define VK_KHR_PRESENT_ID_SPEC_VERSION 1
12176#define VK_KHR_PRESENT_ID_EXTENSION_NAME "VK_KHR_present_id"
12177typedef struct VkPresentIdKHR {
12178 VkStructureType sType;
12179 const void* pNext;
12180 uint32_t swapchainCount;
12181 const uint64_t* pPresentIds;
12182} VkPresentIdKHR;
12183
12184typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
12185 VkStructureType sType;
12186 void* pNext;
12187 VkBool32 presentId;
12188} VkPhysicalDevicePresentIdFeaturesKHR;
12189
12190
12191
12192// VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls.
12193#define VK_KHR_video_encode_queue 1
12194#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 12
12195#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
12196
12197typedef enum VkVideoEncodeTuningModeKHR {
12198 VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
12199 VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
12200 VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
12201 VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
12202 VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
12203 VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
12204} VkVideoEncodeTuningModeKHR;
12205
12206typedef enum VkVideoEncodeFlagBitsKHR {
12207 VK_VIDEO_ENCODE_INTRA_REFRESH_BIT_KHR = 0x00000004,
12208 VK_VIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000001,
12209 VK_VIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR = 0x00000002,
12210 VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12211} VkVideoEncodeFlagBitsKHR;
12212typedef VkFlags VkVideoEncodeFlagsKHR;
12213
12214typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
12215 VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
12216 VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x00000002,
12217 VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000004,
12218 VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR = 0x00000008,
12219 VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12220} VkVideoEncodeCapabilityFlagBitsKHR;
12221typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
12222
12223typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
12224 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0,
12225 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001,
12226 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002,
12227 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004,
12228 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12229} VkVideoEncodeRateControlModeFlagBitsKHR;
12230typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
12231
12232typedef enum VkVideoEncodeFeedbackFlagBitsKHR {
12233 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001,
12234 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002,
12235 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR = 0x00000004,
12236 VK_VIDEO_ENCODE_FEEDBACK_AVERAGE_QUANTIZATION_BIT_KHR = 0x00000008,
12237 VK_VIDEO_ENCODE_FEEDBACK_MIN_QUANTIZATION_BIT_KHR = 0x00000010,
12238 VK_VIDEO_ENCODE_FEEDBACK_MAX_QUANTIZATION_BIT_KHR = 0x00000020,
12239 VK_VIDEO_ENCODE_FEEDBACK_INTRA_PIXELS_BIT_KHR = 0x00000040,
12240 VK_VIDEO_ENCODE_FEEDBACK_INTER_PIXELS_BIT_KHR = 0x00000080,
12241 VK_VIDEO_ENCODE_FEEDBACK_SKIPPED_PIXELS_BIT_KHR = 0x00000100,
12242 VK_VIDEO_ENCODE_FEEDBACK_PICTURE_PARTITION_COUNT_BIT_KHR = 0x00000200,
12243 VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12244} VkVideoEncodeFeedbackFlagBitsKHR;
12245typedef VkFlags VkVideoEncodeFeedbackFlagsKHR;
12246
12247typedef enum VkVideoEncodeUsageFlagBitsKHR {
12248 VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
12249 VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
12250 VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
12251 VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
12252 VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
12253 VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12254} VkVideoEncodeUsageFlagBitsKHR;
12255typedef VkFlags VkVideoEncodeUsageFlagsKHR;
12256
12257typedef enum VkVideoEncodeContentFlagBitsKHR {
12258 VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
12259 VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
12260 VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
12261 VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
12262 VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12263} VkVideoEncodeContentFlagBitsKHR;
12264typedef VkFlags VkVideoEncodeContentFlagsKHR;
12265typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
12266typedef struct VkVideoEncodeInfoKHR {
12267 VkStructureType sType;
12268 const void* pNext;
12269 VkVideoEncodeFlagsKHR flags;
12270 VkBuffer dstBuffer;
12271 VkDeviceSize dstBufferOffset;
12272 VkDeviceSize dstBufferRange;
12273 VkVideoPictureResourceInfoKHR srcPictureResource;
12274 const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
12275 uint32_t referenceSlotCount;
12276 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
12277 uint32_t precedingExternallyEncodedBytes;
12278} VkVideoEncodeInfoKHR;
12279
12280typedef struct VkVideoEncodeCapabilitiesKHR {
12281 VkStructureType sType;
12282 void* pNext;
12283 VkVideoEncodeCapabilityFlagsKHR flags;
12284 VkVideoEncodeRateControlModeFlagsKHR rateControlModes;
12285 uint32_t maxRateControlLayers;
12286 uint64_t maxBitrate;
12287 uint32_t maxQualityLevels;
12288 VkExtent2D encodeInputPictureGranularity;
12289 VkVideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags;
12290} VkVideoEncodeCapabilitiesKHR;
12291
12292typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR {
12293 VkStructureType sType;
12294 const void* pNext;
12295 VkVideoEncodeFeedbackFlagsKHR encodeFeedbackFlags;
12296} VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
12297
12298typedef struct VkVideoEncodeUsageInfoKHR {
12299 VkStructureType sType;
12300 const void* pNext;
12301 VkVideoEncodeUsageFlagsKHR videoUsageHints;
12302 VkVideoEncodeContentFlagsKHR videoContentHints;
12303 VkVideoEncodeTuningModeKHR tuningMode;
12304} VkVideoEncodeUsageInfoKHR;
12305
12306typedef struct VkVideoEncodeRateControlLayerInfoKHR {
12307 VkStructureType sType;
12308 const void* pNext;
12309 uint64_t averageBitrate;
12310 uint64_t maxBitrate;
12311 uint32_t frameRateNumerator;
12312 uint32_t frameRateDenominator;
12313} VkVideoEncodeRateControlLayerInfoKHR;
12314
12315typedef struct VkVideoEncodeRateControlInfoKHR {
12316 VkStructureType sType;
12317 const void* pNext;
12318 VkVideoEncodeRateControlFlagsKHR flags;
12319 VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode;
12320 uint32_t layerCount;
12321 const VkVideoEncodeRateControlLayerInfoKHR* pLayers;
12322 uint32_t virtualBufferSizeInMs;
12323 uint32_t initialVirtualBufferSizeInMs;
12324} VkVideoEncodeRateControlInfoKHR;
12325
12326typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR {
12327 VkStructureType sType;
12328 const void* pNext;
12329 const VkVideoProfileInfoKHR* pVideoProfile;
12330 uint32_t qualityLevel;
12331} VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
12332
12333typedef struct VkVideoEncodeQualityLevelPropertiesKHR {
12334 VkStructureType sType;
12335 void* pNext;
12336 VkVideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode;
12337 uint32_t preferredRateControlLayerCount;
12338} VkVideoEncodeQualityLevelPropertiesKHR;
12339
12340typedef struct VkVideoEncodeQualityLevelInfoKHR {
12341 VkStructureType sType;
12342 const void* pNext;
12343 uint32_t qualityLevel;
12344} VkVideoEncodeQualityLevelInfoKHR;
12345
12346typedef struct VkVideoEncodeSessionParametersGetInfoKHR {
12347 VkStructureType sType;
12348 const void* pNext;
12349 VkVideoSessionParametersKHR videoSessionParameters;
12350} VkVideoEncodeSessionParametersGetInfoKHR;
12351
12352typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR {
12353 VkStructureType sType;
12354 void* pNext;
12355 VkBool32 hasOverrides;
12356} VkVideoEncodeSessionParametersFeedbackInfoKHR;
12357
12358typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
12359typedef VkResult (VKAPI_PTR *PFN_vkGetEncodedVideoSessionParametersKHR)(VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData);
12360typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
12361
12362#ifndef VK_NO_PROTOTYPES
12363#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12364VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
12365 VkPhysicalDevice physicalDevice,
12366 const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
12367 VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
12368#endif
12369
12370#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12371VKAPI_ATTR VkResult VKAPI_CALL vkGetEncodedVideoSessionParametersKHR(
12372 VkDevice device,
12373 const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
12374 VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
12375 size_t* pDataSize,
12376 void* pData);
12377#endif
12378
12379#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12380VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
12381 VkCommandBuffer commandBuffer,
12382 const VkVideoEncodeInfoKHR* pEncodeInfo);
12383#endif
12384#endif
12385
12386
12387// VK_KHR_synchronization2 is a preprocessor guard. Do not pass it to API calls.
12388#define VK_KHR_synchronization2 1
12389#define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
12390#define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
12391typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
12392
12393typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
12394
12395typedef VkAccessFlags2 VkAccessFlags2KHR;
12396
12397typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
12398
12399typedef VkSubmitFlagBits VkSubmitFlagBitsKHR;
12400
12401typedef VkSubmitFlags VkSubmitFlagsKHR;
12402
12403typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
12404
12405typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
12406
12407typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
12408
12409typedef VkDependencyInfo VkDependencyInfoKHR;
12410
12411typedef VkSubmitInfo2 VkSubmitInfo2KHR;
12412
12413typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
12414
12415typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
12416
12417typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
12418
12419typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
12420typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
12421typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
12422typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
12423typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
12424typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
12425
12426#ifndef VK_NO_PROTOTYPES
12427#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12428VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR(
12429 VkCommandBuffer commandBuffer,
12430 VkEvent event,
12431 const VkDependencyInfo* pDependencyInfo);
12432#endif
12433
12434#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12435VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR(
12436 VkCommandBuffer commandBuffer,
12437 VkEvent event,
12438 VkPipelineStageFlags2 stageMask);
12439#endif
12440
12441#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12442VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR(
12443 VkCommandBuffer commandBuffer,
12444 uint32_t eventCount,
12445 const VkEvent* pEvents,
12446 const VkDependencyInfo* pDependencyInfos);
12447#endif
12448
12449#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12450VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR(
12451 VkCommandBuffer commandBuffer,
12452 const VkDependencyInfo* pDependencyInfo);
12453#endif
12454
12455#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12456VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR(
12457 VkCommandBuffer commandBuffer,
12458 VkPipelineStageFlags2 stage,
12459 VkQueryPool queryPool,
12460 uint32_t query);
12461#endif
12462
12463#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12464VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR(
12465 VkQueue queue,
12466 uint32_t submitCount,
12467 const VkSubmitInfo2* pSubmits,
12468 VkFence fence);
12469#endif
12470#endif
12471
12472
12473// VK_KHR_device_address_commands is a preprocessor guard. Do not pass it to API calls.
12474#define VK_KHR_device_address_commands 1
12475VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
12476#define VK_KHR_DEVICE_ADDRESS_COMMANDS_SPEC_VERSION 1
12477#define VK_KHR_DEVICE_ADDRESS_COMMANDS_EXTENSION_NAME "VK_KHR_device_address_commands"
12478
12479typedef enum VkAccelerationStructureTypeKHR {
12480 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
12481 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
12482 VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2,
12483 VK_ACCELERATION_STRUCTURE_TYPE_OPACITY_MICROMAP_KHR = 1000623000,
12484 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
12485 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
12486 VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
12487} VkAccelerationStructureTypeKHR;
12488
12489typedef enum VkAddressCommandFlagBitsKHR {
12490 VK_ADDRESS_COMMAND_PROTECTED_BIT_KHR = 0x00000001,
12491 VK_ADDRESS_COMMAND_FULLY_BOUND_BIT_KHR = 0x00000002,
12492 VK_ADDRESS_COMMAND_STORAGE_BUFFER_USAGE_BIT_KHR = 0x00000004,
12493 VK_ADDRESS_COMMAND_UNKNOWN_STORAGE_BUFFER_USAGE_BIT_KHR = 0x00000008,
12494 VK_ADDRESS_COMMAND_TRANSFORM_FEEDBACK_BUFFER_USAGE_BIT_KHR = 0x00000010,
12495 VK_ADDRESS_COMMAND_UNKNOWN_TRANSFORM_FEEDBACK_BUFFER_USAGE_BIT_KHR = 0x00000020,
12496 VK_ADDRESS_COMMAND_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12497} VkAddressCommandFlagBitsKHR;
12498typedef VkFlags VkAddressCommandFlagsKHR;
12499
12500typedef enum VkConditionalRenderingFlagBitsEXT {
12501 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
12502 VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
12503} VkConditionalRenderingFlagBitsEXT;
12504typedef VkFlags VkConditionalRenderingFlagsEXT;
12505
12506typedef enum VkAccelerationStructureCreateFlagBitsKHR {
12507 VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
12508 VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
12509 VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004,
12510 VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12511} VkAccelerationStructureCreateFlagBitsKHR;
12512typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
12513typedef struct VkDeviceAddressRangeKHR {
12514 VkDeviceAddress address;
12515 VkDeviceSize size;
12516} VkDeviceAddressRangeKHR;
12517
12518typedef struct VkStridedDeviceAddressRangeKHR {
12519 VkDeviceAddress address;
12520 VkDeviceSize size;
12521 VkDeviceSize stride;
12522} VkStridedDeviceAddressRangeKHR;
12523
12524typedef struct VkDeviceMemoryCopyKHR {
12525 VkStructureType sType;
12526 const void* pNext;
12527 VkDeviceAddressRangeKHR srcRange;
12528 VkAddressCommandFlagsKHR srcFlags;
12529 VkDeviceAddressRangeKHR dstRange;
12530 VkAddressCommandFlagsKHR dstFlags;
12531} VkDeviceMemoryCopyKHR;
12532
12533typedef struct VkCopyDeviceMemoryInfoKHR {
12534 VkStructureType sType;
12535 const void* pNext;
12536 uint32_t regionCount;
12537 const VkDeviceMemoryCopyKHR* pRegions;
12538} VkCopyDeviceMemoryInfoKHR;
12539
12540typedef struct VkDeviceMemoryImageCopyKHR {
12541 VkStructureType sType;
12542 const void* pNext;
12543 VkDeviceAddressRangeKHR addressRange;
12544 VkAddressCommandFlagsKHR addressFlags;
12545 uint32_t addressRowLength;
12546 uint32_t addressImageHeight;
12547 VkImageSubresourceLayers imageSubresource;
12548 VkImageLayout imageLayout;
12549 VkOffset3D imageOffset;
12550 VkExtent3D imageExtent;
12551} VkDeviceMemoryImageCopyKHR;
12552
12553typedef struct VkCopyDeviceMemoryImageInfoKHR {
12554 VkStructureType sType;
12555 const void* pNext;
12556 VkImage image;
12557 uint32_t regionCount;
12558 const VkDeviceMemoryImageCopyKHR* pRegions;
12559} VkCopyDeviceMemoryImageInfoKHR;
12560
12561typedef struct VkMemoryRangeBarrierKHR {
12562 VkStructureType sType;
12563 const void* pNext;
12564 VkPipelineStageFlags2 srcStageMask;
12565 VkAccessFlags2 srcAccessMask;
12566 VkPipelineStageFlags2 dstStageMask;
12567 VkAccessFlags2 dstAccessMask;
12568 uint32_t srcQueueFamilyIndex;
12569 uint32_t dstQueueFamilyIndex;
12570 VkDeviceAddressRangeKHR addressRange;
12571 VkAddressCommandFlagsKHR addressFlags;
12572} VkMemoryRangeBarrierKHR;
12573
12574typedef struct VkMemoryRangeBarriersInfoKHR {
12575 VkStructureType sType;
12576 const void* pNext;
12577 uint32_t memoryRangeBarrierCount;
12578 const VkMemoryRangeBarrierKHR* pMemoryRangeBarriers;
12579} VkMemoryRangeBarriersInfoKHR;
12580
12581typedef struct VkPhysicalDeviceDeviceAddressCommandsFeaturesKHR {
12582 VkStructureType sType;
12583 void* pNext;
12584 VkBool32 deviceAddressCommands;
12585} VkPhysicalDeviceDeviceAddressCommandsFeaturesKHR;
12586
12587typedef struct VkBindIndexBuffer3InfoKHR {
12588 VkStructureType sType;
12589 const void* pNext;
12590 VkDeviceAddressRangeKHR addressRange;
12591 VkAddressCommandFlagsKHR addressFlags;
12592 VkIndexType indexType;
12593} VkBindIndexBuffer3InfoKHR;
12594
12595typedef struct VkBindVertexBuffer3InfoKHR {
12596 VkStructureType sType;
12597 const void* pNext;
12598 VkBool32 setStride;
12599 VkStridedDeviceAddressRangeKHR addressRange;
12600 VkAddressCommandFlagsKHR addressFlags;
12601} VkBindVertexBuffer3InfoKHR;
12602
12603typedef struct VkDrawIndirect2InfoKHR {
12604 VkStructureType sType;
12605 const void* pNext;
12606 VkStridedDeviceAddressRangeKHR addressRange;
12607 VkAddressCommandFlagsKHR addressFlags;
12608 uint32_t drawCount;
12609} VkDrawIndirect2InfoKHR;
12610
12611typedef struct VkDrawIndirectCount2InfoKHR {
12612 VkStructureType sType;
12613 const void* pNext;
12614 VkStridedDeviceAddressRangeKHR addressRange;
12615 VkAddressCommandFlagsKHR addressFlags;
12616 VkDeviceAddressRangeKHR countAddressRange;
12617 VkAddressCommandFlagsKHR countAddressFlags;
12618 uint32_t maxDrawCount;
12619} VkDrawIndirectCount2InfoKHR;
12620
12621typedef struct VkDispatchIndirect2InfoKHR {
12622 VkStructureType sType;
12623 const void* pNext;
12624 VkDeviceAddressRangeKHR addressRange;
12625 VkAddressCommandFlagsKHR addressFlags;
12626} VkDispatchIndirect2InfoKHR;
12627
12628typedef struct VkConditionalRenderingBeginInfo2EXT {
12629 VkStructureType sType;
12630 const void* pNext;
12631 VkDeviceAddressRangeKHR addressRange;
12632 VkAddressCommandFlagsKHR addressFlags;
12633 VkConditionalRenderingFlagsEXT flags;
12634} VkConditionalRenderingBeginInfo2EXT;
12635
12636typedef struct VkBindTransformFeedbackBuffer2InfoEXT {
12637 VkStructureType sType;
12638 const void* pNext;
12639 VkDeviceAddressRangeKHR addressRange;
12640 VkAddressCommandFlagsKHR addressFlags;
12641} VkBindTransformFeedbackBuffer2InfoEXT;
12642
12643typedef struct VkMemoryMarkerInfoAMD {
12644 VkStructureType sType;
12645 const void* pNext;
12646 VkPipelineStageFlags2KHR stage;
12647 VkDeviceAddressRangeKHR dstRange;
12648 VkAddressCommandFlagsKHR dstFlags;
12649 uint32_t marker;
12650} VkMemoryMarkerInfoAMD;
12651
12652typedef struct VkAccelerationStructureCreateInfo2KHR {
12653 VkStructureType sType;
12654 const void* pNext;
12655 VkAccelerationStructureCreateFlagsKHR createFlags;
12656 VkDeviceAddressRangeKHR addressRange;
12657 VkAddressCommandFlagsKHR addressFlags;
12658 VkAccelerationStructureTypeKHR type;
12659} VkAccelerationStructureCreateInfo2KHR;
12660
12661typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer3KHR)(VkCommandBuffer commandBuffer, const VkBindIndexBuffer3InfoKHR* pInfo);
12662typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers3KHR)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBindVertexBuffer3InfoKHR* pBindingInfos);
12663typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect2KHR)(VkCommandBuffer commandBuffer, const VkDrawIndirect2InfoKHR* pInfo);
12664typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect2KHR)(VkCommandBuffer commandBuffer, const VkDrawIndirect2InfoKHR* pInfo);
12665typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect2KHR)(VkCommandBuffer commandBuffer, const VkDispatchIndirect2InfoKHR* pInfo);
12666typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyDeviceMemoryInfoKHR* pCopyMemoryInfo);
12667typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageKHR)(VkCommandBuffer commandBuffer, const VkCopyDeviceMemoryImageInfoKHR* pCopyMemoryInfo);
12668typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyDeviceMemoryImageInfoKHR* pCopyMemoryInfo);
12669typedef void (VKAPI_PTR *PFN_vkCmdUpdateMemoryKHR)(VkCommandBuffer commandBuffer, const VkDeviceAddressRangeKHR* pDstRange, VkAddressCommandFlagsKHR dstFlags, VkDeviceSize dataSize, const void* pData);
12670typedef void (VKAPI_PTR *PFN_vkCmdFillMemoryKHR)(VkCommandBuffer commandBuffer, const VkDeviceAddressRangeKHR* pDstRange, VkAddressCommandFlagsKHR dstFlags, uint32_t data);
12671typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResultsToMemoryKHR)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, const VkStridedDeviceAddressRangeKHR* pDstRange, VkAddressCommandFlagsKHR dstFlags, VkQueryResultFlags queryResultFlags);
12672typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount2KHR)(VkCommandBuffer commandBuffer, const VkDrawIndirectCount2InfoKHR* pInfo);
12673typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount2KHR)(VkCommandBuffer commandBuffer, const VkDrawIndirectCount2InfoKHR* pInfo);
12674typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRendering2EXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfo2EXT* pConditionalRenderingBegin);
12675typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffers2EXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBindTransformFeedbackBuffer2InfoEXT* pBindingInfos);
12676typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedback2EXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterRange, uint32_t counterRangeCount, const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfos);
12677typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedback2EXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterRange, uint32_t counterRangeCount, const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfos);
12678typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCount2EXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfo, uint32_t counterOffset, uint32_t vertexStride);
12679typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirect2EXT)(VkCommandBuffer commandBuffer, const VkDrawIndirect2InfoKHR* pInfo);
12680typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCount2EXT)(VkCommandBuffer commandBuffer, const VkDrawIndirectCount2InfoKHR* pInfo);
12681typedef void (VKAPI_PTR *PFN_vkCmdWriteMarkerToMemoryAMD)(VkCommandBuffer commandBuffer, const VkMemoryMarkerInfoAMD* pInfo);
12682typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructure2KHR)(VkDevice device, const VkAccelerationStructureCreateInfo2KHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure);
12683
12684#ifndef VK_NO_PROTOTYPES
12685#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12686VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer3KHR(
12687 VkCommandBuffer commandBuffer,
12688 const VkBindIndexBuffer3InfoKHR* pInfo);
12689#endif
12690
12691#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12692VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers3KHR(
12693 VkCommandBuffer commandBuffer,
12694 uint32_t firstBinding,
12695 uint32_t bindingCount,
12696 const VkBindVertexBuffer3InfoKHR* pBindingInfos);
12697#endif
12698
12699#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12700VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect2KHR(
12701 VkCommandBuffer commandBuffer,
12702 const VkDrawIndirect2InfoKHR* pInfo);
12703#endif
12704
12705#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12706VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect2KHR(
12707 VkCommandBuffer commandBuffer,
12708 const VkDrawIndirect2InfoKHR* pInfo);
12709#endif
12710
12711#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12712VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect2KHR(
12713 VkCommandBuffer commandBuffer,
12714 const VkDispatchIndirect2InfoKHR* pInfo);
12715#endif
12716
12717#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12718VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryKHR(
12719 VkCommandBuffer commandBuffer,
12720 const VkCopyDeviceMemoryInfoKHR* pCopyMemoryInfo);
12721#endif
12722
12723#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12724VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageKHR(
12725 VkCommandBuffer commandBuffer,
12726 const VkCopyDeviceMemoryImageInfoKHR* pCopyMemoryInfo);
12727#endif
12728
12729#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12730VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToMemoryKHR(
12731 VkCommandBuffer commandBuffer,
12732 const VkCopyDeviceMemoryImageInfoKHR* pCopyMemoryInfo);
12733#endif
12734
12735#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12736VKAPI_ATTR void VKAPI_CALL vkCmdUpdateMemoryKHR(
12737 VkCommandBuffer commandBuffer,
12738 const VkDeviceAddressRangeKHR* pDstRange,
12739 VkAddressCommandFlagsKHR dstFlags,
12740 VkDeviceSize dataSize,
12741 const void* pData);
12742#endif
12743
12744#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12745VKAPI_ATTR void VKAPI_CALL vkCmdFillMemoryKHR(
12746 VkCommandBuffer commandBuffer,
12747 const VkDeviceAddressRangeKHR* pDstRange,
12748 VkAddressCommandFlagsKHR dstFlags,
12749 uint32_t data);
12750#endif
12751
12752#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12753VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResultsToMemoryKHR(
12754 VkCommandBuffer commandBuffer,
12755 VkQueryPool queryPool,
12756 uint32_t firstQuery,
12757 uint32_t queryCount,
12758 const VkStridedDeviceAddressRangeKHR* pDstRange,
12759 VkAddressCommandFlagsKHR dstFlags,
12760 VkQueryResultFlags queryResultFlags);
12761#endif
12762
12763#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12764VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount2KHR(
12765 VkCommandBuffer commandBuffer,
12766 const VkDrawIndirectCount2InfoKHR* pInfo);
12767#endif
12768
12769#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12770VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount2KHR(
12771 VkCommandBuffer commandBuffer,
12772 const VkDrawIndirectCount2InfoKHR* pInfo);
12773#endif
12774
12775#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12776VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRendering2EXT(
12777 VkCommandBuffer commandBuffer,
12778 const VkConditionalRenderingBeginInfo2EXT* pConditionalRenderingBegin);
12779#endif
12780
12781#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12782VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffers2EXT(
12783 VkCommandBuffer commandBuffer,
12784 uint32_t firstBinding,
12785 uint32_t bindingCount,
12786 const VkBindTransformFeedbackBuffer2InfoEXT* pBindingInfos);
12787#endif
12788
12789#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12790VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedback2EXT(
12791 VkCommandBuffer commandBuffer,
12792 uint32_t firstCounterRange,
12793 uint32_t counterRangeCount,
12794 const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfos);
12795#endif
12796
12797#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12798VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedback2EXT(
12799 VkCommandBuffer commandBuffer,
12800 uint32_t firstCounterRange,
12801 uint32_t counterRangeCount,
12802 const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfos);
12803#endif
12804
12805#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12806VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCount2EXT(
12807 VkCommandBuffer commandBuffer,
12808 uint32_t instanceCount,
12809 uint32_t firstInstance,
12810 const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfo,
12811 uint32_t counterOffset,
12812 uint32_t vertexStride);
12813#endif
12814
12815#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12816VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirect2EXT(
12817 VkCommandBuffer commandBuffer,
12818 const VkDrawIndirect2InfoKHR* pInfo);
12819#endif
12820
12821#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12822VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCount2EXT(
12823 VkCommandBuffer commandBuffer,
12824 const VkDrawIndirectCount2InfoKHR* pInfo);
12825#endif
12826
12827#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12828VKAPI_ATTR void VKAPI_CALL vkCmdWriteMarkerToMemoryAMD(
12829 VkCommandBuffer commandBuffer,
12830 const VkMemoryMarkerInfoAMD* pInfo);
12831#endif
12832
12833#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12834VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructure2KHR(
12835 VkDevice device,
12836 const VkAccelerationStructureCreateInfo2KHR* pCreateInfo,
12837 const VkAllocationCallbacks* pAllocator,
12838 VkAccelerationStructureKHR* pAccelerationStructure);
12839#endif
12840#endif
12841
12842
12843// VK_KHR_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
12844#define VK_KHR_fragment_shader_barycentric 1
12845#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
12846#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
12847typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
12848 VkStructureType sType;
12849 void* pNext;
12850 VkBool32 fragmentShaderBarycentric;
12851} VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
12852
12853typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
12854 VkStructureType sType;
12855 void* pNext;
12856 VkBool32 triStripVertexOrderIndependentOfProvokingVertex;
12857} VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
12858
12859
12860
12861// VK_KHR_shader_subgroup_uniform_control_flow is a preprocessor guard. Do not pass it to API calls.
12862#define VK_KHR_shader_subgroup_uniform_control_flow 1
12863#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
12864#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
12865typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
12866 VkStructureType sType;
12867 void* pNext;
12868 VkBool32 shaderSubgroupUniformControlFlow;
12869} VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
12870
12871
12872
12873// VK_KHR_zero_initialize_workgroup_memory is a preprocessor guard. Do not pass it to API calls.
12874#define VK_KHR_zero_initialize_workgroup_memory 1
12875#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
12876#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
12877typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
12878
12879
12880
12881// VK_KHR_workgroup_memory_explicit_layout is a preprocessor guard. Do not pass it to API calls.
12882#define VK_KHR_workgroup_memory_explicit_layout 1
12883#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
12884#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
12885typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
12886 VkStructureType sType;
12887 void* pNext;
12888 VkBool32 workgroupMemoryExplicitLayout;
12889 VkBool32 workgroupMemoryExplicitLayoutScalarBlockLayout;
12890 VkBool32 workgroupMemoryExplicitLayout8BitAccess;
12891 VkBool32 workgroupMemoryExplicitLayout16BitAccess;
12892} VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
12893
12894
12895
12896// VK_KHR_copy_commands2 is a preprocessor guard. Do not pass it to API calls.
12897#define VK_KHR_copy_commands2 1
12898#define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
12899#define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
12900typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
12901
12902typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
12903
12904typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
12905
12906typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
12907
12908typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
12909
12910typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
12911
12912typedef VkBufferCopy2 VkBufferCopy2KHR;
12913
12914typedef VkImageCopy2 VkImageCopy2KHR;
12915
12916typedef VkImageBlit2 VkImageBlit2KHR;
12917
12918typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
12919
12920typedef VkImageResolve2 VkImageResolve2KHR;
12921
12922typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
12923typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
12924typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
12925typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
12926typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
12927typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
12928
12929#ifndef VK_NO_PROTOTYPES
12930#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12931VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
12932 VkCommandBuffer commandBuffer,
12933 const VkCopyBufferInfo2* pCopyBufferInfo);
12934#endif
12935
12936#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12937VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
12938 VkCommandBuffer commandBuffer,
12939 const VkCopyImageInfo2* pCopyImageInfo);
12940#endif
12941
12942#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12943VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
12944 VkCommandBuffer commandBuffer,
12945 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
12946#endif
12947
12948#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12949VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
12950 VkCommandBuffer commandBuffer,
12951 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
12952#endif
12953
12954#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12955VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
12956 VkCommandBuffer commandBuffer,
12957 const VkBlitImageInfo2* pBlitImageInfo);
12958#endif
12959
12960#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12961VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
12962 VkCommandBuffer commandBuffer,
12963 const VkResolveImageInfo2* pResolveImageInfo);
12964#endif
12965#endif
12966
12967
12968// VK_KHR_format_feature_flags2 is a preprocessor guard. Do not pass it to API calls.
12969#define VK_KHR_format_feature_flags2 1
12970#define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2
12971#define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
12972typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
12973
12974typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
12975
12976typedef VkFormatProperties3 VkFormatProperties3KHR;
12977
12978
12979
12980// VK_KHR_ray_tracing_maintenance1 is a preprocessor guard. Do not pass it to API calls.
12981#define VK_KHR_ray_tracing_maintenance1 1
12982#define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
12983#define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
12984typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR {
12985 VkStructureType sType;
12986 void* pNext;
12987 VkBool32 rayTracingMaintenance1;
12988 VkBool32 rayTracingPipelineTraceRaysIndirect2;
12989} VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
12990
12991typedef struct VkTraceRaysIndirectCommand2KHR {
12992 VkDeviceAddress raygenShaderRecordAddress;
12993 VkDeviceSize raygenShaderRecordSize;
12994 VkDeviceAddress missShaderBindingTableAddress;
12995 VkDeviceSize missShaderBindingTableSize;
12996 VkDeviceSize missShaderBindingTableStride;
12997 VkDeviceAddress hitShaderBindingTableAddress;
12998 VkDeviceSize hitShaderBindingTableSize;
12999 VkDeviceSize hitShaderBindingTableStride;
13000 VkDeviceAddress callableShaderBindingTableAddress;
13001 VkDeviceSize callableShaderBindingTableSize;
13002 VkDeviceSize callableShaderBindingTableStride;
13003 uint32_t width;
13004 uint32_t height;
13005 uint32_t depth;
13006} VkTraceRaysIndirectCommand2KHR;
13007
13008typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
13009
13010#ifndef VK_NO_PROTOTYPES
13011#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13012VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR(
13013 VkCommandBuffer commandBuffer,
13014 VkDeviceAddress indirectDeviceAddress);
13015#endif
13016#endif
13017
13018
13019// VK_KHR_shader_untyped_pointers is a preprocessor guard. Do not pass it to API calls.
13020#define VK_KHR_shader_untyped_pointers 1
13021#define VK_KHR_SHADER_UNTYPED_POINTERS_SPEC_VERSION 1
13022#define VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME "VK_KHR_shader_untyped_pointers"
13023typedef struct VkPhysicalDeviceShaderUntypedPointersFeaturesKHR {
13024 VkStructureType sType;
13025 void* pNext;
13026 VkBool32 shaderUntypedPointers;
13027} VkPhysicalDeviceShaderUntypedPointersFeaturesKHR;
13028
13029
13030
13031// VK_KHR_portability_enumeration is a preprocessor guard. Do not pass it to API calls.
13032#define VK_KHR_portability_enumeration 1
13033#define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
13034#define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
13035
13036
13037// VK_KHR_maintenance4 is a preprocessor guard. Do not pass it to API calls.
13038#define VK_KHR_maintenance4 1
13039#define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
13040#define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
13041typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
13042
13043typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
13044
13045typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
13046
13047typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
13048
13049typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
13050typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
13051typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
13052
13053#ifndef VK_NO_PROTOTYPES
13054#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13055VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR(
13056 VkDevice device,
13057 const VkDeviceBufferMemoryRequirements* pInfo,
13058 VkMemoryRequirements2* pMemoryRequirements);
13059#endif
13060
13061#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13062VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR(
13063 VkDevice device,
13064 const VkDeviceImageMemoryRequirements* pInfo,
13065 VkMemoryRequirements2* pMemoryRequirements);
13066#endif
13067
13068#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13069VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR(
13070 VkDevice device,
13071 const VkDeviceImageMemoryRequirements* pInfo,
13072 uint32_t* pSparseMemoryRequirementCount,
13073 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
13074#endif
13075#endif
13076
13077
13078// VK_KHR_shader_subgroup_rotate is a preprocessor guard. Do not pass it to API calls.
13079#define VK_KHR_shader_subgroup_rotate 1
13080#define VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION 2
13081#define VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME "VK_KHR_shader_subgroup_rotate"
13082typedef VkPhysicalDeviceShaderSubgroupRotateFeatures VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR;
13083
13084
13085
13086// VK_KHR_shader_maximal_reconvergence is a preprocessor guard. Do not pass it to API calls.
13087#define VK_KHR_shader_maximal_reconvergence 1
13088#define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION 1
13089#define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME "VK_KHR_shader_maximal_reconvergence"
13090typedef struct VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
13091 VkStructureType sType;
13092 void* pNext;
13093 VkBool32 shaderMaximalReconvergence;
13094} VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR;
13095
13096
13097
13098// VK_KHR_maintenance5 is a preprocessor guard. Do not pass it to API calls.
13099#define VK_KHR_maintenance5 1
13100#define VK_KHR_MAINTENANCE_5_SPEC_VERSION 1
13101#define VK_KHR_MAINTENANCE_5_EXTENSION_NAME "VK_KHR_maintenance5"
13102typedef VkPipelineCreateFlags2 VkPipelineCreateFlags2KHR;
13103
13104typedef VkPipelineCreateFlagBits2 VkPipelineCreateFlagBits2KHR;
13105
13106typedef VkBufferUsageFlags2 VkBufferUsageFlags2KHR;
13107
13108typedef VkBufferUsageFlagBits2 VkBufferUsageFlagBits2KHR;
13109
13110typedef VkPhysicalDeviceMaintenance5Features VkPhysicalDeviceMaintenance5FeaturesKHR;
13111
13112typedef VkPhysicalDeviceMaintenance5Properties VkPhysicalDeviceMaintenance5PropertiesKHR;
13113
13114typedef VkRenderingAreaInfo VkRenderingAreaInfoKHR;
13115
13116typedef VkDeviceImageSubresourceInfo VkDeviceImageSubresourceInfoKHR;
13117
13118typedef VkImageSubresource2 VkImageSubresource2KHR;
13119
13120typedef VkSubresourceLayout2 VkSubresourceLayout2KHR;
13121
13122typedef VkPipelineCreateFlags2CreateInfo VkPipelineCreateFlags2CreateInfoKHR;
13123
13124typedef VkBufferUsageFlags2CreateInfo VkBufferUsageFlags2CreateInfoKHR;
13125
13126typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
13127typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularityKHR)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
13128typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
13129typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2KHR)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
13130
13131#ifndef VK_NO_PROTOTYPES
13132#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13133VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2KHR(
13134 VkCommandBuffer commandBuffer,
13135 VkBuffer buffer,
13136 VkDeviceSize offset,
13137 VkDeviceSize size,
13138 VkIndexType indexType);
13139#endif
13140
13141#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13142VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularityKHR(
13143 VkDevice device,
13144 const VkRenderingAreaInfo* pRenderingAreaInfo,
13145 VkExtent2D* pGranularity);
13146#endif
13147
13148#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13149VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayoutKHR(
13150 VkDevice device,
13151 const VkDeviceImageSubresourceInfo* pInfo,
13152 VkSubresourceLayout2* pLayout);
13153#endif
13154
13155#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13156VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2KHR(
13157 VkDevice device,
13158 VkImage image,
13159 const VkImageSubresource2* pSubresource,
13160 VkSubresourceLayout2* pLayout);
13161#endif
13162#endif
13163
13164
13165// VK_KHR_present_id2 is a preprocessor guard. Do not pass it to API calls.
13166#define VK_KHR_present_id2 1
13167#define VK_KHR_PRESENT_ID_2_SPEC_VERSION 1
13168#define VK_KHR_PRESENT_ID_2_EXTENSION_NAME "VK_KHR_present_id2"
13169typedef struct VkSurfaceCapabilitiesPresentId2KHR {
13170 VkStructureType sType;
13171 void* pNext;
13172 VkBool32 presentId2Supported;
13173} VkSurfaceCapabilitiesPresentId2KHR;
13174
13175typedef struct VkPresentId2KHR {
13176 VkStructureType sType;
13177 const void* pNext;
13178 uint32_t swapchainCount;
13179 const uint64_t* pPresentIds;
13180} VkPresentId2KHR;
13181
13182typedef struct VkPhysicalDevicePresentId2FeaturesKHR {
13183 VkStructureType sType;
13184 void* pNext;
13185 VkBool32 presentId2;
13186} VkPhysicalDevicePresentId2FeaturesKHR;
13187
13188
13189
13190// VK_KHR_present_wait2 is a preprocessor guard. Do not pass it to API calls.
13191#define VK_KHR_present_wait2 1
13192#define VK_KHR_PRESENT_WAIT_2_SPEC_VERSION 1
13193#define VK_KHR_PRESENT_WAIT_2_EXTENSION_NAME "VK_KHR_present_wait2"
13194typedef struct VkSurfaceCapabilitiesPresentWait2KHR {
13195 VkStructureType sType;
13196 void* pNext;
13197 VkBool32 presentWait2Supported;
13198} VkSurfaceCapabilitiesPresentWait2KHR;
13199
13200typedef struct VkPhysicalDevicePresentWait2FeaturesKHR {
13201 VkStructureType sType;
13202 void* pNext;
13203 VkBool32 presentWait2;
13204} VkPhysicalDevicePresentWait2FeaturesKHR;
13205
13206typedef struct VkPresentWait2InfoKHR {
13207 VkStructureType sType;
13208 const void* pNext;
13209 uint64_t presentId;
13210 uint64_t timeout;
13211} VkPresentWait2InfoKHR;
13212
13213typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresent2KHR)(VkDevice device, VkSwapchainKHR swapchain, const VkPresentWait2InfoKHR* pPresentWait2Info);
13214
13215#ifndef VK_NO_PROTOTYPES
13216#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13217VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresent2KHR(
13218 VkDevice device,
13219 VkSwapchainKHR swapchain,
13220 const VkPresentWait2InfoKHR* pPresentWait2Info);
13221#endif
13222#endif
13223
13224
13225// VK_KHR_ray_tracing_position_fetch is a preprocessor guard. Do not pass it to API calls.
13226#define VK_KHR_ray_tracing_position_fetch 1
13227#define VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION 1
13228#define VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME "VK_KHR_ray_tracing_position_fetch"
13229typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR {
13230 VkStructureType sType;
13231 void* pNext;
13232 VkBool32 rayTracingPositionFetch;
13233} VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
13234
13235
13236
13237// VK_KHR_pipeline_binary is a preprocessor guard. Do not pass it to API calls.
13238#define VK_KHR_pipeline_binary 1
13239VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineBinaryKHR)
13240#define VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR 32U
13241#define VK_KHR_PIPELINE_BINARY_SPEC_VERSION 1
13242#define VK_KHR_PIPELINE_BINARY_EXTENSION_NAME "VK_KHR_pipeline_binary"
13243typedef struct VkPhysicalDevicePipelineBinaryFeaturesKHR {
13244 VkStructureType sType;
13245 void* pNext;
13246 VkBool32 pipelineBinaries;
13247} VkPhysicalDevicePipelineBinaryFeaturesKHR;
13248
13249typedef struct VkPhysicalDevicePipelineBinaryPropertiesKHR {
13250 VkStructureType sType;
13251 void* pNext;
13252 VkBool32 pipelineBinaryInternalCache;
13253 VkBool32 pipelineBinaryInternalCacheControl;
13254 VkBool32 pipelineBinaryPrefersInternalCache;
13255 VkBool32 pipelineBinaryPrecompiledInternalCache;
13256 VkBool32 pipelineBinaryCompressedData;
13257} VkPhysicalDevicePipelineBinaryPropertiesKHR;
13258
13259typedef struct VkDevicePipelineBinaryInternalCacheControlKHR {
13260 VkStructureType sType;
13261 const void* pNext;
13262 VkBool32 disableInternalCache;
13263} VkDevicePipelineBinaryInternalCacheControlKHR;
13264
13265typedef struct VkPipelineBinaryKeyKHR {
13266 VkStructureType sType;
13267 void* pNext;
13268 uint32_t keySize;
13269 uint8_t key[VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR];
13270} VkPipelineBinaryKeyKHR;
13271
13272typedef struct VkPipelineBinaryDataKHR {
13273 size_t dataSize;
13274 void* pData;
13275} VkPipelineBinaryDataKHR;
13276
13277typedef struct VkPipelineBinaryKeysAndDataKHR {
13278 uint32_t binaryCount;
13279 const VkPipelineBinaryKeyKHR* pPipelineBinaryKeys;
13280 const VkPipelineBinaryDataKHR* pPipelineBinaryData;
13281} VkPipelineBinaryKeysAndDataKHR;
13282
13283typedef struct VkPipelineCreateInfoKHR {
13284 VkStructureType sType;
13285 void* pNext;
13286} VkPipelineCreateInfoKHR;
13287
13288typedef struct VkPipelineBinaryCreateInfoKHR {
13289 VkStructureType sType;
13290 const void* pNext;
13291 const VkPipelineBinaryKeysAndDataKHR* pKeysAndDataInfo;
13292 VkPipeline pipeline;
13293 const VkPipelineCreateInfoKHR* pPipelineCreateInfo;
13294} VkPipelineBinaryCreateInfoKHR;
13295
13296typedef struct VkPipelineBinaryInfoKHR {
13297 VkStructureType sType;
13298 const void* pNext;
13299 uint32_t binaryCount;
13300 const VkPipelineBinaryKHR* pPipelineBinaries;
13301} VkPipelineBinaryInfoKHR;
13302
13303typedef struct VkReleaseCapturedPipelineDataInfoKHR {
13304 VkStructureType sType;
13305 void* pNext;
13306 VkPipeline pipeline;
13307} VkReleaseCapturedPipelineDataInfoKHR;
13308
13309typedef struct VkPipelineBinaryDataInfoKHR {
13310 VkStructureType sType;
13311 void* pNext;
13312 VkPipelineBinaryKHR pipelineBinary;
13313} VkPipelineBinaryDataInfoKHR;
13314
13315typedef struct VkPipelineBinaryHandlesInfoKHR {
13316 VkStructureType sType;
13317 const void* pNext;
13318 uint32_t pipelineBinaryCount;
13319 VkPipelineBinaryKHR* pPipelineBinaries;
13320} VkPipelineBinaryHandlesInfoKHR;
13321
13322typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineBinariesKHR)(VkDevice device, const VkPipelineBinaryCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineBinaryHandlesInfoKHR* pBinaries);
13323typedef void (VKAPI_PTR *PFN_vkDestroyPipelineBinaryKHR)(VkDevice device, VkPipelineBinaryKHR pipelineBinary, const VkAllocationCallbacks* pAllocator);
13324typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineKeyKHR)(VkDevice device, const VkPipelineCreateInfoKHR* pPipelineCreateInfo, VkPipelineBinaryKeyKHR* pPipelineKey);
13325typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineBinaryDataKHR)(VkDevice device, const VkPipelineBinaryDataInfoKHR* pInfo, VkPipelineBinaryKeyKHR* pPipelineBinaryKey, size_t* pPipelineBinaryDataSize, void* pPipelineBinaryData);
13326typedef VkResult (VKAPI_PTR *PFN_vkReleaseCapturedPipelineDataKHR)(VkDevice device, const VkReleaseCapturedPipelineDataInfoKHR* pInfo, const VkAllocationCallbacks* pAllocator);
13327
13328#ifndef VK_NO_PROTOTYPES
13329#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13330VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineBinariesKHR(
13331 VkDevice device,
13332 const VkPipelineBinaryCreateInfoKHR* pCreateInfo,
13333 const VkAllocationCallbacks* pAllocator,
13334 VkPipelineBinaryHandlesInfoKHR* pBinaries);
13335#endif
13336
13337#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13338VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineBinaryKHR(
13339 VkDevice device,
13340 VkPipelineBinaryKHR pipelineBinary,
13341 const VkAllocationCallbacks* pAllocator);
13342#endif
13343
13344#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13345VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineKeyKHR(
13346 VkDevice device,
13347 const VkPipelineCreateInfoKHR* pPipelineCreateInfo,
13348 VkPipelineBinaryKeyKHR* pPipelineKey);
13349#endif
13350
13351#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13352VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineBinaryDataKHR(
13353 VkDevice device,
13354 const VkPipelineBinaryDataInfoKHR* pInfo,
13355 VkPipelineBinaryKeyKHR* pPipelineBinaryKey,
13356 size_t* pPipelineBinaryDataSize,
13357 void* pPipelineBinaryData);
13358#endif
13359
13360#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13361VKAPI_ATTR VkResult VKAPI_CALL vkReleaseCapturedPipelineDataKHR(
13362 VkDevice device,
13363 const VkReleaseCapturedPipelineDataInfoKHR* pInfo,
13364 const VkAllocationCallbacks* pAllocator);
13365#endif
13366#endif
13367
13368
13369// VK_KHR_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
13370#define VK_KHR_surface_maintenance1 1
13371#define VK_KHR_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
13372#define VK_KHR_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_surface_maintenance1"
13373
13374typedef enum VkPresentScalingFlagBitsKHR {
13375 VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR = 0x00000001,
13376 VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR = 0x00000002,
13377 VK_PRESENT_SCALING_STRETCH_BIT_KHR = 0x00000004,
13378 VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR,
13379 VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR,
13380 VK_PRESENT_SCALING_STRETCH_BIT_EXT = VK_PRESENT_SCALING_STRETCH_BIT_KHR,
13381 VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13382} VkPresentScalingFlagBitsKHR;
13383typedef VkFlags VkPresentScalingFlagsKHR;
13384
13385typedef enum VkPresentGravityFlagBitsKHR {
13386 VK_PRESENT_GRAVITY_MIN_BIT_KHR = 0x00000001,
13387 VK_PRESENT_GRAVITY_MAX_BIT_KHR = 0x00000002,
13388 VK_PRESENT_GRAVITY_CENTERED_BIT_KHR = 0x00000004,
13389 VK_PRESENT_GRAVITY_MIN_BIT_EXT = VK_PRESENT_GRAVITY_MIN_BIT_KHR,
13390 VK_PRESENT_GRAVITY_MAX_BIT_EXT = VK_PRESENT_GRAVITY_MAX_BIT_KHR,
13391 VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = VK_PRESENT_GRAVITY_CENTERED_BIT_KHR,
13392 VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13393} VkPresentGravityFlagBitsKHR;
13394typedef VkFlags VkPresentGravityFlagsKHR;
13395typedef struct VkSurfacePresentModeKHR {
13396 VkStructureType sType;
13397 void* pNext;
13398 VkPresentModeKHR presentMode;
13399} VkSurfacePresentModeKHR;
13400
13401typedef struct VkSurfacePresentScalingCapabilitiesKHR {
13402 VkStructureType sType;
13403 void* pNext;
13404 VkPresentScalingFlagsKHR supportedPresentScaling;
13405 VkPresentGravityFlagsKHR supportedPresentGravityX;
13406 VkPresentGravityFlagsKHR supportedPresentGravityY;
13407 VkExtent2D minScaledImageExtent;
13408 VkExtent2D maxScaledImageExtent;
13409} VkSurfacePresentScalingCapabilitiesKHR;
13410
13411typedef struct VkSurfacePresentModeCompatibilityKHR {
13412 VkStructureType sType;
13413 void* pNext;
13414 uint32_t presentModeCount;
13415 VkPresentModeKHR* pPresentModes;
13416} VkSurfacePresentModeCompatibilityKHR;
13417
13418
13419
13420// VK_KHR_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
13421#define VK_KHR_swapchain_maintenance1 1
13422#define VK_KHR_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
13423#define VK_KHR_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_swapchain_maintenance1"
13424typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR {
13425 VkStructureType sType;
13426 void* pNext;
13427 VkBool32 swapchainMaintenance1;
13428} VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR;
13429
13430typedef struct VkSwapchainPresentFenceInfoKHR {
13431 VkStructureType sType;
13432 const void* pNext;
13433 uint32_t swapchainCount;
13434 const VkFence* pFences;
13435} VkSwapchainPresentFenceInfoKHR;
13436
13437typedef struct VkSwapchainPresentModesCreateInfoKHR {
13438 VkStructureType sType;
13439 const void* pNext;
13440 uint32_t presentModeCount;
13441 const VkPresentModeKHR* pPresentModes;
13442} VkSwapchainPresentModesCreateInfoKHR;
13443
13444typedef struct VkSwapchainPresentModeInfoKHR {
13445 VkStructureType sType;
13446 const void* pNext;
13447 uint32_t swapchainCount;
13448 const VkPresentModeKHR* pPresentModes;
13449} VkSwapchainPresentModeInfoKHR;
13450
13451typedef struct VkSwapchainPresentScalingCreateInfoKHR {
13452 VkStructureType sType;
13453 const void* pNext;
13454 VkPresentScalingFlagsKHR scalingBehavior;
13455 VkPresentGravityFlagsKHR presentGravityX;
13456 VkPresentGravityFlagsKHR presentGravityY;
13457} VkSwapchainPresentScalingCreateInfoKHR;
13458
13459typedef struct VkReleaseSwapchainImagesInfoKHR {
13460 VkStructureType sType;
13461 const void* pNext;
13462 VkSwapchainKHR swapchain;
13463 uint32_t imageIndexCount;
13464 const uint32_t* pImageIndices;
13465} VkReleaseSwapchainImagesInfoKHR;
13466
13467typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesKHR)(VkDevice device, const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
13468
13469#ifndef VK_NO_PROTOTYPES
13470#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13471VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesKHR(
13472 VkDevice device,
13473 const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
13474#endif
13475#endif
13476
13477
13478// VK_KHR_internally_synchronized_queues is a preprocessor guard. Do not pass it to API calls.
13479#define VK_KHR_internally_synchronized_queues 1
13480#define VK_KHR_INTERNALLY_SYNCHRONIZED_QUEUES_SPEC_VERSION 1
13481#define VK_KHR_INTERNALLY_SYNCHRONIZED_QUEUES_EXTENSION_NAME "VK_KHR_internally_synchronized_queues"
13482typedef struct VkPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {
13483 VkStructureType sType;
13484 void* pNext;
13485 VkBool32 internallySynchronizedQueues;
13486} VkPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR;
13487
13488
13489
13490// VK_KHR_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
13491#define VK_KHR_cooperative_matrix 1
13492#define VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION 2
13493#define VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_KHR_cooperative_matrix"
13494
13495typedef enum VkComponentTypeKHR {
13496 VK_COMPONENT_TYPE_FLOAT16_KHR = 0,
13497 VK_COMPONENT_TYPE_FLOAT32_KHR = 1,
13498 VK_COMPONENT_TYPE_FLOAT64_KHR = 2,
13499 VK_COMPONENT_TYPE_SINT8_KHR = 3,
13500 VK_COMPONENT_TYPE_SINT16_KHR = 4,
13501 VK_COMPONENT_TYPE_SINT32_KHR = 5,
13502 VK_COMPONENT_TYPE_SINT64_KHR = 6,
13503 VK_COMPONENT_TYPE_UINT8_KHR = 7,
13504 VK_COMPONENT_TYPE_UINT16_KHR = 8,
13505 VK_COMPONENT_TYPE_UINT32_KHR = 9,
13506 VK_COMPONENT_TYPE_UINT64_KHR = 10,
13507 VK_COMPONENT_TYPE_BFLOAT16_KHR = 1000141000,
13508 VK_COMPONENT_TYPE_SINT8_PACKED_NV = 1000491000,
13509 VK_COMPONENT_TYPE_UINT8_PACKED_NV = 1000491001,
13510 VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT = 1000491002,
13511 VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT = 1000491003,
13512 VK_COMPONENT_TYPE_FLOAT6_E2M3_EXT = 1000672000,
13513 VK_COMPONENT_TYPE_FLOAT6_E3M2_EXT = 1000672001,
13514 VK_COMPONENT_TYPE_FLOAT4_E2M1_EXT = 1000672002,
13515 VK_COMPONENT_TYPE_FLOAT8_UNSIGNED_E8M0_EXT = 1000672003,
13516 VK_COMPONENT_TYPE_MXINT8_EXT = 1000672004,
13517 VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR,
13518 VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR,
13519 VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR,
13520 VK_COMPONENT_TYPE_SINT8_NV = VK_COMPONENT_TYPE_SINT8_KHR,
13521 VK_COMPONENT_TYPE_SINT16_NV = VK_COMPONENT_TYPE_SINT16_KHR,
13522 VK_COMPONENT_TYPE_SINT32_NV = VK_COMPONENT_TYPE_SINT32_KHR,
13523 VK_COMPONENT_TYPE_SINT64_NV = VK_COMPONENT_TYPE_SINT64_KHR,
13524 VK_COMPONENT_TYPE_UINT8_NV = VK_COMPONENT_TYPE_UINT8_KHR,
13525 VK_COMPONENT_TYPE_UINT16_NV = VK_COMPONENT_TYPE_UINT16_KHR,
13526 VK_COMPONENT_TYPE_UINT32_NV = VK_COMPONENT_TYPE_UINT32_KHR,
13527 VK_COMPONENT_TYPE_UINT64_NV = VK_COMPONENT_TYPE_UINT64_KHR,
13528 VK_COMPONENT_TYPE_FLOAT_E4M3_NV = VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT,
13529 VK_COMPONENT_TYPE_FLOAT_E5M2_NV = VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT,
13530 VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
13531} VkComponentTypeKHR;
13532
13533typedef enum VkScopeKHR {
13534 VK_SCOPE_DEVICE_KHR = 1,
13535 VK_SCOPE_WORKGROUP_KHR = 2,
13536 VK_SCOPE_SUBGROUP_KHR = 3,
13537 VK_SCOPE_QUEUE_FAMILY_KHR = 5,
13538 VK_SCOPE_DEVICE_NV = VK_SCOPE_DEVICE_KHR,
13539 VK_SCOPE_WORKGROUP_NV = VK_SCOPE_WORKGROUP_KHR,
13540 VK_SCOPE_SUBGROUP_NV = VK_SCOPE_SUBGROUP_KHR,
13541 VK_SCOPE_QUEUE_FAMILY_NV = VK_SCOPE_QUEUE_FAMILY_KHR,
13542 VK_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
13543} VkScopeKHR;
13544typedef struct VkCooperativeMatrixPropertiesKHR {
13545 VkStructureType sType;
13546 void* pNext;
13547 uint32_t MSize;
13548 uint32_t NSize;
13549 uint32_t KSize;
13550 VkComponentTypeKHR AType;
13551 VkComponentTypeKHR BType;
13552 VkComponentTypeKHR CType;
13553 VkComponentTypeKHR ResultType;
13554 VkBool32 saturatingAccumulation;
13555 VkScopeKHR scope;
13556} VkCooperativeMatrixPropertiesKHR;
13557
13558typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR {
13559 VkStructureType sType;
13560 void* pNext;
13561 VkBool32 cooperativeMatrix;
13562 VkBool32 cooperativeMatrixRobustBufferAccess;
13563} VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
13564
13565typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR {
13566 VkStructureType sType;
13567 void* pNext;
13568 VkShaderStageFlags cooperativeMatrixSupportedStages;
13569} VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
13570
13571typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties);
13572
13573#ifndef VK_NO_PROTOTYPES
13574#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13575VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
13576 VkPhysicalDevice physicalDevice,
13577 uint32_t* pPropertyCount,
13578 VkCooperativeMatrixPropertiesKHR* pProperties);
13579#endif
13580#endif
13581
13582
13583// VK_KHR_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
13584#define VK_KHR_compute_shader_derivatives 1
13585#define VK_KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
13586#define VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_KHR_compute_shader_derivatives"
13587typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR {
13588 VkStructureType sType;
13589 void* pNext;
13590 VkBool32 computeDerivativeGroupQuads;
13591 VkBool32 computeDerivativeGroupLinear;
13592} VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR;
13593
13594typedef struct VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR {
13595 VkStructureType sType;
13596 void* pNext;
13597 VkBool32 meshAndTaskShaderDerivatives;
13598} VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR;
13599
13600
13601
13602// VK_KHR_video_decode_av1 is a preprocessor guard. Do not pass it to API calls.
13603#define VK_KHR_video_decode_av1 1
13604#include "vk_video/vulkan_video_codec_av1std.h"
13605#include "vk_video/vulkan_video_codec_av1std_decode.h"
13606#define VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR 7U
13607#define VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION 1
13608#define VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME "VK_KHR_video_decode_av1"
13609typedef struct VkVideoDecodeAV1ProfileInfoKHR {
13610 VkStructureType sType;
13611 const void* pNext;
13612 StdVideoAV1Profile stdProfile;
13613 VkBool32 filmGrainSupport;
13614} VkVideoDecodeAV1ProfileInfoKHR;
13615
13616typedef struct VkVideoDecodeAV1CapabilitiesKHR {
13617 VkStructureType sType;
13618 void* pNext;
13619 StdVideoAV1Level maxLevel;
13620} VkVideoDecodeAV1CapabilitiesKHR;
13621
13622typedef struct VkVideoDecodeAV1SessionParametersCreateInfoKHR {
13623 VkStructureType sType;
13624 const void* pNext;
13625 const StdVideoAV1SequenceHeader* pStdSequenceHeader;
13626} VkVideoDecodeAV1SessionParametersCreateInfoKHR;
13627
13628typedef struct VkVideoDecodeAV1PictureInfoKHR {
13629 VkStructureType sType;
13630 const void* pNext;
13631 const StdVideoDecodeAV1PictureInfo* pStdPictureInfo;
13632 int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
13633 uint32_t frameHeaderOffset;
13634 uint32_t tileCount;
13635 const uint32_t* pTileOffsets;
13636 const uint32_t* pTileSizes;
13637} VkVideoDecodeAV1PictureInfoKHR;
13638
13639typedef struct VkVideoDecodeAV1DpbSlotInfoKHR {
13640 VkStructureType sType;
13641 const void* pNext;
13642 const StdVideoDecodeAV1ReferenceInfo* pStdReferenceInfo;
13643} VkVideoDecodeAV1DpbSlotInfoKHR;
13644
13645
13646
13647// VK_KHR_video_encode_av1 is a preprocessor guard. Do not pass it to API calls.
13648#define VK_KHR_video_encode_av1 1
13649#include "vk_video/vulkan_video_codec_av1std_encode.h"
13650#define VK_KHR_VIDEO_ENCODE_AV1_SPEC_VERSION 1
13651#define VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME "VK_KHR_video_encode_av1"
13652
13653typedef enum VkVideoEncodeAV1PredictionModeKHR {
13654 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR = 0,
13655 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR = 1,
13656 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHR = 2,
13657 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHR = 3,
13658 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
13659} VkVideoEncodeAV1PredictionModeKHR;
13660
13661typedef enum VkVideoEncodeAV1RateControlGroupKHR {
13662 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR = 0,
13663 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR = 1,
13664 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR = 2,
13665 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_MAX_ENUM_KHR = 0x7FFFFFFF
13666} VkVideoEncodeAV1RateControlGroupKHR;
13667
13668typedef enum VkVideoEncodeAV1CapabilityFlagBitsKHR {
13669 VK_VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR = 0x00000001,
13670 VK_VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHR = 0x00000002,
13671 VK_VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHR = 0x00000004,
13672 VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR = 0x00000008,
13673 VK_VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR = 0x00000010,
13674 VK_VIDEO_ENCODE_AV1_CAPABILITY_COMPOUND_PREDICTION_INTRA_REFRESH_BIT_KHR = 0x00000020,
13675 VK_VIDEO_ENCODE_AV1_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13676} VkVideoEncodeAV1CapabilityFlagBitsKHR;
13677typedef VkFlags VkVideoEncodeAV1CapabilityFlagsKHR;
13678
13679typedef enum VkVideoEncodeAV1StdFlagBitsKHR {
13680 VK_VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHR = 0x00000001,
13681 VK_VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR = 0x00000002,
13682 VK_VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR = 0x00000004,
13683 VK_VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR = 0x00000008,
13684 VK_VIDEO_ENCODE_AV1_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13685} VkVideoEncodeAV1StdFlagBitsKHR;
13686typedef VkFlags VkVideoEncodeAV1StdFlagsKHR;
13687
13688typedef enum VkVideoEncodeAV1SuperblockSizeFlagBitsKHR {
13689 VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR = 0x00000001,
13690 VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR = 0x00000002,
13691 VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13692} VkVideoEncodeAV1SuperblockSizeFlagBitsKHR;
13693typedef VkFlags VkVideoEncodeAV1SuperblockSizeFlagsKHR;
13694
13695typedef enum VkVideoEncodeAV1RateControlFlagBitsKHR {
13696 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000001,
13697 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000002,
13698 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
13699 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
13700 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13701} VkVideoEncodeAV1RateControlFlagBitsKHR;
13702typedef VkFlags VkVideoEncodeAV1RateControlFlagsKHR;
13703typedef struct VkPhysicalDeviceVideoEncodeAV1FeaturesKHR {
13704 VkStructureType sType;
13705 void* pNext;
13706 VkBool32 videoEncodeAV1;
13707} VkPhysicalDeviceVideoEncodeAV1FeaturesKHR;
13708
13709typedef struct VkVideoEncodeAV1CapabilitiesKHR {
13710 VkStructureType sType;
13711 void* pNext;
13712 VkVideoEncodeAV1CapabilityFlagsKHR flags;
13713 StdVideoAV1Level maxLevel;
13714 VkExtent2D codedPictureAlignment;
13715 VkExtent2D maxTiles;
13716 VkExtent2D minTileSize;
13717 VkExtent2D maxTileSize;
13718 VkVideoEncodeAV1SuperblockSizeFlagsKHR superblockSizes;
13719 uint32_t maxSingleReferenceCount;
13720 uint32_t singleReferenceNameMask;
13721 uint32_t maxUnidirectionalCompoundReferenceCount;
13722 uint32_t maxUnidirectionalCompoundGroup1ReferenceCount;
13723 uint32_t unidirectionalCompoundReferenceNameMask;
13724 uint32_t maxBidirectionalCompoundReferenceCount;
13725 uint32_t maxBidirectionalCompoundGroup1ReferenceCount;
13726 uint32_t maxBidirectionalCompoundGroup2ReferenceCount;
13727 uint32_t bidirectionalCompoundReferenceNameMask;
13728 uint32_t maxTemporalLayerCount;
13729 uint32_t maxSpatialLayerCount;
13730 uint32_t maxOperatingPoints;
13731 uint32_t minQIndex;
13732 uint32_t maxQIndex;
13733 VkBool32 prefersGopRemainingFrames;
13734 VkBool32 requiresGopRemainingFrames;
13735 VkVideoEncodeAV1StdFlagsKHR stdSyntaxFlags;
13736} VkVideoEncodeAV1CapabilitiesKHR;
13737
13738typedef struct VkVideoEncodeAV1QIndexKHR {
13739 uint32_t intraQIndex;
13740 uint32_t predictiveQIndex;
13741 uint32_t bipredictiveQIndex;
13742} VkVideoEncodeAV1QIndexKHR;
13743
13744typedef struct VkVideoEncodeAV1QualityLevelPropertiesKHR {
13745 VkStructureType sType;
13746 void* pNext;
13747 VkVideoEncodeAV1RateControlFlagsKHR preferredRateControlFlags;
13748 uint32_t preferredGopFrameCount;
13749 uint32_t preferredKeyFramePeriod;
13750 uint32_t preferredConsecutiveBipredictiveFrameCount;
13751 uint32_t preferredTemporalLayerCount;
13752 VkVideoEncodeAV1QIndexKHR preferredConstantQIndex;
13753 uint32_t preferredMaxSingleReferenceCount;
13754 uint32_t preferredSingleReferenceNameMask;
13755 uint32_t preferredMaxUnidirectionalCompoundReferenceCount;
13756 uint32_t preferredMaxUnidirectionalCompoundGroup1ReferenceCount;
13757 uint32_t preferredUnidirectionalCompoundReferenceNameMask;
13758 uint32_t preferredMaxBidirectionalCompoundReferenceCount;
13759 uint32_t preferredMaxBidirectionalCompoundGroup1ReferenceCount;
13760 uint32_t preferredMaxBidirectionalCompoundGroup2ReferenceCount;
13761 uint32_t preferredBidirectionalCompoundReferenceNameMask;
13762} VkVideoEncodeAV1QualityLevelPropertiesKHR;
13763
13764typedef struct VkVideoEncodeAV1SessionCreateInfoKHR {
13765 VkStructureType sType;
13766 const void* pNext;
13767 VkBool32 useMaxLevel;
13768 StdVideoAV1Level maxLevel;
13769} VkVideoEncodeAV1SessionCreateInfoKHR;
13770
13771typedef struct VkVideoEncodeAV1SessionParametersCreateInfoKHR {
13772 VkStructureType sType;
13773 const void* pNext;
13774 const StdVideoAV1SequenceHeader* pStdSequenceHeader;
13775 const StdVideoEncodeAV1DecoderModelInfo* pStdDecoderModelInfo;
13776 uint32_t stdOperatingPointCount;
13777 const StdVideoEncodeAV1OperatingPointInfo* pStdOperatingPoints;
13778} VkVideoEncodeAV1SessionParametersCreateInfoKHR;
13779
13780typedef struct VkVideoEncodeAV1PictureInfoKHR {
13781 VkStructureType sType;
13782 const void* pNext;
13783 VkVideoEncodeAV1PredictionModeKHR predictionMode;
13784 VkVideoEncodeAV1RateControlGroupKHR rateControlGroup;
13785 uint32_t constantQIndex;
13786 const StdVideoEncodeAV1PictureInfo* pStdPictureInfo;
13787 int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
13788 VkBool32 primaryReferenceCdfOnly;
13789 VkBool32 generateObuExtensionHeader;
13790} VkVideoEncodeAV1PictureInfoKHR;
13791
13792typedef struct VkVideoEncodeAV1DpbSlotInfoKHR {
13793 VkStructureType sType;
13794 const void* pNext;
13795 const StdVideoEncodeAV1ReferenceInfo* pStdReferenceInfo;
13796} VkVideoEncodeAV1DpbSlotInfoKHR;
13797
13798typedef struct VkVideoEncodeAV1ProfileInfoKHR {
13799 VkStructureType sType;
13800 const void* pNext;
13801 StdVideoAV1Profile stdProfile;
13802} VkVideoEncodeAV1ProfileInfoKHR;
13803
13804typedef struct VkVideoEncodeAV1FrameSizeKHR {
13805 uint32_t intraFrameSize;
13806 uint32_t predictiveFrameSize;
13807 uint32_t bipredictiveFrameSize;
13808} VkVideoEncodeAV1FrameSizeKHR;
13809
13810typedef struct VkVideoEncodeAV1GopRemainingFrameInfoKHR {
13811 VkStructureType sType;
13812 const void* pNext;
13813 VkBool32 useGopRemainingFrames;
13814 uint32_t gopRemainingIntra;
13815 uint32_t gopRemainingPredictive;
13816 uint32_t gopRemainingBipredictive;
13817} VkVideoEncodeAV1GopRemainingFrameInfoKHR;
13818
13819typedef struct VkVideoEncodeAV1RateControlInfoKHR {
13820 VkStructureType sType;
13821 const void* pNext;
13822 VkVideoEncodeAV1RateControlFlagsKHR flags;
13823 uint32_t gopFrameCount;
13824 uint32_t keyFramePeriod;
13825 uint32_t consecutiveBipredictiveFrameCount;
13826 uint32_t temporalLayerCount;
13827} VkVideoEncodeAV1RateControlInfoKHR;
13828
13829typedef struct VkVideoEncodeAV1RateControlLayerInfoKHR {
13830 VkStructureType sType;
13831 const void* pNext;
13832 VkBool32 useMinQIndex;
13833 VkVideoEncodeAV1QIndexKHR minQIndex;
13834 VkBool32 useMaxQIndex;
13835 VkVideoEncodeAV1QIndexKHR maxQIndex;
13836 VkBool32 useMaxFrameSize;
13837 VkVideoEncodeAV1FrameSizeKHR maxFrameSize;
13838} VkVideoEncodeAV1RateControlLayerInfoKHR;
13839
13840
13841
13842// VK_KHR_video_decode_vp9 is a preprocessor guard. Do not pass it to API calls.
13843#define VK_KHR_video_decode_vp9 1
13844#include "vk_video/vulkan_video_codec_vp9std.h"
13845#include "vk_video/vulkan_video_codec_vp9std_decode.h"
13846#define VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR 3U
13847#define VK_KHR_VIDEO_DECODE_VP9_SPEC_VERSION 1
13848#define VK_KHR_VIDEO_DECODE_VP9_EXTENSION_NAME "VK_KHR_video_decode_vp9"
13849typedef struct VkPhysicalDeviceVideoDecodeVP9FeaturesKHR {
13850 VkStructureType sType;
13851 void* pNext;
13852 VkBool32 videoDecodeVP9;
13853} VkPhysicalDeviceVideoDecodeVP9FeaturesKHR;
13854
13855typedef struct VkVideoDecodeVP9ProfileInfoKHR {
13856 VkStructureType sType;
13857 const void* pNext;
13858 StdVideoVP9Profile stdProfile;
13859} VkVideoDecodeVP9ProfileInfoKHR;
13860
13861typedef struct VkVideoDecodeVP9CapabilitiesKHR {
13862 VkStructureType sType;
13863 void* pNext;
13864 StdVideoVP9Level maxLevel;
13865} VkVideoDecodeVP9CapabilitiesKHR;
13866
13867typedef struct VkVideoDecodeVP9PictureInfoKHR {
13868 VkStructureType sType;
13869 const void* pNext;
13870 const StdVideoDecodeVP9PictureInfo* pStdPictureInfo;
13871 int32_t referenceNameSlotIndices[VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR];
13872 uint32_t uncompressedHeaderOffset;
13873 uint32_t compressedHeaderOffset;
13874 uint32_t tilesOffset;
13875} VkVideoDecodeVP9PictureInfoKHR;
13876
13877
13878
13879// VK_KHR_video_maintenance1 is a preprocessor guard. Do not pass it to API calls.
13880#define VK_KHR_video_maintenance1 1
13881#define VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION 1
13882#define VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_video_maintenance1"
13883typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR {
13884 VkStructureType sType;
13885 void* pNext;
13886 VkBool32 videoMaintenance1;
13887} VkPhysicalDeviceVideoMaintenance1FeaturesKHR;
13888
13889typedef struct VkVideoInlineQueryInfoKHR {
13890 VkStructureType sType;
13891 const void* pNext;
13892 VkQueryPool queryPool;
13893 uint32_t firstQuery;
13894 uint32_t queryCount;
13895} VkVideoInlineQueryInfoKHR;
13896
13897
13898
13899// VK_KHR_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
13900#define VK_KHR_vertex_attribute_divisor 1
13901#define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1
13902#define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_KHR_vertex_attribute_divisor"
13903typedef VkPhysicalDeviceVertexAttributeDivisorProperties VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR;
13904
13905typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionKHR;
13906
13907typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoKHR;
13908
13909typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
13910
13911
13912
13913// VK_KHR_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
13914#define VK_KHR_load_store_op_none 1
13915#define VK_KHR_LOAD_STORE_OP_NONE_SPEC_VERSION 1
13916#define VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_KHR_load_store_op_none"
13917
13918
13919// VK_KHR_unified_image_layouts is a preprocessor guard. Do not pass it to API calls.
13920#define VK_KHR_unified_image_layouts 1
13921#define VK_KHR_UNIFIED_IMAGE_LAYOUTS_SPEC_VERSION 1
13922#define VK_KHR_UNIFIED_IMAGE_LAYOUTS_EXTENSION_NAME "VK_KHR_unified_image_layouts"
13923typedef struct VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR {
13924 VkStructureType sType;
13925 void* pNext;
13926 VkBool32 unifiedImageLayouts;
13927 VkBool32 unifiedImageLayoutsVideo;
13928} VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR;
13929
13930typedef struct VkAttachmentFeedbackLoopInfoEXT {
13931 VkStructureType sType;
13932 const void* pNext;
13933 VkBool32 feedbackLoopEnable;
13934} VkAttachmentFeedbackLoopInfoEXT;
13935
13936
13937
13938// VK_KHR_shader_float_controls2 is a preprocessor guard. Do not pass it to API calls.
13939#define VK_KHR_shader_float_controls2 1
13940#define VK_KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION 1
13941#define VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME "VK_KHR_shader_float_controls2"
13942typedef VkPhysicalDeviceShaderFloatControls2Features VkPhysicalDeviceShaderFloatControls2FeaturesKHR;
13943
13944
13945
13946// VK_KHR_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
13947#define VK_KHR_index_type_uint8 1
13948#define VK_KHR_INDEX_TYPE_UINT8_SPEC_VERSION 1
13949#define VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_KHR_index_type_uint8"
13950typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesKHR;
13951
13952
13953
13954// VK_KHR_line_rasterization is a preprocessor guard. Do not pass it to API calls.
13955#define VK_KHR_line_rasterization 1
13956#define VK_KHR_LINE_RASTERIZATION_SPEC_VERSION 1
13957#define VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME "VK_KHR_line_rasterization"
13958typedef VkLineRasterizationMode VkLineRasterizationModeKHR;
13959
13960typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesKHR;
13961
13962typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesKHR;
13963
13964typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoKHR;
13965
13966typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleKHR)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
13967
13968#ifndef VK_NO_PROTOTYPES
13969#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13970VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleKHR(
13971 VkCommandBuffer commandBuffer,
13972 uint32_t lineStippleFactor,
13973 uint16_t lineStipplePattern);
13974#endif
13975#endif
13976
13977
13978// VK_KHR_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
13979#define VK_KHR_calibrated_timestamps 1
13980#define VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
13981#define VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_KHR_calibrated_timestamps"
13982
13983typedef enum VkTimeDomainKHR {
13984 VK_TIME_DOMAIN_DEVICE_KHR = 0,
13985 VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR = 1,
13986 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR = 2,
13987 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR = 3,
13988 VK_TIME_DOMAIN_PRESENT_STAGE_LOCAL_EXT = 1000208000,
13989 VK_TIME_DOMAIN_SWAPCHAIN_LOCAL_EXT = 1000208001,
13990 VK_TIME_DOMAIN_DEVICE_EXT = VK_TIME_DOMAIN_DEVICE_KHR,
13991 VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
13992 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
13993 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR,
13994 VK_TIME_DOMAIN_MAX_ENUM_KHR = 0x7FFFFFFF
13995} VkTimeDomainKHR;
13996typedef struct VkCalibratedTimestampInfoKHR {
13997 VkStructureType sType;
13998 const void* pNext;
13999 VkTimeDomainKHR timeDomain;
14000} VkCalibratedTimestampInfoKHR;
14001
14002typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
14003typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsKHR)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
14004
14005#ifndef VK_NO_PROTOTYPES
14006#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14007VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
14008 VkPhysicalDevice physicalDevice,
14009 uint32_t* pTimeDomainCount,
14010 VkTimeDomainKHR* pTimeDomains);
14011#endif
14012
14013#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14014VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsKHR(
14015 VkDevice device,
14016 uint32_t timestampCount,
14017 const VkCalibratedTimestampInfoKHR* pTimestampInfos,
14018 uint64_t* pTimestamps,
14019 uint64_t* pMaxDeviation);
14020#endif
14021#endif
14022
14023
14024// VK_KHR_shader_expect_assume is a preprocessor guard. Do not pass it to API calls.
14025#define VK_KHR_shader_expect_assume 1
14026#define VK_KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION 1
14027#define VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME "VK_KHR_shader_expect_assume"
14028typedef VkPhysicalDeviceShaderExpectAssumeFeatures VkPhysicalDeviceShaderExpectAssumeFeaturesKHR;
14029
14030
14031
14032// VK_KHR_maintenance6 is a preprocessor guard. Do not pass it to API calls.
14033#define VK_KHR_maintenance6 1
14034#define VK_KHR_MAINTENANCE_6_SPEC_VERSION 1
14035#define VK_KHR_MAINTENANCE_6_EXTENSION_NAME "VK_KHR_maintenance6"
14036typedef VkPhysicalDeviceMaintenance6Features VkPhysicalDeviceMaintenance6FeaturesKHR;
14037
14038typedef VkPhysicalDeviceMaintenance6Properties VkPhysicalDeviceMaintenance6PropertiesKHR;
14039
14040typedef VkBindMemoryStatus VkBindMemoryStatusKHR;
14041
14042typedef VkBindDescriptorSetsInfo VkBindDescriptorSetsInfoKHR;
14043
14044typedef VkPushConstantsInfo VkPushConstantsInfoKHR;
14045
14046typedef VkPushDescriptorSetInfo VkPushDescriptorSetInfoKHR;
14047
14048typedef VkPushDescriptorSetWithTemplateInfo VkPushDescriptorSetWithTemplateInfoKHR;
14049
14050typedef struct VkSetDescriptorBufferOffsetsInfoEXT {
14051 VkStructureType sType;
14052 const void* pNext;
14053 VkShaderStageFlags stageFlags;
14054 VkPipelineLayout layout;
14055 uint32_t firstSet;
14056 uint32_t setCount;
14057 const uint32_t* pBufferIndices;
14058 const VkDeviceSize* pOffsets;
14059} VkSetDescriptorBufferOffsetsInfoEXT;
14060
14061typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT {
14062 VkStructureType sType;
14063 const void* pNext;
14064 VkShaderStageFlags stageFlags;
14065 VkPipelineLayout layout;
14066 uint32_t set;
14067} VkBindDescriptorBufferEmbeddedSamplersInfoEXT;
14068
14069typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
14070typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2KHR)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo* pPushConstantsInfo);
14071typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
14072typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
14073typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer commandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
14074typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
14075
14076#ifndef VK_NO_PROTOTYPES
14077#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14078VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2KHR(
14079 VkCommandBuffer commandBuffer,
14080 const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
14081#endif
14082
14083#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14084VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2KHR(
14085 VkCommandBuffer commandBuffer,
14086 const VkPushConstantsInfo* pPushConstantsInfo);
14087#endif
14088
14089#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14090VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2KHR(
14091 VkCommandBuffer commandBuffer,
14092 const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
14093#endif
14094
14095#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14096VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2KHR(
14097 VkCommandBuffer commandBuffer,
14098 const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
14099#endif
14100
14101#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14102VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsets2EXT(
14103 VkCommandBuffer commandBuffer,
14104 const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
14105#endif
14106
14107#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14108VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
14109 VkCommandBuffer commandBuffer,
14110 const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
14111#endif
14112#endif
14113
14114
14115// VK_KHR_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
14116#define VK_KHR_copy_memory_indirect 1
14117#define VK_KHR_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
14118#define VK_KHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_KHR_copy_memory_indirect"
14119
14120typedef enum VkAddressCopyFlagBitsKHR {
14121 VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR = 0x00000001,
14122 VK_ADDRESS_COPY_SPARSE_BIT_KHR = 0x00000002,
14123 VK_ADDRESS_COPY_PROTECTED_BIT_KHR = 0x00000004,
14124 VK_ADDRESS_COPY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14125} VkAddressCopyFlagBitsKHR;
14126typedef VkFlags VkAddressCopyFlagsKHR;
14127typedef struct VkCopyMemoryIndirectCommandKHR {
14128 VkDeviceAddress srcAddress;
14129 VkDeviceAddress dstAddress;
14130 VkDeviceSize size;
14131} VkCopyMemoryIndirectCommandKHR;
14132
14133typedef struct VkCopyMemoryIndirectInfoKHR {
14134 VkStructureType sType;
14135 const void* pNext;
14136 VkAddressCopyFlagsKHR srcCopyFlags;
14137 VkAddressCopyFlagsKHR dstCopyFlags;
14138 uint32_t copyCount;
14139 VkStridedDeviceAddressRangeKHR copyAddressRange;
14140} VkCopyMemoryIndirectInfoKHR;
14141
14142typedef struct VkCopyMemoryToImageIndirectCommandKHR {
14143 VkDeviceAddress srcAddress;
14144 uint32_t bufferRowLength;
14145 uint32_t bufferImageHeight;
14146 VkImageSubresourceLayers imageSubresource;
14147 VkOffset3D imageOffset;
14148 VkExtent3D imageExtent;
14149} VkCopyMemoryToImageIndirectCommandKHR;
14150
14151typedef struct VkCopyMemoryToImageIndirectInfoKHR {
14152 VkStructureType sType;
14153 const void* pNext;
14154 VkAddressCopyFlagsKHR srcCopyFlags;
14155 uint32_t copyCount;
14156 VkStridedDeviceAddressRangeKHR copyAddressRange;
14157 VkImage dstImage;
14158 VkImageLayout dstImageLayout;
14159 const VkImageSubresourceLayers* pImageSubresources;
14160} VkCopyMemoryToImageIndirectInfoKHR;
14161
14162typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR {
14163 VkStructureType sType;
14164 void* pNext;
14165 VkBool32 indirectMemoryCopy;
14166 VkBool32 indirectMemoryToImageCopy;
14167} VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR;
14168
14169typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR {
14170 VkStructureType sType;
14171 void* pNext;
14172 VkQueueFlags supportedQueues;
14173} VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR;
14174
14175typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo);
14176typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo);
14177
14178#ifndef VK_NO_PROTOTYPES
14179#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14180VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectKHR(
14181 VkCommandBuffer commandBuffer,
14182 const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo);
14183#endif
14184
14185#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14186VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectKHR(
14187 VkCommandBuffer commandBuffer,
14188 const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo);
14189#endif
14190#endif
14191
14192
14193// VK_KHR_video_encode_intra_refresh is a preprocessor guard. Do not pass it to API calls.
14194#define VK_KHR_video_encode_intra_refresh 1
14195#define VK_KHR_VIDEO_ENCODE_INTRA_REFRESH_SPEC_VERSION 1
14196#define VK_KHR_VIDEO_ENCODE_INTRA_REFRESH_EXTENSION_NAME "VK_KHR_video_encode_intra_refresh"
14197
14198typedef enum VkVideoEncodeIntraRefreshModeFlagBitsKHR {
14199 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_NONE_KHR = 0,
14200 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_PER_PICTURE_PARTITION_BIT_KHR = 0x00000001,
14201 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_BASED_BIT_KHR = 0x00000002,
14202 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_ROW_BASED_BIT_KHR = 0x00000004,
14203 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_COLUMN_BASED_BIT_KHR = 0x00000008,
14204 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14205} VkVideoEncodeIntraRefreshModeFlagBitsKHR;
14206typedef VkFlags VkVideoEncodeIntraRefreshModeFlagsKHR;
14207typedef struct VkVideoEncodeIntraRefreshCapabilitiesKHR {
14208 VkStructureType sType;
14209 void* pNext;
14210 VkVideoEncodeIntraRefreshModeFlagsKHR intraRefreshModes;
14211 uint32_t maxIntraRefreshCycleDuration;
14212 uint32_t maxIntraRefreshActiveReferencePictures;
14213 VkBool32 partitionIndependentIntraRefreshRegions;
14214 VkBool32 nonRectangularIntraRefreshRegions;
14215} VkVideoEncodeIntraRefreshCapabilitiesKHR;
14216
14217typedef struct VkVideoEncodeSessionIntraRefreshCreateInfoKHR {
14218 VkStructureType sType;
14219 const void* pNext;
14220 VkVideoEncodeIntraRefreshModeFlagBitsKHR intraRefreshMode;
14221} VkVideoEncodeSessionIntraRefreshCreateInfoKHR;
14222
14223typedef struct VkVideoEncodeIntraRefreshInfoKHR {
14224 VkStructureType sType;
14225 const void* pNext;
14226 uint32_t intraRefreshCycleDuration;
14227 uint32_t intraRefreshIndex;
14228} VkVideoEncodeIntraRefreshInfoKHR;
14229
14230typedef struct VkVideoReferenceIntraRefreshInfoKHR {
14231 VkStructureType sType;
14232 const void* pNext;
14233 uint32_t dirtyIntraRefreshRegions;
14234} VkVideoReferenceIntraRefreshInfoKHR;
14235
14236typedef struct VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {
14237 VkStructureType sType;
14238 void* pNext;
14239 VkBool32 videoEncodeIntraRefresh;
14240} VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR;
14241
14242
14243
14244// VK_KHR_video_encode_quantization_map is a preprocessor guard. Do not pass it to API calls.
14245#define VK_KHR_video_encode_quantization_map 1
14246#define VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_SPEC_VERSION 2
14247#define VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME "VK_KHR_video_encode_quantization_map"
14248typedef struct VkVideoEncodeQuantizationMapCapabilitiesKHR {
14249 VkStructureType sType;
14250 void* pNext;
14251 VkExtent2D maxQuantizationMapExtent;
14252} VkVideoEncodeQuantizationMapCapabilitiesKHR;
14253
14254typedef struct VkVideoFormatQuantizationMapPropertiesKHR {
14255 VkStructureType sType;
14256 void* pNext;
14257 VkExtent2D quantizationMapTexelSize;
14258} VkVideoFormatQuantizationMapPropertiesKHR;
14259
14260typedef struct VkVideoEncodeQuantizationMapInfoKHR {
14261 VkStructureType sType;
14262 const void* pNext;
14263 VkImageView quantizationMap;
14264 VkExtent2D quantizationMapExtent;
14265} VkVideoEncodeQuantizationMapInfoKHR;
14266
14267typedef struct VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
14268 VkStructureType sType;
14269 const void* pNext;
14270 VkExtent2D quantizationMapTexelSize;
14271} VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR;
14272
14273typedef struct VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
14274 VkStructureType sType;
14275 void* pNext;
14276 VkBool32 videoEncodeQuantizationMap;
14277} VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR;
14278
14279typedef struct VkVideoEncodeH264QuantizationMapCapabilitiesKHR {
14280 VkStructureType sType;
14281 void* pNext;
14282 int32_t minQpDelta;
14283 int32_t maxQpDelta;
14284} VkVideoEncodeH264QuantizationMapCapabilitiesKHR;
14285
14286typedef struct VkVideoEncodeH265QuantizationMapCapabilitiesKHR {
14287 VkStructureType sType;
14288 void* pNext;
14289 int32_t minQpDelta;
14290 int32_t maxQpDelta;
14291} VkVideoEncodeH265QuantizationMapCapabilitiesKHR;
14292
14293typedef struct VkVideoFormatH265QuantizationMapPropertiesKHR {
14294 VkStructureType sType;
14295 void* pNext;
14296 VkVideoEncodeH265CtbSizeFlagsKHR compatibleCtbSizes;
14297} VkVideoFormatH265QuantizationMapPropertiesKHR;
14298
14299typedef struct VkVideoEncodeAV1QuantizationMapCapabilitiesKHR {
14300 VkStructureType sType;
14301 void* pNext;
14302 int32_t minQIndexDelta;
14303 int32_t maxQIndexDelta;
14304} VkVideoEncodeAV1QuantizationMapCapabilitiesKHR;
14305
14306typedef struct VkVideoFormatAV1QuantizationMapPropertiesKHR {
14307 VkStructureType sType;
14308 void* pNext;
14309 VkVideoEncodeAV1SuperblockSizeFlagsKHR compatibleSuperblockSizes;
14310} VkVideoFormatAV1QuantizationMapPropertiesKHR;
14311
14312
14313
14314// VK_KHR_shader_relaxed_extended_instruction is a preprocessor guard. Do not pass it to API calls.
14315#define VK_KHR_shader_relaxed_extended_instruction 1
14316#define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION 1
14317#define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME "VK_KHR_shader_relaxed_extended_instruction"
14318typedef struct VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
14319 VkStructureType sType;
14320 void* pNext;
14321 VkBool32 shaderRelaxedExtendedInstruction;
14322} VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR;
14323
14324
14325
14326// VK_KHR_maintenance7 is a preprocessor guard. Do not pass it to API calls.
14327#define VK_KHR_maintenance7 1
14328#define VK_KHR_MAINTENANCE_7_SPEC_VERSION 1
14329#define VK_KHR_MAINTENANCE_7_EXTENSION_NAME "VK_KHR_maintenance7"
14330
14331typedef enum VkPhysicalDeviceLayeredApiKHR {
14332 VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR = 0,
14333 VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR = 1,
14334 VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR = 2,
14335 VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR = 3,
14336 VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR = 4,
14337 VK_PHYSICAL_DEVICE_LAYERED_API_MAX_ENUM_KHR = 0x7FFFFFFF
14338} VkPhysicalDeviceLayeredApiKHR;
14339typedef struct VkPhysicalDeviceMaintenance7FeaturesKHR {
14340 VkStructureType sType;
14341 void* pNext;
14342 VkBool32 maintenance7;
14343} VkPhysicalDeviceMaintenance7FeaturesKHR;
14344
14345typedef struct VkPhysicalDeviceMaintenance7PropertiesKHR {
14346 VkStructureType sType;
14347 void* pNext;
14348 VkBool32 robustFragmentShadingRateAttachmentAccess;
14349 VkBool32 separateDepthStencilAttachmentAccess;
14350 uint32_t maxDescriptorSetTotalUniformBuffersDynamic;
14351 uint32_t maxDescriptorSetTotalStorageBuffersDynamic;
14352 uint32_t maxDescriptorSetTotalBuffersDynamic;
14353 uint32_t maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic;
14354 uint32_t maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic;
14355 uint32_t maxDescriptorSetUpdateAfterBindTotalBuffersDynamic;
14356} VkPhysicalDeviceMaintenance7PropertiesKHR;
14357
14358typedef struct VkPhysicalDeviceLayeredApiPropertiesKHR {
14359 VkStructureType sType;
14360 void* pNext;
14361 uint32_t vendorID;
14362 uint32_t deviceID;
14363 VkPhysicalDeviceLayeredApiKHR layeredAPI;
14364 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
14365} VkPhysicalDeviceLayeredApiPropertiesKHR;
14366
14367typedef struct VkPhysicalDeviceLayeredApiPropertiesListKHR {
14368 VkStructureType sType;
14369 void* pNext;
14370 uint32_t layeredApiCount;
14371 VkPhysicalDeviceLayeredApiPropertiesKHR* pLayeredApis;
14372} VkPhysicalDeviceLayeredApiPropertiesListKHR;
14373
14374typedef struct VkPhysicalDeviceLayeredApiVulkanPropertiesKHR {
14375 VkStructureType sType;
14376 void* pNext;
14377 VkPhysicalDeviceProperties2 properties;
14378} VkPhysicalDeviceLayeredApiVulkanPropertiesKHR;
14379
14380
14381
14382// VK_KHR_device_fault is a preprocessor guard. Do not pass it to API calls.
14383#define VK_KHR_device_fault 1
14384#define VK_KHR_DEVICE_FAULT_SPEC_VERSION 1
14385#define VK_KHR_DEVICE_FAULT_EXTENSION_NAME "VK_KHR_device_fault"
14386
14387typedef enum VkDeviceFaultAddressTypeKHR {
14388 VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_KHR = 0,
14389 VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_KHR = 1,
14390 VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_KHR = 2,
14391 VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_KHR = 3,
14392 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_KHR = 4,
14393 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_KHR = 5,
14394 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_KHR = 6,
14395 VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_KHR,
14396 VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_KHR,
14397 VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_KHR,
14398 VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_KHR,
14399 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_KHR,
14400 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_KHR,
14401 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_KHR,
14402 VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
14403} VkDeviceFaultAddressTypeKHR;
14404
14405typedef enum VkDeviceFaultVendorBinaryHeaderVersionKHR {
14406 VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_KHR = 1,
14407 VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_KHR,
14408 VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_KHR = 0x7FFFFFFF
14409} VkDeviceFaultVendorBinaryHeaderVersionKHR;
14410
14411typedef enum VkDeviceFaultFlagBitsKHR {
14412 VK_DEVICE_FAULT_FLAG_DEVICE_LOST_KHR = 0x00000001,
14413 VK_DEVICE_FAULT_FLAG_MEMORY_ADDRESS_KHR = 0x00000002,
14414 VK_DEVICE_FAULT_FLAG_INSTRUCTION_ADDRESS_KHR = 0x00000004,
14415 VK_DEVICE_FAULT_FLAG_VENDOR_KHR = 0x00000008,
14416 VK_DEVICE_FAULT_FLAG_WATCHDOG_TIMEOUT_KHR = 0x00000010,
14417 VK_DEVICE_FAULT_FLAG_OVERFLOW_KHR = 0x00000020,
14418 VK_DEVICE_FAULT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14419} VkDeviceFaultFlagBitsKHR;
14420typedef VkFlags VkDeviceFaultFlagsKHR;
14421typedef struct VkPhysicalDeviceFaultFeaturesKHR {
14422 VkStructureType sType;
14423 void* pNext;
14424 VkBool32 deviceFault;
14425 VkBool32 deviceFaultVendorBinary;
14426 VkBool32 deviceFaultReportMasked;
14427 VkBool32 deviceFaultDeviceLostOnMasked;
14428} VkPhysicalDeviceFaultFeaturesKHR;
14429
14430typedef struct VkPhysicalDeviceFaultPropertiesKHR {
14431 VkStructureType sType;
14432 void* pNext;
14433 uint32_t maxDeviceFaultCount;
14434} VkPhysicalDeviceFaultPropertiesKHR;
14435
14436typedef struct VkDeviceFaultAddressInfoKHR {
14437 VkDeviceFaultAddressTypeKHR addressType;
14438 VkDeviceAddress reportedAddress;
14439 VkDeviceSize addressPrecision;
14440} VkDeviceFaultAddressInfoKHR;
14441
14442typedef struct VkDeviceFaultVendorInfoKHR {
14443 char description[VK_MAX_DESCRIPTION_SIZE];
14444 uint64_t vendorFaultCode;
14445 uint64_t vendorFaultData;
14446} VkDeviceFaultVendorInfoKHR;
14447
14448typedef struct VkDeviceFaultInfoKHR {
14449 VkStructureType sType;
14450 void* pNext;
14451 VkDeviceFaultFlagsKHR flags;
14452 uint64_t groupId;
14453 char description[VK_MAX_DESCRIPTION_SIZE];
14454 VkDeviceFaultAddressInfoKHR faultAddressInfo;
14455 VkDeviceFaultAddressInfoKHR instructionAddressInfo;
14456 VkDeviceFaultVendorInfoKHR vendorInfo;
14457} VkDeviceFaultInfoKHR;
14458
14459typedef struct VkDeviceFaultDebugInfoKHR {
14460 VkStructureType sType;
14461 void* pNext;
14462 uint32_t vendorBinarySize;
14463 void* pVendorBinaryData;
14464} VkDeviceFaultDebugInfoKHR;
14465
14466typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneKHR {
14467 uint32_t headerSize;
14468 VkDeviceFaultVendorBinaryHeaderVersionKHR headerVersion;
14469 uint32_t vendorID;
14470 uint32_t deviceID;
14471 uint32_t driverVersion;
14472 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
14473 uint32_t applicationNameOffset;
14474 uint32_t applicationVersion;
14475 uint32_t engineNameOffset;
14476 uint32_t engineVersion;
14477 uint32_t apiVersion;
14478} VkDeviceFaultVendorBinaryHeaderVersionOneKHR;
14479
14480typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultReportsKHR)(VkDevice device, uint64_t timeout, uint32_t* pFaultCounts, VkDeviceFaultInfoKHR* pFaultInfo);
14481typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultDebugInfoKHR)(VkDevice device, VkDeviceFaultDebugInfoKHR* pDebugInfo);
14482
14483#ifndef VK_NO_PROTOTYPES
14484#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14485VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultReportsKHR(
14486 VkDevice device,
14487 uint64_t timeout,
14488 uint32_t* pFaultCounts,
14489 VkDeviceFaultInfoKHR* pFaultInfo);
14490#endif
14491
14492#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14493VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultDebugInfoKHR(
14494 VkDevice device,
14495 VkDeviceFaultDebugInfoKHR* pDebugInfo);
14496#endif
14497#endif
14498
14499
14500// VK_KHR_maintenance8 is a preprocessor guard. Do not pass it to API calls.
14501#define VK_KHR_maintenance8 1
14502#define VK_KHR_MAINTENANCE_8_SPEC_VERSION 1
14503#define VK_KHR_MAINTENANCE_8_EXTENSION_NAME "VK_KHR_maintenance8"
14504typedef VkFlags64 VkAccessFlags3KHR;
14505
14506// Flag bits for VkAccessFlagBits3KHR
14507typedef VkFlags64 VkAccessFlagBits3KHR;
14508static const VkAccessFlagBits3KHR VK_ACCESS_3_NONE_KHR = 0ULL;
14509
14510typedef struct VkMemoryBarrierAccessFlags3KHR {
14511 VkStructureType sType;
14512 const void* pNext;
14513 VkAccessFlags3KHR srcAccessMask3;
14514 VkAccessFlags3KHR dstAccessMask3;
14515} VkMemoryBarrierAccessFlags3KHR;
14516
14517typedef struct VkPhysicalDeviceMaintenance8FeaturesKHR {
14518 VkStructureType sType;
14519 void* pNext;
14520 VkBool32 maintenance8;
14521} VkPhysicalDeviceMaintenance8FeaturesKHR;
14522
14523
14524
14525// VK_KHR_shader_fma is a preprocessor guard. Do not pass it to API calls.
14526#define VK_KHR_shader_fma 1
14527#define VK_KHR_SHADER_FMA_SPEC_VERSION 1
14528#define VK_KHR_SHADER_FMA_EXTENSION_NAME "VK_KHR_shader_fma"
14529typedef struct VkPhysicalDeviceShaderFmaFeaturesKHR {
14530 VkStructureType sType;
14531 void* pNext;
14532 VkBool32 shaderFmaFloat16;
14533 VkBool32 shaderFmaFloat32;
14534 VkBool32 shaderFmaFloat64;
14535} VkPhysicalDeviceShaderFmaFeaturesKHR;
14536
14537
14538
14539// VK_KHR_maintenance9 is a preprocessor guard. Do not pass it to API calls.
14540#define VK_KHR_maintenance9 1
14541#define VK_KHR_MAINTENANCE_9_SPEC_VERSION 1
14542#define VK_KHR_MAINTENANCE_9_EXTENSION_NAME "VK_KHR_maintenance9"
14543
14544typedef enum VkDefaultVertexAttributeValueKHR {
14545 VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ZERO_KHR = 0,
14546 VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ONE_KHR = 1,
14547 VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_MAX_ENUM_KHR = 0x7FFFFFFF
14548} VkDefaultVertexAttributeValueKHR;
14549typedef struct VkPhysicalDeviceMaintenance9FeaturesKHR {
14550 VkStructureType sType;
14551 void* pNext;
14552 VkBool32 maintenance9;
14553} VkPhysicalDeviceMaintenance9FeaturesKHR;
14554
14555typedef struct VkPhysicalDeviceMaintenance9PropertiesKHR {
14556 VkStructureType sType;
14557 void* pNext;
14558 VkBool32 image2DViewOf3DSparse;
14559 VkDefaultVertexAttributeValueKHR defaultVertexAttributeValue;
14560} VkPhysicalDeviceMaintenance9PropertiesKHR;
14561
14562typedef struct VkQueueFamilyOwnershipTransferPropertiesKHR {
14563 VkStructureType sType;
14564 void* pNext;
14565 uint32_t optimalImageTransferToQueueFamilies;
14566} VkQueueFamilyOwnershipTransferPropertiesKHR;
14567
14568
14569
14570// VK_KHR_video_maintenance2 is a preprocessor guard. Do not pass it to API calls.
14571#define VK_KHR_video_maintenance2 1
14572#define VK_KHR_VIDEO_MAINTENANCE_2_SPEC_VERSION 1
14573#define VK_KHR_VIDEO_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_video_maintenance2"
14574typedef struct VkPhysicalDeviceVideoMaintenance2FeaturesKHR {
14575 VkStructureType sType;
14576 void* pNext;
14577 VkBool32 videoMaintenance2;
14578} VkPhysicalDeviceVideoMaintenance2FeaturesKHR;
14579
14580typedef struct VkVideoDecodeH264InlineSessionParametersInfoKHR {
14581 VkStructureType sType;
14582 const void* pNext;
14583 const StdVideoH264SequenceParameterSet* pStdSPS;
14584 const StdVideoH264PictureParameterSet* pStdPPS;
14585} VkVideoDecodeH264InlineSessionParametersInfoKHR;
14586
14587typedef struct VkVideoDecodeH265InlineSessionParametersInfoKHR {
14588 VkStructureType sType;
14589 const void* pNext;
14590 const StdVideoH265VideoParameterSet* pStdVPS;
14591 const StdVideoH265SequenceParameterSet* pStdSPS;
14592 const StdVideoH265PictureParameterSet* pStdPPS;
14593} VkVideoDecodeH265InlineSessionParametersInfoKHR;
14594
14595typedef struct VkVideoDecodeAV1InlineSessionParametersInfoKHR {
14596 VkStructureType sType;
14597 const void* pNext;
14598 const StdVideoAV1SequenceHeader* pStdSequenceHeader;
14599} VkVideoDecodeAV1InlineSessionParametersInfoKHR;
14600
14601
14602
14603// VK_KHR_video_encode_feedback2 is a preprocessor guard. Do not pass it to API calls.
14604#define VK_KHR_video_encode_feedback2 1
14605#define VK_KHR_VIDEO_ENCODE_FEEDBACK_2_SPEC_VERSION 1
14606#define VK_KHR_VIDEO_ENCODE_FEEDBACK_2_EXTENSION_NAME "VK_KHR_video_encode_feedback2"
14607
14608typedef enum VkVideoEncodePerPartitionFeedbackFlagBitsKHR {
14609 VK_VIDEO_ENCODE_PER_PARTITION_FEEDBACK_STATUS_BIT_KHR = 0x00000001,
14610 VK_VIDEO_ENCODE_PER_PARTITION_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000002,
14611 VK_VIDEO_ENCODE_PER_PARTITION_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000004,
14612 VK_VIDEO_ENCODE_PER_PARTITION_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14613} VkVideoEncodePerPartitionFeedbackFlagBitsKHR;
14614typedef VkFlags VkVideoEncodePerPartitionFeedbackFlagsKHR;
14615typedef struct VkPhysicalDeviceVideoEncodeFeedback2FeaturesKHR {
14616 VkStructureType sType;
14617 void* pNext;
14618 VkBool32 videoEncodeFeedback2;
14619} VkPhysicalDeviceVideoEncodeFeedback2FeaturesKHR;
14620
14621typedef struct VkVideoEncodeFeedback2CapabilitiesKHR {
14622 VkStructureType sType;
14623 void* pNext;
14624 uint32_t maxPerPartitionFeedbackEntries;
14625 VkVideoEncodePerPartitionFeedbackFlagsKHR supportedPerPartitionEncodeFeedbackFlags;
14626} VkVideoEncodeFeedback2CapabilitiesKHR;
14627
14628typedef struct VkQueryPoolVideoEncodePerPartitionFeedbackCreateInfoKHR {
14629 VkStructureType sType;
14630 const void* pNext;
14631 uint32_t maxPerPartitionFeedbackEntries;
14632 VkVideoEncodePerPartitionFeedbackFlagsKHR perPartitionEncodeFeedbackFlags;
14633} VkQueryPoolVideoEncodePerPartitionFeedbackCreateInfoKHR;
14634
14635
14636
14637// VK_KHR_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
14638#define VK_KHR_depth_clamp_zero_one 1
14639#define VK_KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
14640#define VK_KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_KHR_depth_clamp_zero_one"
14641typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesKHR {
14642 VkStructureType sType;
14643 void* pNext;
14644 VkBool32 depthClampZeroOne;
14645} VkPhysicalDeviceDepthClampZeroOneFeaturesKHR;
14646
14647
14648
14649// VK_KHR_robustness2 is a preprocessor guard. Do not pass it to API calls.
14650#define VK_KHR_robustness2 1
14651#define VK_KHR_ROBUSTNESS_2_SPEC_VERSION 1
14652#define VK_KHR_ROBUSTNESS_2_EXTENSION_NAME "VK_KHR_robustness2"
14653typedef struct VkPhysicalDeviceRobustness2FeaturesKHR {
14654 VkStructureType sType;
14655 void* pNext;
14656 VkBool32 robustBufferAccess2;
14657 VkBool32 robustImageAccess2;
14658 VkBool32 nullDescriptor;
14659} VkPhysicalDeviceRobustness2FeaturesKHR;
14660
14661typedef struct VkPhysicalDeviceRobustness2PropertiesKHR {
14662 VkStructureType sType;
14663 void* pNext;
14664 VkDeviceSize robustStorageBufferAccessSizeAlignment;
14665 VkDeviceSize robustUniformBufferAccessSizeAlignment;
14666} VkPhysicalDeviceRobustness2PropertiesKHR;
14667
14668
14669
14670// VK_KHR_present_mode_fifo_latest_ready is a preprocessor guard. Do not pass it to API calls.
14671#define VK_KHR_present_mode_fifo_latest_ready 1
14672#define VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION 1
14673#define VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME "VK_KHR_present_mode_fifo_latest_ready"
14674typedef struct VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {
14675 VkStructureType sType;
14676 void* pNext;
14677 VkBool32 presentModeFifoLatestReady;
14678} VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR;
14679
14680
14681
14682// VK_KHR_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
14683#define VK_KHR_opacity_micromap 1
14684#define VK_KHR_OPACITY_MICROMAP_SPEC_VERSION 1
14685#define VK_KHR_OPACITY_MICROMAP_EXTENSION_NAME "VK_KHR_opacity_micromap"
14686
14687typedef enum VkOpacityMicromapFormatKHR {
14688 VK_OPACITY_MICROMAP_FORMAT_2_STATE_KHR = 1,
14689 VK_OPACITY_MICROMAP_FORMAT_4_STATE_KHR = 2,
14690 VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = VK_OPACITY_MICROMAP_FORMAT_2_STATE_KHR,
14691 VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = VK_OPACITY_MICROMAP_FORMAT_4_STATE_KHR,
14692 VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
14693} VkOpacityMicromapFormatKHR;
14694
14695typedef enum VkOpacityMicromapSpecialIndexKHR {
14696 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_KHR = -1,
14697 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_KHR = -2,
14698 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_KHR = -3,
14699 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_KHR = -4,
14700 VK_OPACITY_MICROMAP_SPECIAL_INDEX_CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV = -5,
14701 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_KHR,
14702 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_KHR,
14703 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_KHR,
14704 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_KHR,
14705 VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_KHR = 0x7FFFFFFF
14706} VkOpacityMicromapSpecialIndexKHR;
14707
14708typedef enum VkAccelerationStructureSerializedBlockTypeKHR {
14709 VK_ACCELERATION_STRUCTURE_SERIALIZED_BLOCK_TYPE_OPACITY_MICROMAP_KHR = 0,
14710 VK_ACCELERATION_STRUCTURE_SERIALIZED_BLOCK_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
14711} VkAccelerationStructureSerializedBlockTypeKHR;
14712typedef struct VkMicromapUsageKHR {
14713 uint32_t count;
14714 uint32_t subdivisionLevel;
14715 VkOpacityMicromapFormatKHR format;
14716} VkMicromapUsageKHR;
14717
14718typedef struct VkAccelerationStructureGeometryMicromapDataKHR {
14719 VkStructureType sType;
14720 const void* pNext;
14721 uint32_t usageCountsCount;
14722 const VkMicromapUsageKHR* pUsageCounts;
14723 const VkMicromapUsageKHR* const* ppUsageCounts;
14724 VkDeviceAddress data;
14725 VkDeviceAddress triangleArray;
14726 VkDeviceSize triangleArrayStride;
14727} VkAccelerationStructureGeometryMicromapDataKHR;
14728
14729typedef struct VkPhysicalDeviceOpacityMicromapFeaturesKHR {
14730 VkStructureType sType;
14731 void* pNext;
14732 VkBool32 micromap;
14733} VkPhysicalDeviceOpacityMicromapFeaturesKHR;
14734
14735typedef struct VkPhysicalDeviceOpacityMicromapPropertiesKHR {
14736 VkStructureType sType;
14737 void* pNext;
14738 uint32_t maxOpacity2StateSubdivisionLevel;
14739 uint32_t maxOpacity4StateSubdivisionLevel;
14740 uint32_t maxOpacityLossy4StateSubdivisionLevel;
14741 uint64_t maxMicromapTriangles;
14742} VkPhysicalDeviceOpacityMicromapPropertiesKHR;
14743
14744typedef struct VkMicromapTriangleKHR {
14745 uint32_t dataOffset;
14746 uint16_t subdivisionLevel;
14747 uint16_t format;
14748} VkMicromapTriangleKHR;
14749
14750typedef struct VkAccelerationStructureTrianglesOpacityMicromapKHR {
14751 VkStructureType sType;
14752 void* pNext;
14753 VkIndexType indexType;
14754 VkDeviceAddress indexBuffer;
14755 VkDeviceSize indexStride;
14756 uint32_t baseTriangle;
14757 VkAccelerationStructureKHR micromap;
14758} VkAccelerationStructureTrianglesOpacityMicromapKHR;
14759
14760
14761
14762// VK_KHR_maintenance10 is a preprocessor guard. Do not pass it to API calls.
14763#define VK_KHR_maintenance10 1
14764#define VK_KHR_MAINTENANCE_10_SPEC_VERSION 1
14765#define VK_KHR_MAINTENANCE_10_EXTENSION_NAME "VK_KHR_maintenance10"
14766
14767typedef enum VkRenderingAttachmentFlagBitsKHR {
14768 VK_RENDERING_ATTACHMENT_INPUT_ATTACHMENT_FEEDBACK_BIT_KHR = 0x00000001,
14769 VK_RENDERING_ATTACHMENT_RESOLVE_SKIP_TRANSFER_FUNCTION_BIT_KHR = 0x00000002,
14770 VK_RENDERING_ATTACHMENT_RESOLVE_ENABLE_TRANSFER_FUNCTION_BIT_KHR = 0x00000004,
14771 VK_RENDERING_ATTACHMENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14772} VkRenderingAttachmentFlagBitsKHR;
14773typedef VkFlags VkRenderingAttachmentFlagsKHR;
14774
14775typedef enum VkResolveImageFlagBitsKHR {
14776 VK_RESOLVE_IMAGE_SKIP_TRANSFER_FUNCTION_BIT_KHR = 0x00000001,
14777 VK_RESOLVE_IMAGE_ENABLE_TRANSFER_FUNCTION_BIT_KHR = 0x00000002,
14778 VK_RESOLVE_IMAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14779} VkResolveImageFlagBitsKHR;
14780typedef VkFlags VkResolveImageFlagsKHR;
14781typedef struct VkPhysicalDeviceMaintenance10FeaturesKHR {
14782 VkStructureType sType;
14783 void* pNext;
14784 VkBool32 maintenance10;
14785} VkPhysicalDeviceMaintenance10FeaturesKHR;
14786
14787typedef struct VkPhysicalDeviceMaintenance10PropertiesKHR {
14788 VkStructureType sType;
14789 void* pNext;
14790 VkBool32 rgba4OpaqueBlackSwizzled;
14791 VkBool32 resolveSrgbFormatAppliesTransferFunction;
14792 VkBool32 resolveSrgbFormatSupportsTransferFunctionControl;
14793} VkPhysicalDeviceMaintenance10PropertiesKHR;
14794
14795typedef struct VkRenderingEndInfoKHR {
14796 VkStructureType sType;
14797 const void* pNext;
14798} VkRenderingEndInfoKHR;
14799
14800typedef struct VkRenderingAttachmentFlagsInfoKHR {
14801 VkStructureType sType;
14802 const void* pNext;
14803 VkRenderingAttachmentFlagsKHR flags;
14804} VkRenderingAttachmentFlagsInfoKHR;
14805
14806typedef struct VkResolveImageModeInfoKHR {
14807 VkStructureType sType;
14808 const void* pNext;
14809 VkResolveImageFlagsKHR flags;
14810 VkResolveModeFlagBits resolveMode;
14811 VkResolveModeFlagBits stencilResolveMode;
14812} VkResolveImageModeInfoKHR;
14813
14814typedef void (VKAPI_PTR *PFN_vkCmdEndRendering2KHR)(VkCommandBuffer commandBuffer, const VkRenderingEndInfoKHR* pRenderingEndInfo);
14815
14816#ifndef VK_NO_PROTOTYPES
14817#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14818VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering2KHR(
14819 VkCommandBuffer commandBuffer,
14820 const VkRenderingEndInfoKHR* pRenderingEndInfo);
14821#endif
14822#endif
14823
14824
14825// VK_KHR_maintenance11 is a preprocessor guard. Do not pass it to API calls.
14826#define VK_KHR_maintenance11 1
14827#define VK_KHR_MAINTENANCE_11_SPEC_VERSION 1
14828#define VK_KHR_MAINTENANCE_11_EXTENSION_NAME "VK_KHR_maintenance11"
14829typedef struct VkPhysicalDeviceMaintenance11FeaturesKHR {
14830 VkStructureType sType;
14831 void* pNext;
14832 VkBool32 maintenance11;
14833} VkPhysicalDeviceMaintenance11FeaturesKHR;
14834
14835typedef struct VkQueueFamilyOptimalImageTransferGranularityPropertiesKHR {
14836 VkStructureType sType;
14837 void* pNext;
14838 VkExtent3D optimalImageTransferGranularity;
14839} VkQueueFamilyOptimalImageTransferGranularityPropertiesKHR;
14840
14841
14842
14843// VK_KHR_extended_flags is a preprocessor guard. Do not pass it to API calls.
14844#define VK_KHR_extended_flags 1
14845#define VK_KHR_EXTENDED_FLAGS_SPEC_VERSION 1
14846#define VK_KHR_EXTENDED_FLAGS_EXTENSION_NAME "VK_KHR_extended_flags"
14847typedef VkFlags64 VkFormatFeatureFlags4KHR;
14848
14849// Flag bits for VkFormatFeatureFlagBits4KHR
14850typedef VkFlags64 VkFormatFeatureFlagBits4KHR;
14851
14852typedef VkFlags64 VkImageUsageFlags2KHR;
14853
14854// Flag bits for VkImageUsageFlagBits2KHR
14855typedef VkFlags64 VkImageUsageFlagBits2KHR;
14856static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL;
14857static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL;
14858static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_SAMPLED_BIT_KHR = 0x00000004ULL;
14859static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_STORAGE_BIT_KHR = 0x00000008ULL;
14860static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000010ULL;
14861static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000020ULL;
14862static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_TRANSIENT_ATTACHMENT_BIT_KHR = 0x00000040ULL;
14863static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_INPUT_ATTACHMENT_BIT_KHR = 0x00000080ULL;
14864static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100ULL;
14865static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200ULL;
14866static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00000400ULL;
14867static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800ULL;
14868static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000ULL;
14869static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000ULL;
14870static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000ULL;
14871static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000ULL;
14872static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x00040000ULL;
14873static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000ULL;
14874static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000ULL;
14875static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000ULL;
14876static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_HOST_TRANSFER_BIT_KHR = 0x00400000ULL;
14877static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_TENSOR_ALIASING_BIT_ARM = 0x00800000ULL;
14878static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x02000000ULL;
14879static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x04000000ULL;
14880static const VkImageUsageFlagBits2KHR VK_IMAGE_USAGE_2_TILE_MEMORY_BIT_QCOM = 0x08000000ULL;
14881
14882typedef VkFlags64 VkImageCreateFlags2KHR;
14883
14884// Flag bits for VkImageCreateFlagBits2KHR
14885typedef VkFlags64 VkImageCreateFlagBits2KHR;
14886static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_SPARSE_BINDING_BIT_KHR = 0x00000001ULL;
14887static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_SPARSE_RESIDENCY_BIT_KHR = 0x00000002ULL;
14888static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_SPARSE_ALIASED_BIT_KHR = 0x00000004ULL;
14889static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_MUTABLE_FORMAT_BIT_KHR = 0x00000008ULL;
14890static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_CUBE_COMPATIBLE_BIT_KHR = 0x00000010ULL;
14891static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_ALIAS_SINGLE_LAYER_DESCRIPTOR_BIT_KHR = 0x00400000ULL;
14892static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020ULL;
14893static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000040ULL;
14894static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080ULL;
14895static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_EXTENDED_USAGE_BIT_KHR = 0x00000100ULL;
14896static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_DISJOINT_BIT_KHR = 0x00000200ULL;
14897static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_ALIAS_BIT_KHR = 0x00000400ULL;
14898static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_PROTECTED_BIT_KHR = 0x00000800ULL;
14899static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000ULL;
14900static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_CORNER_SAMPLED_BIT_NV = 0x00002000ULL;
14901static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_SUBSAMPLED_BIT_EXT = 0x00004000ULL;
14902static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT = 0x00008000ULL;
14903static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00010000ULL;
14904static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000ULL;
14905static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000ULL;
14906static const VkImageCreateFlagBits2KHR VK_IMAGE_CREATE_2_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000ULL;
14907
14908typedef struct VkFormatProperties4KHR {
14909 VkStructureType sType;
14910 void* pNext;
14911 VkFormatFeatureFlags4KHR linearTilingFeatures;
14912 VkFormatFeatureFlags4KHR optimalTilingFeatures;
14913 VkFormatFeatureFlags4KHR bufferFeatures;
14914} VkFormatProperties4KHR;
14915
14916typedef struct VkImageUsageFlags2CreateInfoKHR {
14917 VkStructureType sType;
14918 void* pNext;
14919 VkImageUsageFlags2KHR usage;
14920} VkImageUsageFlags2CreateInfoKHR;
14921
14922typedef struct VkImageCreateFlags2CreateInfoKHR {
14923 VkStructureType sType;
14924 void* pNext;
14925 VkImageCreateFlags2KHR flags;
14926} VkImageCreateFlags2CreateInfoKHR;
14927
14928typedef struct VkImageViewUsage2CreateInfoKHR {
14929 VkStructureType sType;
14930 void* pNext;
14931 VkImageUsageFlags2KHR usage;
14932} VkImageViewUsage2CreateInfoKHR;
14933
14934typedef struct VkPhysicalDeviceExtendedFlagsFeaturesKHR {
14935 VkStructureType sType;
14936 void* pNext;
14937 VkBool32 extendedFlags;
14938} VkPhysicalDeviceExtendedFlagsFeaturesKHR;
14939
14940typedef struct VkImageStencilUsage2CreateInfoKHR {
14941 VkStructureType sType;
14942 void* pNext;
14943 VkImageUsageFlags2KHR stencilUsage;
14944} VkImageStencilUsage2CreateInfoKHR;
14945
14946typedef struct VkSharedPresentSurfaceCapabilities2KHR {
14947 VkStructureType sType;
14948 void* pNext;
14949 VkImageUsageFlags2KHR sharedPresentSupportedUsageFlags;
14950} VkSharedPresentSurfaceCapabilities2KHR;
14951
14952
14953
14954// VK_EXT_debug_report is a preprocessor guard. Do not pass it to API calls.
14955#define VK_EXT_debug_report 1
14956VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
14957#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10
14958#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
14959
14960typedef enum VkDebugReportObjectTypeEXT {
14961 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
14962 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
14963 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
14964 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
14965 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
14966 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
14967 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
14968 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
14969 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
14970 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
14971 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
14972 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
14973 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
14974 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
14975 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
14976 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
14977 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
14978 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
14979 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
14980 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
14981 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
14982 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
14983 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
14984 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
14985 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
14986 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
14987 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
14988 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
14989 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
14990 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
14991 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
14992 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
14993 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
14994 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
14995 VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000,
14996 VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
14997 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
14998 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
14999 VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000,
15000 VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT = 1000307001,
15001 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000,
15002 // VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT is a legacy alias
15003 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
15004 // VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT is a legacy alias
15005 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
15006 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
15007 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
15008 VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
15009} VkDebugReportObjectTypeEXT;
15010
15011typedef enum VkDebugReportFlagBitsEXT {
15012 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
15013 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
15014 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
15015 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
15016 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
15017 VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15018} VkDebugReportFlagBitsEXT;
15019typedef VkFlags VkDebugReportFlagsEXT;
15020typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
15021 VkDebugReportFlagsEXT flags,
15022 VkDebugReportObjectTypeEXT objectType,
15023 uint64_t object,
15024 size_t location,
15025 int32_t messageCode,
15026 const char* pLayerPrefix,
15027 const char* pMessage,
15028 void* pUserData);
15029
15030typedef struct VkDebugReportCallbackCreateInfoEXT {
15031 VkStructureType sType;
15032 const void* pNext;
15033 VkDebugReportFlagsEXT flags;
15034 PFN_vkDebugReportCallbackEXT pfnCallback;
15035 void* pUserData;
15036} VkDebugReportCallbackCreateInfoEXT;
15037
15038typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
15039typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
15040typedef 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);
15041
15042#ifndef VK_NO_PROTOTYPES
15043#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15044VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
15045 VkInstance instance,
15046 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
15047 const VkAllocationCallbacks* pAllocator,
15048 VkDebugReportCallbackEXT* pCallback);
15049#endif
15050
15051#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15052VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
15053 VkInstance instance,
15054 VkDebugReportCallbackEXT callback,
15055 const VkAllocationCallbacks* pAllocator);
15056#endif
15057
15058#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15059VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
15060 VkInstance instance,
15061 VkDebugReportFlagsEXT flags,
15062 VkDebugReportObjectTypeEXT objectType,
15063 uint64_t object,
15064 size_t location,
15065 int32_t messageCode,
15066 const char* pLayerPrefix,
15067 const char* pMessage);
15068#endif
15069#endif
15070
15071
15072// VK_NV_glsl_shader is a preprocessor guard. Do not pass it to API calls.
15073#define VK_NV_glsl_shader 1
15074#define VK_NV_GLSL_SHADER_SPEC_VERSION 1
15075#define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader"
15076
15077
15078// VK_EXT_depth_range_unrestricted is a preprocessor guard. Do not pass it to API calls.
15079#define VK_EXT_depth_range_unrestricted 1
15080#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
15081#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
15082
15083
15084// VK_IMG_filter_cubic is a preprocessor guard. Do not pass it to API calls.
15085#define VK_IMG_filter_cubic 1
15086#define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
15087#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
15088
15089
15090// VK_AMD_rasterization_order is a preprocessor guard. Do not pass it to API calls.
15091#define VK_AMD_rasterization_order 1
15092#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
15093#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
15094
15095typedef enum VkRasterizationOrderAMD {
15096 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
15097 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
15098 VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
15099} VkRasterizationOrderAMD;
15100typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
15101 VkStructureType sType;
15102 const void* pNext;
15103 VkRasterizationOrderAMD rasterizationOrder;
15104} VkPipelineRasterizationStateRasterizationOrderAMD;
15105
15106
15107
15108// VK_AMD_shader_trinary_minmax is a preprocessor guard. Do not pass it to API calls.
15109#define VK_AMD_shader_trinary_minmax 1
15110#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
15111#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
15112
15113
15114// VK_AMD_shader_explicit_vertex_parameter is a preprocessor guard. Do not pass it to API calls.
15115#define VK_AMD_shader_explicit_vertex_parameter 1
15116#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
15117#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
15118
15119
15120// VK_EXT_debug_marker is a preprocessor guard. Do not pass it to API calls.
15121#define VK_EXT_debug_marker 1
15122#define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
15123#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
15124typedef struct VkDebugMarkerObjectNameInfoEXT {
15125 VkStructureType sType;
15126 const void* pNext;
15127 VkDebugReportObjectTypeEXT objectType;
15128 uint64_t object;
15129 const char* pObjectName;
15130} VkDebugMarkerObjectNameInfoEXT;
15131
15132typedef struct VkDebugMarkerObjectTagInfoEXT {
15133 VkStructureType sType;
15134 const void* pNext;
15135 VkDebugReportObjectTypeEXT objectType;
15136 uint64_t object;
15137 uint64_t tagName;
15138 size_t tagSize;
15139 const void* pTag;
15140} VkDebugMarkerObjectTagInfoEXT;
15141
15142typedef struct VkDebugMarkerMarkerInfoEXT {
15143 VkStructureType sType;
15144 const void* pNext;
15145 const char* pMarkerName;
15146 float color[4];
15147} VkDebugMarkerMarkerInfoEXT;
15148
15149typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
15150typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
15151typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
15152typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
15153typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
15154
15155#ifndef VK_NO_PROTOTYPES
15156#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15157VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
15158 VkDevice device,
15159 const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
15160#endif
15161
15162#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15163VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
15164 VkDevice device,
15165 const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
15166#endif
15167
15168#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15169VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
15170 VkCommandBuffer commandBuffer,
15171 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
15172#endif
15173
15174#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15175VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
15176 VkCommandBuffer commandBuffer);
15177#endif
15178
15179#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15180VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
15181 VkCommandBuffer commandBuffer,
15182 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
15183#endif
15184#endif
15185
15186
15187// VK_AMD_gcn_shader is a preprocessor guard. Do not pass it to API calls.
15188#define VK_AMD_gcn_shader 1
15189#define VK_AMD_GCN_SHADER_SPEC_VERSION 1
15190#define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
15191
15192
15193// VK_NV_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
15194#define VK_NV_dedicated_allocation 1
15195#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
15196#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
15197typedef struct VkDedicatedAllocationImageCreateInfoNV {
15198 VkStructureType sType;
15199 const void* pNext;
15200 VkBool32 dedicatedAllocation;
15201} VkDedicatedAllocationImageCreateInfoNV;
15202
15203typedef struct VkDedicatedAllocationBufferCreateInfoNV {
15204 VkStructureType sType;
15205 const void* pNext;
15206 VkBool32 dedicatedAllocation;
15207} VkDedicatedAllocationBufferCreateInfoNV;
15208
15209typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
15210 VkStructureType sType;
15211 const void* pNext;
15212 VkImage image;
15213 VkBuffer buffer;
15214} VkDedicatedAllocationMemoryAllocateInfoNV;
15215
15216
15217
15218// VK_EXT_transform_feedback is a preprocessor guard. Do not pass it to API calls.
15219#define VK_EXT_transform_feedback 1
15220#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
15221#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
15222typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
15223typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
15224 VkStructureType sType;
15225 void* pNext;
15226 VkBool32 transformFeedback;
15227 VkBool32 geometryStreams;
15228} VkPhysicalDeviceTransformFeedbackFeaturesEXT;
15229
15230typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
15231 VkStructureType sType;
15232 void* pNext;
15233 uint32_t maxTransformFeedbackStreams;
15234 uint32_t maxTransformFeedbackBuffers;
15235 VkDeviceSize maxTransformFeedbackBufferSize;
15236 uint32_t maxTransformFeedbackStreamDataSize;
15237 uint32_t maxTransformFeedbackBufferDataSize;
15238 uint32_t maxTransformFeedbackBufferDataStride;
15239 VkBool32 transformFeedbackQueries;
15240 VkBool32 transformFeedbackStreamsLinesTriangles;
15241 VkBool32 transformFeedbackRasterizationStreamSelect;
15242 VkBool32 transformFeedbackDraw;
15243} VkPhysicalDeviceTransformFeedbackPropertiesEXT;
15244
15245typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
15246 VkStructureType sType;
15247 const void* pNext;
15248 VkPipelineRasterizationStateStreamCreateFlagsEXT flags;
15249 uint32_t rasterizationStream;
15250} VkPipelineRasterizationStateStreamCreateInfoEXT;
15251
15252typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
15253typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
15254typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
15255typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
15256typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
15257typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
15258
15259#ifndef VK_NO_PROTOTYPES
15260#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15261VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
15262 VkCommandBuffer commandBuffer,
15263 uint32_t firstBinding,
15264 uint32_t bindingCount,
15265 const VkBuffer* pBuffers,
15266 const VkDeviceSize* pOffsets,
15267 const VkDeviceSize* pSizes);
15268#endif
15269
15270#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15271VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
15272 VkCommandBuffer commandBuffer,
15273 uint32_t firstCounterBuffer,
15274 uint32_t counterBufferCount,
15275 const VkBuffer* pCounterBuffers,
15276 const VkDeviceSize* pCounterBufferOffsets);
15277#endif
15278
15279#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15280VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
15281 VkCommandBuffer commandBuffer,
15282 uint32_t firstCounterBuffer,
15283 uint32_t counterBufferCount,
15284 const VkBuffer* pCounterBuffers,
15285 const VkDeviceSize* pCounterBufferOffsets);
15286#endif
15287
15288#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15289VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
15290 VkCommandBuffer commandBuffer,
15291 VkQueryPool queryPool,
15292 uint32_t query,
15293 VkQueryControlFlags flags,
15294 uint32_t index);
15295#endif
15296
15297#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15298VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
15299 VkCommandBuffer commandBuffer,
15300 VkQueryPool queryPool,
15301 uint32_t query,
15302 uint32_t index);
15303#endif
15304
15305#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15306VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
15307 VkCommandBuffer commandBuffer,
15308 uint32_t instanceCount,
15309 uint32_t firstInstance,
15310 VkBuffer counterBuffer,
15311 VkDeviceSize counterBufferOffset,
15312 uint32_t counterOffset,
15313 uint32_t vertexStride);
15314#endif
15315#endif
15316
15317
15318// VK_NVX_binary_import is a preprocessor guard. Do not pass it to API calls.
15319#define VK_NVX_binary_import 1
15320VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
15321VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
15322#define VK_NVX_BINARY_IMPORT_SPEC_VERSION 2
15323#define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
15324typedef struct VkCuModuleCreateInfoNVX {
15325 VkStructureType sType;
15326 const void* pNext;
15327 size_t dataSize;
15328 const void* pData;
15329} VkCuModuleCreateInfoNVX;
15330
15331typedef struct VkCuModuleTexturingModeCreateInfoNVX {
15332 VkStructureType sType;
15333 const void* pNext;
15334 VkBool32 use64bitTexturing;
15335} VkCuModuleTexturingModeCreateInfoNVX;
15336
15337typedef struct VkCuFunctionCreateInfoNVX {
15338 VkStructureType sType;
15339 const void* pNext;
15340 VkCuModuleNVX module;
15341 const char* pName;
15342} VkCuFunctionCreateInfoNVX;
15343
15344typedef struct VkCuLaunchInfoNVX {
15345 VkStructureType sType;
15346 const void* pNext;
15347 VkCuFunctionNVX function;
15348 uint32_t gridDimX;
15349 uint32_t gridDimY;
15350 uint32_t gridDimZ;
15351 uint32_t blockDimX;
15352 uint32_t blockDimY;
15353 uint32_t blockDimZ;
15354 uint32_t sharedMemBytes;
15355 size_t paramCount;
15356 const void* const * pParams;
15357 size_t extraCount;
15358 const void* const * pExtras;
15359} VkCuLaunchInfoNVX;
15360
15361typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
15362typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
15363typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
15364typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
15365typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
15366
15367#ifndef VK_NO_PROTOTYPES
15368#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15369VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX(
15370 VkDevice device,
15371 const VkCuModuleCreateInfoNVX* pCreateInfo,
15372 const VkAllocationCallbacks* pAllocator,
15373 VkCuModuleNVX* pModule);
15374#endif
15375
15376#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15377VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX(
15378 VkDevice device,
15379 const VkCuFunctionCreateInfoNVX* pCreateInfo,
15380 const VkAllocationCallbacks* pAllocator,
15381 VkCuFunctionNVX* pFunction);
15382#endif
15383
15384#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15385VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX(
15386 VkDevice device,
15387 VkCuModuleNVX module,
15388 const VkAllocationCallbacks* pAllocator);
15389#endif
15390
15391#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15392VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX(
15393 VkDevice device,
15394 VkCuFunctionNVX function,
15395 const VkAllocationCallbacks* pAllocator);
15396#endif
15397
15398#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15399VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX(
15400 VkCommandBuffer commandBuffer,
15401 const VkCuLaunchInfoNVX* pLaunchInfo);
15402#endif
15403#endif
15404
15405
15406// VK_NVX_image_view_handle is a preprocessor guard. Do not pass it to API calls.
15407#define VK_NVX_image_view_handle 1
15408#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 4
15409#define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
15410typedef struct VkImageViewHandleInfoNVX {
15411 VkStructureType sType;
15412 const void* pNext;
15413 VkImageView imageView;
15414 VkDescriptorType descriptorType;
15415 VkSampler sampler;
15416} VkImageViewHandleInfoNVX;
15417
15418typedef struct VkImageViewAddressPropertiesNVX {
15419 VkStructureType sType;
15420 void* pNext;
15421 VkDeviceAddress deviceAddress;
15422 VkDeviceSize size;
15423} VkImageViewAddressPropertiesNVX;
15424
15425typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
15426typedef uint64_t (VKAPI_PTR *PFN_vkGetImageViewHandle64NVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
15427typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
15428typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceCombinedImageSamplerIndexNVX)(VkDevice device, uint64_t imageViewIndex, uint64_t samplerIndex);
15429
15430#ifndef VK_NO_PROTOTYPES
15431#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15432VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
15433 VkDevice device,
15434 const VkImageViewHandleInfoNVX* pInfo);
15435#endif
15436
15437#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15438VKAPI_ATTR uint64_t VKAPI_CALL vkGetImageViewHandle64NVX(
15439 VkDevice device,
15440 const VkImageViewHandleInfoNVX* pInfo);
15441#endif
15442
15443#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15444VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
15445 VkDevice device,
15446 VkImageView imageView,
15447 VkImageViewAddressPropertiesNVX* pProperties);
15448#endif
15449
15450#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15451VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceCombinedImageSamplerIndexNVX(
15452 VkDevice device,
15453 uint64_t imageViewIndex,
15454 uint64_t samplerIndex);
15455#endif
15456#endif
15457
15458
15459// VK_AMD_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
15460#define VK_AMD_draw_indirect_count 1
15461#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
15462#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
15463typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
15464typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
15465
15466#ifndef VK_NO_PROTOTYPES
15467#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15468VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
15469 VkCommandBuffer commandBuffer,
15470 VkBuffer buffer,
15471 VkDeviceSize offset,
15472 VkBuffer countBuffer,
15473 VkDeviceSize countBufferOffset,
15474 uint32_t maxDrawCount,
15475 uint32_t stride);
15476#endif
15477
15478#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15479VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
15480 VkCommandBuffer commandBuffer,
15481 VkBuffer buffer,
15482 VkDeviceSize offset,
15483 VkBuffer countBuffer,
15484 VkDeviceSize countBufferOffset,
15485 uint32_t maxDrawCount,
15486 uint32_t stride);
15487#endif
15488#endif
15489
15490
15491// VK_AMD_negative_viewport_height is a preprocessor guard. Do not pass it to API calls.
15492#define VK_AMD_negative_viewport_height 1
15493#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
15494#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
15495
15496
15497// VK_AMD_gpu_shader_half_float is a preprocessor guard. Do not pass it to API calls.
15498#define VK_AMD_gpu_shader_half_float 1
15499#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
15500#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
15501
15502
15503// VK_AMD_shader_ballot is a preprocessor guard. Do not pass it to API calls.
15504#define VK_AMD_shader_ballot 1
15505#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
15506#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
15507
15508
15509// VK_AMD_texture_gather_bias_lod is a preprocessor guard. Do not pass it to API calls.
15510#define VK_AMD_texture_gather_bias_lod 1
15511#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
15512#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
15513typedef struct VkTextureLODGatherFormatPropertiesAMD {
15514 VkStructureType sType;
15515 void* pNext;
15516 VkBool32 supportsTextureGatherLODBiasAMD;
15517} VkTextureLODGatherFormatPropertiesAMD;
15518
15519
15520
15521// VK_AMD_shader_info is a preprocessor guard. Do not pass it to API calls.
15522#define VK_AMD_shader_info 1
15523#define VK_AMD_SHADER_INFO_SPEC_VERSION 1
15524#define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
15525
15526typedef enum VkShaderInfoTypeAMD {
15527 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
15528 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
15529 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
15530 VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
15531} VkShaderInfoTypeAMD;
15532typedef struct VkShaderResourceUsageAMD {
15533 uint32_t numUsedVgprs;
15534 uint32_t numUsedSgprs;
15535 uint32_t ldsSizePerLocalWorkGroup;
15536 size_t ldsUsageSizeInBytes;
15537 size_t scratchMemUsageInBytes;
15538} VkShaderResourceUsageAMD;
15539
15540typedef struct VkShaderStatisticsInfoAMD {
15541 VkShaderStageFlags shaderStageMask;
15542 VkShaderResourceUsageAMD resourceUsage;
15543 uint32_t numPhysicalVgprs;
15544 uint32_t numPhysicalSgprs;
15545 uint32_t numAvailableVgprs;
15546 uint32_t numAvailableSgprs;
15547 uint32_t computeWorkGroupSize[3];
15548} VkShaderStatisticsInfoAMD;
15549
15550typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
15551
15552#ifndef VK_NO_PROTOTYPES
15553#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15554VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
15555 VkDevice device,
15556 VkPipeline pipeline,
15557 VkShaderStageFlagBits shaderStage,
15558 VkShaderInfoTypeAMD infoType,
15559 size_t* pInfoSize,
15560 void* pInfo);
15561#endif
15562#endif
15563
15564
15565// VK_AMD_shader_image_load_store_lod is a preprocessor guard. Do not pass it to API calls.
15566#define VK_AMD_shader_image_load_store_lod 1
15567#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
15568#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
15569
15570
15571// VK_NV_corner_sampled_image is a preprocessor guard. Do not pass it to API calls.
15572#define VK_NV_corner_sampled_image 1
15573#define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
15574#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
15575typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
15576 VkStructureType sType;
15577 void* pNext;
15578 VkBool32 cornerSampledImage;
15579} VkPhysicalDeviceCornerSampledImageFeaturesNV;
15580
15581
15582
15583// VK_IMG_format_pvrtc is a preprocessor guard. Do not pass it to API calls.
15584#define VK_IMG_format_pvrtc 1
15585#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
15586#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
15587
15588
15589// VK_NV_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
15590#define VK_NV_external_memory_capabilities 1
15591#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
15592#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
15593
15594typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
15595 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
15596 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
15597 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
15598 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
15599 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
15600} VkExternalMemoryHandleTypeFlagBitsNV;
15601typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
15602
15603typedef enum VkExternalMemoryFeatureFlagBitsNV {
15604 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
15605 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
15606 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
15607 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
15608} VkExternalMemoryFeatureFlagBitsNV;
15609typedef VkFlags VkExternalMemoryFeatureFlagsNV;
15610typedef struct VkExternalImageFormatPropertiesNV {
15611 VkImageFormatProperties imageFormatProperties;
15612 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures;
15613 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
15614 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
15615} VkExternalImageFormatPropertiesNV;
15616
15617typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
15618
15619#ifndef VK_NO_PROTOTYPES
15620#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15621VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
15622 VkPhysicalDevice physicalDevice,
15623 VkFormat format,
15624 VkImageType type,
15625 VkImageTiling tiling,
15626 VkImageUsageFlags usage,
15627 VkImageCreateFlags flags,
15628 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
15629 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
15630#endif
15631#endif
15632
15633
15634// VK_NV_external_memory is a preprocessor guard. Do not pass it to API calls.
15635#define VK_NV_external_memory 1
15636#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
15637#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
15638typedef struct VkExternalMemoryImageCreateInfoNV {
15639 VkStructureType sType;
15640 const void* pNext;
15641 VkExternalMemoryHandleTypeFlagsNV handleTypes;
15642} VkExternalMemoryImageCreateInfoNV;
15643
15644typedef struct VkExportMemoryAllocateInfoNV {
15645 VkStructureType sType;
15646 const void* pNext;
15647 VkExternalMemoryHandleTypeFlagsNV handleTypes;
15648} VkExportMemoryAllocateInfoNV;
15649
15650
15651
15652// VK_EXT_validation_flags is a preprocessor guard. Do not pass it to API calls.
15653#define VK_EXT_validation_flags 1
15654#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 3
15655#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
15656
15657typedef enum VkValidationCheckEXT {
15658 VK_VALIDATION_CHECK_ALL_EXT = 0,
15659 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
15660 VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
15661} VkValidationCheckEXT;
15662typedef struct VkValidationFlagsEXT {
15663 VkStructureType sType;
15664 const void* pNext;
15665 uint32_t disabledValidationCheckCount;
15666 const VkValidationCheckEXT* pDisabledValidationChecks;
15667} VkValidationFlagsEXT;
15668
15669
15670
15671// VK_EXT_shader_subgroup_ballot is a preprocessor guard. Do not pass it to API calls.
15672#define VK_EXT_shader_subgroup_ballot 1
15673#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
15674#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
15675
15676
15677// VK_EXT_shader_subgroup_vote is a preprocessor guard. Do not pass it to API calls.
15678#define VK_EXT_shader_subgroup_vote 1
15679#define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
15680#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
15681
15682
15683// VK_EXT_texture_compression_astc_hdr is a preprocessor guard. Do not pass it to API calls.
15684#define VK_EXT_texture_compression_astc_hdr 1
15685#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
15686#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
15687typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
15688
15689
15690
15691// VK_EXT_astc_decode_mode is a preprocessor guard. Do not pass it to API calls.
15692#define VK_EXT_astc_decode_mode 1
15693#define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
15694#define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
15695typedef struct VkImageViewASTCDecodeModeEXT {
15696 VkStructureType sType;
15697 const void* pNext;
15698 VkFormat decodeMode;
15699} VkImageViewASTCDecodeModeEXT;
15700
15701typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
15702 VkStructureType sType;
15703 void* pNext;
15704 VkBool32 decodeModeSharedExponent;
15705} VkPhysicalDeviceASTCDecodeFeaturesEXT;
15706
15707
15708
15709// VK_EXT_pipeline_robustness is a preprocessor guard. Do not pass it to API calls.
15710#define VK_EXT_pipeline_robustness 1
15711#define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1
15712#define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
15713typedef VkPipelineRobustnessBufferBehavior VkPipelineRobustnessBufferBehaviorEXT;
15714
15715typedef VkPipelineRobustnessImageBehavior VkPipelineRobustnessImageBehaviorEXT;
15716
15717typedef VkPhysicalDevicePipelineRobustnessFeatures VkPhysicalDevicePipelineRobustnessFeaturesEXT;
15718
15719typedef VkPhysicalDevicePipelineRobustnessProperties VkPhysicalDevicePipelineRobustnessPropertiesEXT;
15720
15721typedef VkPipelineRobustnessCreateInfo VkPipelineRobustnessCreateInfoEXT;
15722
15723
15724
15725// VK_EXT_conditional_rendering is a preprocessor guard. Do not pass it to API calls.
15726#define VK_EXT_conditional_rendering 1
15727#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
15728#define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
15729typedef struct VkConditionalRenderingBeginInfoEXT {
15730 VkStructureType sType;
15731 const void* pNext;
15732 VkBuffer buffer;
15733 VkDeviceSize offset;
15734 VkConditionalRenderingFlagsEXT flags;
15735} VkConditionalRenderingBeginInfoEXT;
15736
15737typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
15738 VkStructureType sType;
15739 void* pNext;
15740 VkBool32 conditionalRendering;
15741 VkBool32 inheritedConditionalRendering;
15742} VkPhysicalDeviceConditionalRenderingFeaturesEXT;
15743
15744typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
15745 VkStructureType sType;
15746 const void* pNext;
15747 VkBool32 conditionalRenderingEnable;
15748} VkCommandBufferInheritanceConditionalRenderingInfoEXT;
15749
15750typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
15751typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
15752
15753#ifndef VK_NO_PROTOTYPES
15754#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15755VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
15756 VkCommandBuffer commandBuffer,
15757 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
15758#endif
15759
15760#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15761VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
15762 VkCommandBuffer commandBuffer);
15763#endif
15764#endif
15765
15766
15767// VK_NV_clip_space_w_scaling is a preprocessor guard. Do not pass it to API calls.
15768#define VK_NV_clip_space_w_scaling 1
15769#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
15770#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
15771typedef struct VkViewportWScalingNV {
15772 float xcoeff;
15773 float ycoeff;
15774} VkViewportWScalingNV;
15775
15776typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
15777 VkStructureType sType;
15778 const void* pNext;
15779 VkBool32 viewportWScalingEnable;
15780 uint32_t viewportCount;
15781 const VkViewportWScalingNV* pViewportWScalings;
15782} VkPipelineViewportWScalingStateCreateInfoNV;
15783
15784typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
15785
15786#ifndef VK_NO_PROTOTYPES
15787#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15788VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
15789 VkCommandBuffer commandBuffer,
15790 uint32_t firstViewport,
15791 uint32_t viewportCount,
15792 const VkViewportWScalingNV* pViewportWScalings);
15793#endif
15794#endif
15795
15796
15797// VK_EXT_direct_mode_display is a preprocessor guard. Do not pass it to API calls.
15798#define VK_EXT_direct_mode_display 1
15799#define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
15800#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
15801typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
15802
15803#ifndef VK_NO_PROTOTYPES
15804#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15805VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
15806 VkPhysicalDevice physicalDevice,
15807 VkDisplayKHR display);
15808#endif
15809#endif
15810
15811
15812// VK_EXT_display_surface_counter is a preprocessor guard. Do not pass it to API calls.
15813#define VK_EXT_display_surface_counter 1
15814#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
15815#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
15816
15817typedef enum VkSurfaceCounterFlagBitsEXT {
15818 VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001,
15819 // VK_SURFACE_COUNTER_VBLANK_EXT is a legacy alias
15820 VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
15821 VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15822} VkSurfaceCounterFlagBitsEXT;
15823typedef VkFlags VkSurfaceCounterFlagsEXT;
15824typedef struct VkSurfaceCapabilities2EXT {
15825 VkStructureType sType;
15826 void* pNext;
15827 uint32_t minImageCount;
15828 uint32_t maxImageCount;
15829 VkExtent2D currentExtent;
15830 VkExtent2D minImageExtent;
15831 VkExtent2D maxImageExtent;
15832 uint32_t maxImageArrayLayers;
15833 VkSurfaceTransformFlagsKHR supportedTransforms;
15834 VkSurfaceTransformFlagBitsKHR currentTransform;
15835 VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
15836 VkImageUsageFlags supportedUsageFlags;
15837 VkSurfaceCounterFlagsEXT supportedSurfaceCounters;
15838} VkSurfaceCapabilities2EXT;
15839
15840typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
15841
15842#ifndef VK_NO_PROTOTYPES
15843#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15844VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
15845 VkPhysicalDevice physicalDevice,
15846 VkSurfaceKHR surface,
15847 VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
15848#endif
15849#endif
15850
15851
15852// VK_EXT_display_control is a preprocessor guard. Do not pass it to API calls.
15853#define VK_EXT_display_control 1
15854#define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
15855#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
15856
15857typedef enum VkDisplayPowerStateEXT {
15858 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
15859 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
15860 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
15861 VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
15862} VkDisplayPowerStateEXT;
15863
15864typedef enum VkDeviceEventTypeEXT {
15865 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
15866 VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
15867} VkDeviceEventTypeEXT;
15868
15869typedef enum VkDisplayEventTypeEXT {
15870 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
15871 VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
15872} VkDisplayEventTypeEXT;
15873typedef struct VkDisplayPowerInfoEXT {
15874 VkStructureType sType;
15875 const void* pNext;
15876 VkDisplayPowerStateEXT powerState;
15877} VkDisplayPowerInfoEXT;
15878
15879typedef struct VkDeviceEventInfoEXT {
15880 VkStructureType sType;
15881 const void* pNext;
15882 VkDeviceEventTypeEXT deviceEvent;
15883} VkDeviceEventInfoEXT;
15884
15885typedef struct VkDisplayEventInfoEXT {
15886 VkStructureType sType;
15887 const void* pNext;
15888 VkDisplayEventTypeEXT displayEvent;
15889} VkDisplayEventInfoEXT;
15890
15891typedef struct VkSwapchainCounterCreateInfoEXT {
15892 VkStructureType sType;
15893 const void* pNext;
15894 VkSurfaceCounterFlagsEXT surfaceCounters;
15895} VkSwapchainCounterCreateInfoEXT;
15896
15897typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
15898typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
15899typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
15900typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
15901
15902#ifndef VK_NO_PROTOTYPES
15903#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15904VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
15905 VkDevice device,
15906 VkDisplayKHR display,
15907 const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
15908#endif
15909
15910#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15911VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
15912 VkDevice device,
15913 const VkDeviceEventInfoEXT* pDeviceEventInfo,
15914 const VkAllocationCallbacks* pAllocator,
15915 VkFence* pFence);
15916#endif
15917
15918#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15919VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
15920 VkDevice device,
15921 VkDisplayKHR display,
15922 const VkDisplayEventInfoEXT* pDisplayEventInfo,
15923 const VkAllocationCallbacks* pAllocator,
15924 VkFence* pFence);
15925#endif
15926
15927#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15928VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
15929 VkDevice device,
15930 VkSwapchainKHR swapchain,
15931 VkSurfaceCounterFlagBitsEXT counter,
15932 uint64_t* pCounterValue);
15933#endif
15934#endif
15935
15936
15937// VK_GOOGLE_display_timing is a preprocessor guard. Do not pass it to API calls.
15938#define VK_GOOGLE_display_timing 1
15939#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
15940#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
15941typedef struct VkRefreshCycleDurationGOOGLE {
15942 uint64_t refreshDuration;
15943} VkRefreshCycleDurationGOOGLE;
15944
15945typedef struct VkPastPresentationTimingGOOGLE {
15946 uint32_t presentID;
15947 uint64_t desiredPresentTime;
15948 uint64_t actualPresentTime;
15949 uint64_t earliestPresentTime;
15950 uint64_t presentMargin;
15951} VkPastPresentationTimingGOOGLE;
15952
15953typedef struct VkPresentTimeGOOGLE {
15954 uint32_t presentID;
15955 uint64_t desiredPresentTime;
15956} VkPresentTimeGOOGLE;
15957
15958typedef struct VkPresentTimesInfoGOOGLE {
15959 VkStructureType sType;
15960 const void* pNext;
15961 uint32_t swapchainCount;
15962 const VkPresentTimeGOOGLE* pTimes;
15963} VkPresentTimesInfoGOOGLE;
15964
15965typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
15966typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
15967
15968#ifndef VK_NO_PROTOTYPES
15969#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15970VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
15971 VkDevice device,
15972 VkSwapchainKHR swapchain,
15973 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
15974#endif
15975
15976#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15977VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
15978 VkDevice device,
15979 VkSwapchainKHR swapchain,
15980 uint32_t* pPresentationTimingCount,
15981 VkPastPresentationTimingGOOGLE* pPresentationTimings);
15982#endif
15983#endif
15984
15985
15986// VK_NV_sample_mask_override_coverage is a preprocessor guard. Do not pass it to API calls.
15987#define VK_NV_sample_mask_override_coverage 1
15988#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
15989#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
15990
15991
15992// VK_NV_geometry_shader_passthrough is a preprocessor guard. Do not pass it to API calls.
15993#define VK_NV_geometry_shader_passthrough 1
15994#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
15995#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
15996
15997
15998// VK_NV_viewport_array2 is a preprocessor guard. Do not pass it to API calls.
15999#define VK_NV_viewport_array2 1
16000#define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1
16001#define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
16002// VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION is a legacy alias
16003#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION
16004// VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME is a legacy alias
16005#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
16006
16007
16008// VK_NVX_multiview_per_view_attributes is a preprocessor guard. Do not pass it to API calls.
16009#define VK_NVX_multiview_per_view_attributes 1
16010#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
16011#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
16012typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
16013 VkStructureType sType;
16014 void* pNext;
16015 VkBool32 perViewPositionAllComponents;
16016} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
16017
16018typedef struct VkMultiviewPerViewAttributesInfoNVX {
16019 VkStructureType sType;
16020 const void* pNext;
16021 VkBool32 perViewAttributes;
16022 VkBool32 perViewAttributesPositionXOnly;
16023} VkMultiviewPerViewAttributesInfoNVX;
16024
16025
16026
16027// VK_NV_viewport_swizzle is a preprocessor guard. Do not pass it to API calls.
16028#define VK_NV_viewport_swizzle 1
16029#define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
16030#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
16031
16032typedef enum VkViewportCoordinateSwizzleNV {
16033 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
16034 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
16035 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
16036 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
16037 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
16038 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
16039 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
16040 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
16041 VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
16042} VkViewportCoordinateSwizzleNV;
16043typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
16044typedef struct VkViewportSwizzleNV {
16045 VkViewportCoordinateSwizzleNV x;
16046 VkViewportCoordinateSwizzleNV y;
16047 VkViewportCoordinateSwizzleNV z;
16048 VkViewportCoordinateSwizzleNV w;
16049} VkViewportSwizzleNV;
16050
16051typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
16052 VkStructureType sType;
16053 const void* pNext;
16054 VkPipelineViewportSwizzleStateCreateFlagsNV flags;
16055 uint32_t viewportCount;
16056 const VkViewportSwizzleNV* pViewportSwizzles;
16057} VkPipelineViewportSwizzleStateCreateInfoNV;
16058
16059
16060
16061// VK_EXT_discard_rectangles is a preprocessor guard. Do not pass it to API calls.
16062#define VK_EXT_discard_rectangles 1
16063#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 2
16064#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
16065
16066typedef enum VkDiscardRectangleModeEXT {
16067 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
16068 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
16069 VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
16070} VkDiscardRectangleModeEXT;
16071typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
16072typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
16073 VkStructureType sType;
16074 void* pNext;
16075 uint32_t maxDiscardRectangles;
16076} VkPhysicalDeviceDiscardRectanglePropertiesEXT;
16077
16078typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
16079 VkStructureType sType;
16080 const void* pNext;
16081 VkPipelineDiscardRectangleStateCreateFlagsEXT flags;
16082 VkDiscardRectangleModeEXT discardRectangleMode;
16083 uint32_t discardRectangleCount;
16084 const VkRect2D* pDiscardRectangles;
16085} VkPipelineDiscardRectangleStateCreateInfoEXT;
16086
16087typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
16088typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable);
16089typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode);
16090
16091#ifndef VK_NO_PROTOTYPES
16092#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16093VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
16094 VkCommandBuffer commandBuffer,
16095 uint32_t firstDiscardRectangle,
16096 uint32_t discardRectangleCount,
16097 const VkRect2D* pDiscardRectangles);
16098#endif
16099
16100#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16101VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEnableEXT(
16102 VkCommandBuffer commandBuffer,
16103 VkBool32 discardRectangleEnable);
16104#endif
16105
16106#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16107VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleModeEXT(
16108 VkCommandBuffer commandBuffer,
16109 VkDiscardRectangleModeEXT discardRectangleMode);
16110#endif
16111#endif
16112
16113
16114// VK_EXT_conservative_rasterization is a preprocessor guard. Do not pass it to API calls.
16115#define VK_EXT_conservative_rasterization 1
16116#define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
16117#define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
16118
16119typedef enum VkConservativeRasterizationModeEXT {
16120 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
16121 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
16122 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
16123 VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
16124} VkConservativeRasterizationModeEXT;
16125typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
16126typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
16127 VkStructureType sType;
16128 void* pNext;
16129 float primitiveOverestimationSize;
16130 float maxExtraPrimitiveOverestimationSize;
16131 float extraPrimitiveOverestimationSizeGranularity;
16132 VkBool32 primitiveUnderestimation;
16133 VkBool32 conservativePointAndLineRasterization;
16134 VkBool32 degenerateTrianglesRasterized;
16135 VkBool32 degenerateLinesRasterized;
16136 VkBool32 fullyCoveredFragmentShaderInputVariable;
16137 VkBool32 conservativeRasterizationPostDepthCoverage;
16138} VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
16139
16140typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
16141 VkStructureType sType;
16142 const void* pNext;
16143 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags;
16144 VkConservativeRasterizationModeEXT conservativeRasterizationMode;
16145 float extraPrimitiveOverestimationSize;
16146} VkPipelineRasterizationConservativeStateCreateInfoEXT;
16147
16148
16149
16150// VK_EXT_depth_clip_enable is a preprocessor guard. Do not pass it to API calls.
16151#define VK_EXT_depth_clip_enable 1
16152#define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
16153#define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
16154typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
16155typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
16156 VkStructureType sType;
16157 void* pNext;
16158 VkBool32 depthClipEnable;
16159} VkPhysicalDeviceDepthClipEnableFeaturesEXT;
16160
16161typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
16162 VkStructureType sType;
16163 const void* pNext;
16164 VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags;
16165 VkBool32 depthClipEnable;
16166} VkPipelineRasterizationDepthClipStateCreateInfoEXT;
16167
16168
16169
16170// VK_EXT_swapchain_colorspace is a preprocessor guard. Do not pass it to API calls.
16171#define VK_EXT_swapchain_colorspace 1
16172#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 5
16173#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
16174
16175
16176// VK_EXT_hdr_metadata is a preprocessor guard. Do not pass it to API calls.
16177#define VK_EXT_hdr_metadata 1
16178#define VK_EXT_HDR_METADATA_SPEC_VERSION 3
16179#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
16180typedef struct VkXYColorEXT {
16181 float x;
16182 float y;
16183} VkXYColorEXT;
16184
16185typedef struct VkHdrMetadataEXT {
16186 VkStructureType sType;
16187 const void* pNext;
16188 VkXYColorEXT displayPrimaryRed;
16189 VkXYColorEXT displayPrimaryGreen;
16190 VkXYColorEXT displayPrimaryBlue;
16191 VkXYColorEXT whitePoint;
16192 float maxLuminance;
16193 float minLuminance;
16194 float maxContentLightLevel;
16195 float maxFrameAverageLightLevel;
16196} VkHdrMetadataEXT;
16197
16198typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
16199
16200#ifndef VK_NO_PROTOTYPES
16201#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16202VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
16203 VkDevice device,
16204 uint32_t swapchainCount,
16205 const VkSwapchainKHR* pSwapchains,
16206 const VkHdrMetadataEXT* pMetadata);
16207#endif
16208#endif
16209
16210
16211// VK_IMG_relaxed_line_rasterization is a preprocessor guard. Do not pass it to API calls.
16212#define VK_IMG_relaxed_line_rasterization 1
16213#define VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION 1
16214#define VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME "VK_IMG_relaxed_line_rasterization"
16215typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
16216 VkStructureType sType;
16217 void* pNext;
16218 VkBool32 relaxedLineRasterization;
16219} VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
16220
16221
16222
16223// VK_EXT_external_memory_dma_buf is a preprocessor guard. Do not pass it to API calls.
16224#define VK_EXT_external_memory_dma_buf 1
16225#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
16226#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
16227
16228
16229// VK_EXT_queue_family_foreign is a preprocessor guard. Do not pass it to API calls.
16230#define VK_EXT_queue_family_foreign 1
16231#define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
16232#define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
16233#define VK_QUEUE_FAMILY_FOREIGN_EXT (~2U)
16234
16235
16236// VK_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
16237#define VK_EXT_debug_utils 1
16238VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
16239#define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2
16240#define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
16241typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
16242
16243typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
16244 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
16245 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
16246 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
16247 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
16248 VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16249} VkDebugUtilsMessageSeverityFlagBitsEXT;
16250
16251typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
16252 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
16253 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
16254 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
16255 VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0x00000008,
16256 VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16257} VkDebugUtilsMessageTypeFlagBitsEXT;
16258typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
16259typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
16260typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
16261typedef struct VkDebugUtilsLabelEXT {
16262 VkStructureType sType;
16263 const void* pNext;
16264 const char* pLabelName;
16265 float color[4];
16266} VkDebugUtilsLabelEXT;
16267
16268typedef struct VkDebugUtilsObjectNameInfoEXT {
16269 VkStructureType sType;
16270 const void* pNext;
16271 VkObjectType objectType;
16272 uint64_t objectHandle;
16273 const char* pObjectName;
16274} VkDebugUtilsObjectNameInfoEXT;
16275
16276typedef struct VkDebugUtilsMessengerCallbackDataEXT {
16277 VkStructureType sType;
16278 const void* pNext;
16279 VkDebugUtilsMessengerCallbackDataFlagsEXT flags;
16280 const char* pMessageIdName;
16281 int32_t messageIdNumber;
16282 const char* pMessage;
16283 uint32_t queueLabelCount;
16284 const VkDebugUtilsLabelEXT* pQueueLabels;
16285 uint32_t cmdBufLabelCount;
16286 const VkDebugUtilsLabelEXT* pCmdBufLabels;
16287 uint32_t objectCount;
16288 const VkDebugUtilsObjectNameInfoEXT* pObjects;
16289} VkDebugUtilsMessengerCallbackDataEXT;
16290
16291typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
16292 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
16293 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
16294 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
16295 void* pUserData);
16296
16297typedef struct VkDebugUtilsMessengerCreateInfoEXT {
16298 VkStructureType sType;
16299 const void* pNext;
16300 VkDebugUtilsMessengerCreateFlagsEXT flags;
16301 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity;
16302 VkDebugUtilsMessageTypeFlagsEXT messageType;
16303 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
16304 void* pUserData;
16305} VkDebugUtilsMessengerCreateInfoEXT;
16306
16307typedef struct VkDebugUtilsObjectTagInfoEXT {
16308 VkStructureType sType;
16309 const void* pNext;
16310 VkObjectType objectType;
16311 uint64_t objectHandle;
16312 uint64_t tagName;
16313 size_t tagSize;
16314 const void* pTag;
16315} VkDebugUtilsObjectTagInfoEXT;
16316
16317typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
16318typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
16319typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
16320typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
16321typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
16322typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
16323typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
16324typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
16325typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
16326typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
16327typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
16328
16329#ifndef VK_NO_PROTOTYPES
16330#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16331VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
16332 VkDevice device,
16333 const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
16334#endif
16335
16336#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16337VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
16338 VkDevice device,
16339 const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
16340#endif
16341
16342#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16343VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
16344 VkQueue queue,
16345 const VkDebugUtilsLabelEXT* pLabelInfo);
16346#endif
16347
16348#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16349VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
16350 VkQueue queue);
16351#endif
16352
16353#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16354VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
16355 VkQueue queue,
16356 const VkDebugUtilsLabelEXT* pLabelInfo);
16357#endif
16358
16359#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16360VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
16361 VkCommandBuffer commandBuffer,
16362 const VkDebugUtilsLabelEXT* pLabelInfo);
16363#endif
16364
16365#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16366VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
16367 VkCommandBuffer commandBuffer);
16368#endif
16369
16370#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16371VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
16372 VkCommandBuffer commandBuffer,
16373 const VkDebugUtilsLabelEXT* pLabelInfo);
16374#endif
16375
16376#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16377VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
16378 VkInstance instance,
16379 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
16380 const VkAllocationCallbacks* pAllocator,
16381 VkDebugUtilsMessengerEXT* pMessenger);
16382#endif
16383
16384#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16385VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
16386 VkInstance instance,
16387 VkDebugUtilsMessengerEXT messenger,
16388 const VkAllocationCallbacks* pAllocator);
16389#endif
16390
16391#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16392VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
16393 VkInstance instance,
16394 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
16395 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
16396 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
16397#endif
16398#endif
16399
16400
16401// VK_EXT_sampler_filter_minmax is a preprocessor guard. Do not pass it to API calls.
16402#define VK_EXT_sampler_filter_minmax 1
16403#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
16404#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
16405typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
16406
16407typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
16408
16409typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
16410
16411
16412
16413// VK_AMD_gpu_shader_int16 is a preprocessor guard. Do not pass it to API calls.
16414#define VK_AMD_gpu_shader_int16 1
16415#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
16416#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
16417
16418
16419// VK_AMD_gpa_interface is a preprocessor guard. Do not pass it to API calls.
16420#define VK_AMD_gpa_interface 1
16421VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkGpaSessionAMD)
16422#define VK_AMD_GPA_INTERFACE_SPEC_VERSION 1
16423#define VK_AMD_GPA_INTERFACE_EXTENSION_NAME "VK_AMD_gpa_interface"
16424
16425typedef enum VkGpaPerfBlockAMD {
16426 VK_GPA_PERF_BLOCK_CPF_AMD = 0,
16427 VK_GPA_PERF_BLOCK_IA_AMD = 1,
16428 VK_GPA_PERF_BLOCK_VGT_AMD = 2,
16429 VK_GPA_PERF_BLOCK_PA_AMD = 3,
16430 VK_GPA_PERF_BLOCK_SC_AMD = 4,
16431 VK_GPA_PERF_BLOCK_SPI_AMD = 5,
16432 VK_GPA_PERF_BLOCK_SQ_AMD = 6,
16433 VK_GPA_PERF_BLOCK_SX_AMD = 7,
16434 VK_GPA_PERF_BLOCK_TA_AMD = 8,
16435 VK_GPA_PERF_BLOCK_TD_AMD = 9,
16436 VK_GPA_PERF_BLOCK_TCP_AMD = 10,
16437 VK_GPA_PERF_BLOCK_TCC_AMD = 11,
16438 VK_GPA_PERF_BLOCK_TCA_AMD = 12,
16439 VK_GPA_PERF_BLOCK_DB_AMD = 13,
16440 VK_GPA_PERF_BLOCK_CB_AMD = 14,
16441 VK_GPA_PERF_BLOCK_GDS_AMD = 15,
16442 VK_GPA_PERF_BLOCK_SRBM_AMD = 16,
16443 VK_GPA_PERF_BLOCK_GRBM_AMD = 17,
16444 VK_GPA_PERF_BLOCK_GRBM_SE_AMD = 18,
16445 VK_GPA_PERF_BLOCK_RLC_AMD = 19,
16446 VK_GPA_PERF_BLOCK_DMA_AMD = 20,
16447 VK_GPA_PERF_BLOCK_MC_AMD = 21,
16448 VK_GPA_PERF_BLOCK_CPG_AMD = 22,
16449 VK_GPA_PERF_BLOCK_CPC_AMD = 23,
16450 VK_GPA_PERF_BLOCK_WD_AMD = 24,
16451 VK_GPA_PERF_BLOCK_TCS_AMD = 25,
16452 VK_GPA_PERF_BLOCK_ATC_AMD = 26,
16453 VK_GPA_PERF_BLOCK_ATC_L2_AMD = 27,
16454 VK_GPA_PERF_BLOCK_MC_VM_L2_AMD = 28,
16455 VK_GPA_PERF_BLOCK_EA_AMD = 29,
16456 VK_GPA_PERF_BLOCK_RPB_AMD = 30,
16457 VK_GPA_PERF_BLOCK_RMI_AMD = 31,
16458 VK_GPA_PERF_BLOCK_UMCCH_AMD = 32,
16459 VK_GPA_PERF_BLOCK_GE_AMD = 33,
16460 VK_GPA_PERF_BLOCK_GL1A_AMD = 34,
16461 VK_GPA_PERF_BLOCK_GL1C_AMD = 35,
16462 VK_GPA_PERF_BLOCK_GL1CG_AMD = 36,
16463 VK_GPA_PERF_BLOCK_GL2A_AMD = 37,
16464 VK_GPA_PERF_BLOCK_GL2C_AMD = 38,
16465 VK_GPA_PERF_BLOCK_CHA_AMD = 39,
16466 VK_GPA_PERF_BLOCK_CHC_AMD = 40,
16467 VK_GPA_PERF_BLOCK_CHCG_AMD = 41,
16468 VK_GPA_PERF_BLOCK_GUS_AMD = 42,
16469 VK_GPA_PERF_BLOCK_GCR_AMD = 43,
16470 VK_GPA_PERF_BLOCK_PH_AMD = 44,
16471 VK_GPA_PERF_BLOCK_UTCL1_AMD = 45,
16472 VK_GPA_PERF_BLOCK_GE_DIST_AMD = 46,
16473 VK_GPA_PERF_BLOCK_GE_SE_AMD = 47,
16474 VK_GPA_PERF_BLOCK_DF_MALL_AMD = 48,
16475 VK_GPA_PERF_BLOCK_SQ_WGP_AMD = 49,
16476 VK_GPA_PERF_BLOCK_PC_AMD = 50,
16477 VK_GPA_PERF_BLOCK_GL1XA_AMD = 51,
16478 VK_GPA_PERF_BLOCK_GL1XC_AMD = 52,
16479 VK_GPA_PERF_BLOCK_WGS_AMD = 53,
16480 VK_GPA_PERF_BLOCK_EACPWD_AMD = 54,
16481 VK_GPA_PERF_BLOCK_EASE_AMD = 55,
16482 VK_GPA_PERF_BLOCK_RLCUSER_AMD = 56,
16483 VK_GPA_PERF_BLOCK_GE1_AMD = VK_GPA_PERF_BLOCK_GE_AMD,
16484 VK_GPA_PERF_BLOCK_RLCLOCAL_AMD = VK_GPA_PERF_BLOCK_RLCUSER_AMD,
16485 VK_GPA_PERF_BLOCK_MAX_ENUM_AMD = 0x7FFFFFFF
16486} VkGpaPerfBlockAMD;
16487
16488typedef enum VkGpaSampleTypeAMD {
16489 VK_GPA_SAMPLE_TYPE_CUMULATIVE_AMD = 0,
16490 VK_GPA_SAMPLE_TYPE_TRACE_AMD = 1,
16491 VK_GPA_SAMPLE_TYPE_TIMING_AMD = 2,
16492 VK_GPA_SAMPLE_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
16493} VkGpaSampleTypeAMD;
16494
16495typedef enum VkGpaDeviceClockModeAMD {
16496 VK_GPA_DEVICE_CLOCK_MODE_DEFAULT_AMD = 0,
16497 VK_GPA_DEVICE_CLOCK_MODE_QUERY_AMD = 1,
16498 VK_GPA_DEVICE_CLOCK_MODE_PROFILING_AMD = 2,
16499 VK_GPA_DEVICE_CLOCK_MODE_MIN_MEMORY_AMD = 3,
16500 VK_GPA_DEVICE_CLOCK_MODE_MIN_ENGINE_AMD = 4,
16501 VK_GPA_DEVICE_CLOCK_MODE_PEAK_AMD = 5,
16502 VK_GPA_DEVICE_CLOCK_MODE_MAX_ENUM_AMD = 0x7FFFFFFF
16503} VkGpaDeviceClockModeAMD;
16504
16505typedef enum VkGpaSqShaderStageFlagBitsAMD {
16506 VK_GPA_SQ_SHADER_STAGE_PS_BIT_AMD = 0x00000001,
16507 VK_GPA_SQ_SHADER_STAGE_VS_BIT_AMD = 0x00000002,
16508 VK_GPA_SQ_SHADER_STAGE_GS_BIT_AMD = 0x00000004,
16509 VK_GPA_SQ_SHADER_STAGE_ES_BIT_AMD = 0x00000008,
16510 VK_GPA_SQ_SHADER_STAGE_HS_BIT_AMD = 0x00000010,
16511 VK_GPA_SQ_SHADER_STAGE_LS_BIT_AMD = 0x00000020,
16512 VK_GPA_SQ_SHADER_STAGE_CS_BIT_AMD = 0x00000040,
16513 VK_GPA_SQ_SHADER_STAGE_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
16514} VkGpaSqShaderStageFlagBitsAMD;
16515typedef VkFlags VkGpaSqShaderStageFlagsAMD;
16516typedef VkFlags VkGpaPerfBlockPropertiesFlagsAMD;
16517typedef VkFlags VkPhysicalDeviceGpaPropertiesFlagsAMD;
16518typedef struct VkGpaPerfBlockPropertiesAMD {
16519 VkGpaPerfBlockAMD blockType;
16520 VkGpaPerfBlockPropertiesFlagsAMD flags;
16521 uint32_t instanceCount;
16522 uint32_t maxEventID;
16523 uint32_t maxGlobalOnlyCounters;
16524 uint32_t maxGlobalSharedCounters;
16525 uint32_t maxStreamingCounters;
16526} VkGpaPerfBlockPropertiesAMD;
16527
16528typedef struct VkPhysicalDeviceGpaFeaturesAMD {
16529 VkStructureType sType;
16530 void* pNext;
16531 VkBool32 perfCounters;
16532 VkBool32 streamingPerfCounters;
16533 VkBool32 sqThreadTracing;
16534 VkBool32 clockModes;
16535} VkPhysicalDeviceGpaFeaturesAMD;
16536
16537typedef struct VkPhysicalDeviceGpaPropertiesAMD {
16538 VkStructureType sType;
16539 void* pNext;
16540 VkPhysicalDeviceGpaPropertiesFlagsAMD flags;
16541 VkDeviceSize maxSqttSeBufferSize;
16542 uint32_t shaderEngineCount;
16543 uint32_t perfBlockCount;
16544 VkGpaPerfBlockPropertiesAMD* pPerfBlocks;
16545} VkPhysicalDeviceGpaPropertiesAMD;
16546
16547typedef struct VkPhysicalDeviceGpaProperties2AMD {
16548 VkStructureType sType;
16549 void* pNext;
16550 uint32_t revisionId;
16551} VkPhysicalDeviceGpaProperties2AMD;
16552
16553typedef struct VkGpaPerfCounterAMD {
16554 VkGpaPerfBlockAMD blockType;
16555 uint32_t blockInstance;
16556 uint32_t eventID;
16557} VkGpaPerfCounterAMD;
16558
16559typedef struct VkGpaSampleBeginInfoAMD {
16560 VkStructureType sType;
16561 const void* pNext;
16562 VkGpaSampleTypeAMD sampleType;
16563 VkBool32 sampleInternalOperations;
16564 VkBool32 cacheFlushOnCounterCollection;
16565 VkBool32 sqShaderMaskEnable;
16566 VkGpaSqShaderStageFlagsAMD sqShaderMask;
16567 uint32_t perfCounterCount;
16568 const VkGpaPerfCounterAMD* pPerfCounters;
16569 uint32_t streamingPerfTraceSampleInterval;
16570 VkDeviceSize perfCounterDeviceMemoryLimit;
16571 VkBool32 sqThreadTraceEnable;
16572 VkBool32 sqThreadTraceSuppressInstructionTokens;
16573 VkDeviceSize sqThreadTraceDeviceMemoryLimit;
16574 VkPipelineStageFlags timingPreSample;
16575 VkPipelineStageFlags timingPostSample;
16576} VkGpaSampleBeginInfoAMD;
16577
16578typedef struct VkGpaDeviceClockModeInfoAMD {
16579 VkStructureType sType;
16580 const void* pNext;
16581 VkGpaDeviceClockModeAMD clockMode;
16582 float memoryClockRatioToPeak;
16583 float engineClockRatioToPeak;
16584} VkGpaDeviceClockModeInfoAMD;
16585
16586typedef struct VkGpaDeviceGetClockInfoAMD {
16587 VkStructureType sType;
16588 void* pNext;
16589 float memoryClockRatioToPeak;
16590 float engineClockRatioToPeak;
16591 uint32_t memoryClockFrequency;
16592 uint32_t engineClockFrequency;
16593} VkGpaDeviceGetClockInfoAMD;
16594
16595typedef struct VkGpaSessionCreateInfoAMD {
16596 VkStructureType sType;
16597 const void* pNext;
16598 VkGpaSessionAMD secondaryCopySource;
16599} VkGpaSessionCreateInfoAMD;
16600
16601typedef VkResult (VKAPI_PTR *PFN_vkCreateGpaSessionAMD)(VkDevice device, const VkGpaSessionCreateInfoAMD* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkGpaSessionAMD* pGpaSession);
16602typedef void (VKAPI_PTR *PFN_vkDestroyGpaSessionAMD)(VkDevice device, VkGpaSessionAMD gpaSession, const VkAllocationCallbacks* pAllocator);
16603typedef VkResult (VKAPI_PTR *PFN_vkSetGpaDeviceClockModeAMD)(VkDevice device, VkGpaDeviceClockModeInfoAMD* pInfo);
16604typedef VkResult (VKAPI_PTR *PFN_vkGetGpaDeviceClockInfoAMD)(VkDevice device, VkGpaDeviceGetClockInfoAMD* pInfo);
16605typedef VkResult (VKAPI_PTR *PFN_vkCmdBeginGpaSessionAMD)(VkCommandBuffer commandBuffer, VkGpaSessionAMD gpaSession);
16606typedef VkResult (VKAPI_PTR *PFN_vkCmdEndGpaSessionAMD)(VkCommandBuffer commandBuffer, VkGpaSessionAMD gpaSession);
16607typedef VkResult (VKAPI_PTR *PFN_vkCmdBeginGpaSampleAMD)(VkCommandBuffer commandBuffer, VkGpaSessionAMD gpaSession, const VkGpaSampleBeginInfoAMD* pGpaSampleBeginInfo, uint32_t* pSampleID);
16608typedef void (VKAPI_PTR *PFN_vkCmdEndGpaSampleAMD)(VkCommandBuffer commandBuffer, VkGpaSessionAMD gpaSession, uint32_t sampleID);
16609typedef VkResult (VKAPI_PTR *PFN_vkGetGpaSessionStatusAMD)(VkDevice device, VkGpaSessionAMD gpaSession);
16610typedef VkResult (VKAPI_PTR *PFN_vkGetGpaSessionResultsAMD)(VkDevice device, VkGpaSessionAMD gpaSession, uint32_t sampleID, size_t* pSizeInBytes, void* pData);
16611typedef VkResult (VKAPI_PTR *PFN_vkResetGpaSessionAMD)(VkDevice device, VkGpaSessionAMD gpaSession);
16612typedef void (VKAPI_PTR *PFN_vkCmdCopyGpaSessionResultsAMD)(VkCommandBuffer commandBuffer, VkGpaSessionAMD gpaSession);
16613
16614#ifndef VK_NO_PROTOTYPES
16615#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16616VKAPI_ATTR VkResult VKAPI_CALL vkCreateGpaSessionAMD(
16617 VkDevice device,
16618 const VkGpaSessionCreateInfoAMD* pCreateInfo,
16619 const VkAllocationCallbacks* pAllocator,
16620 VkGpaSessionAMD* pGpaSession);
16621#endif
16622
16623#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16624VKAPI_ATTR void VKAPI_CALL vkDestroyGpaSessionAMD(
16625 VkDevice device,
16626 VkGpaSessionAMD gpaSession,
16627 const VkAllocationCallbacks* pAllocator);
16628#endif
16629
16630#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16631VKAPI_ATTR VkResult VKAPI_CALL vkSetGpaDeviceClockModeAMD(
16632 VkDevice device,
16633 VkGpaDeviceClockModeInfoAMD* pInfo);
16634#endif
16635
16636#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16637VKAPI_ATTR VkResult VKAPI_CALL vkGetGpaDeviceClockInfoAMD(
16638 VkDevice device,
16639 VkGpaDeviceGetClockInfoAMD* pInfo);
16640#endif
16641
16642#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16643VKAPI_ATTR VkResult VKAPI_CALL vkCmdBeginGpaSessionAMD(
16644 VkCommandBuffer commandBuffer,
16645 VkGpaSessionAMD gpaSession);
16646#endif
16647
16648#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16649VKAPI_ATTR VkResult VKAPI_CALL vkCmdEndGpaSessionAMD(
16650 VkCommandBuffer commandBuffer,
16651 VkGpaSessionAMD gpaSession);
16652#endif
16653
16654#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16655VKAPI_ATTR VkResult VKAPI_CALL vkCmdBeginGpaSampleAMD(
16656 VkCommandBuffer commandBuffer,
16657 VkGpaSessionAMD gpaSession,
16658 const VkGpaSampleBeginInfoAMD* pGpaSampleBeginInfo,
16659 uint32_t* pSampleID);
16660#endif
16661
16662#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16663VKAPI_ATTR void VKAPI_CALL vkCmdEndGpaSampleAMD(
16664 VkCommandBuffer commandBuffer,
16665 VkGpaSessionAMD gpaSession,
16666 uint32_t sampleID);
16667#endif
16668
16669#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16670VKAPI_ATTR VkResult VKAPI_CALL vkGetGpaSessionStatusAMD(
16671 VkDevice device,
16672 VkGpaSessionAMD gpaSession);
16673#endif
16674
16675#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16676VKAPI_ATTR VkResult VKAPI_CALL vkGetGpaSessionResultsAMD(
16677 VkDevice device,
16678 VkGpaSessionAMD gpaSession,
16679 uint32_t sampleID,
16680 size_t* pSizeInBytes,
16681 void* pData);
16682#endif
16683
16684#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16685VKAPI_ATTR VkResult VKAPI_CALL vkResetGpaSessionAMD(
16686 VkDevice device,
16687 VkGpaSessionAMD gpaSession);
16688#endif
16689
16690#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16691VKAPI_ATTR void VKAPI_CALL vkCmdCopyGpaSessionResultsAMD(
16692 VkCommandBuffer commandBuffer,
16693 VkGpaSessionAMD gpaSession);
16694#endif
16695#endif
16696
16697
16698// VK_EXT_descriptor_heap is a preprocessor guard. Do not pass it to API calls.
16699#define VK_EXT_descriptor_heap 1
16700VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorARM)
16701#define VK_EXT_DESCRIPTOR_HEAP_SPEC_VERSION 1
16702#define VK_EXT_DESCRIPTOR_HEAP_EXTENSION_NAME "VK_EXT_descriptor_heap"
16703
16704typedef enum VkDescriptorMappingSourceEXT {
16705 VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT = 0,
16706 VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT = 1,
16707 VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT = 2,
16708 VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT = 3,
16709 VK_DESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT = 4,
16710 VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT = 5,
16711 VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT = 6,
16712 VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT = 7,
16713 VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT = 8,
16714 VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT = 9,
16715 VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT = 10,
16716 VK_DESCRIPTOR_MAPPING_SOURCE_MAX_ENUM_EXT = 0x7FFFFFFF
16717} VkDescriptorMappingSourceEXT;
16718typedef VkFlags64 VkTensorViewCreateFlagsARM;
16719
16720// Flag bits for VkTensorViewCreateFlagBitsARM
16721typedef VkFlags64 VkTensorViewCreateFlagBitsARM;
16722static const VkTensorViewCreateFlagBitsARM VK_TENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM = 0x00000001ULL;
16723
16724
16725typedef enum VkSpirvResourceTypeFlagBitsEXT {
16726 VK_SPIRV_RESOURCE_TYPE_ALL_EXT = 0x7FFFFFFF,
16727 VK_SPIRV_RESOURCE_TYPE_SAMPLER_BIT_EXT = 0x00000001,
16728 VK_SPIRV_RESOURCE_TYPE_SAMPLED_IMAGE_BIT_EXT = 0x00000002,
16729 VK_SPIRV_RESOURCE_TYPE_READ_ONLY_IMAGE_BIT_EXT = 0x00000004,
16730 VK_SPIRV_RESOURCE_TYPE_READ_WRITE_IMAGE_BIT_EXT = 0x00000008,
16731 VK_SPIRV_RESOURCE_TYPE_COMBINED_SAMPLED_IMAGE_BIT_EXT = 0x00000010,
16732 VK_SPIRV_RESOURCE_TYPE_UNIFORM_BUFFER_BIT_EXT = 0x00000020,
16733 VK_SPIRV_RESOURCE_TYPE_READ_ONLY_STORAGE_BUFFER_BIT_EXT = 0x00000040,
16734 VK_SPIRV_RESOURCE_TYPE_READ_WRITE_STORAGE_BUFFER_BIT_EXT = 0x00000080,
16735 VK_SPIRV_RESOURCE_TYPE_ACCELERATION_STRUCTURE_BIT_EXT = 0x00000100,
16736 VK_SPIRV_RESOURCE_TYPE_TENSOR_BIT_ARM = 0x00000200,
16737 VK_SPIRV_RESOURCE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16738} VkSpirvResourceTypeFlagBitsEXT;
16739typedef VkFlags VkSpirvResourceTypeFlagsEXT;
16740typedef struct VkHostAddressRangeEXT {
16741 void* address;
16742 size_t size;
16743} VkHostAddressRangeEXT;
16744
16745typedef struct VkHostAddressRangeConstEXT {
16746 const void* address;
16747 size_t size;
16748} VkHostAddressRangeConstEXT;
16749
16750typedef VkDeviceAddressRangeKHR VkDeviceAddressRangeEXT;
16751
16752typedef struct VkTexelBufferDescriptorInfoEXT {
16753 VkStructureType sType;
16754 const void* pNext;
16755 VkFormat format;
16756 VkDeviceAddressRangeEXT addressRange;
16757} VkTexelBufferDescriptorInfoEXT;
16758
16759typedef struct VkImageDescriptorInfoEXT {
16760 VkStructureType sType;
16761 const void* pNext;
16762 const VkImageViewCreateInfo* pView;
16763 VkImageLayout layout;
16764} VkImageDescriptorInfoEXT;
16765
16766typedef struct VkTensorViewCreateInfoARM {
16767 VkStructureType sType;
16768 const void* pNext;
16769 VkTensorViewCreateFlagsARM flags;
16770 VkTensorARM tensor;
16771 VkFormat format;
16772} VkTensorViewCreateInfoARM;
16773
16774typedef union VkResourceDescriptorDataEXT {
16775 const VkImageDescriptorInfoEXT* pImage;
16776 const VkTexelBufferDescriptorInfoEXT* pTexelBuffer;
16777 const VkDeviceAddressRangeEXT* pAddressRange;
16778 const VkTensorViewCreateInfoARM* pTensorARM;
16779} VkResourceDescriptorDataEXT;
16780
16781typedef struct VkResourceDescriptorInfoEXT {
16782 VkStructureType sType;
16783 const void* pNext;
16784 VkDescriptorType type;
16785 VkResourceDescriptorDataEXT data;
16786} VkResourceDescriptorInfoEXT;
16787
16788typedef struct VkBindHeapInfoEXT {
16789 VkStructureType sType;
16790 const void* pNext;
16791 VkDeviceAddressRangeEXT heapRange;
16792 VkDeviceSize reservedRangeOffset;
16793 VkDeviceSize reservedRangeSize;
16794} VkBindHeapInfoEXT;
16795
16796typedef struct VkPushDataInfoEXT {
16797 VkStructureType sType;
16798 const void* pNext;
16799 uint32_t offset;
16800 VkHostAddressRangeConstEXT data;
16801} VkPushDataInfoEXT;
16802
16803typedef struct VkDescriptorMappingSourceConstantOffsetEXT {
16804 uint32_t heapOffset;
16805 uint32_t heapArrayStride;
16806 const VkSamplerCreateInfo* pEmbeddedSampler;
16807 uint32_t samplerHeapOffset;
16808 uint32_t samplerHeapArrayStride;
16809} VkDescriptorMappingSourceConstantOffsetEXT;
16810
16811typedef struct VkDescriptorMappingSourcePushIndexEXT {
16812 uint32_t heapOffset;
16813 uint32_t pushOffset;
16814 uint32_t heapIndexStride;
16815 uint32_t heapArrayStride;
16816 const VkSamplerCreateInfo* pEmbeddedSampler;
16817 VkBool32 useCombinedImageSamplerIndex;
16818 uint32_t samplerHeapOffset;
16819 uint32_t samplerPushOffset;
16820 uint32_t samplerHeapIndexStride;
16821 uint32_t samplerHeapArrayStride;
16822} VkDescriptorMappingSourcePushIndexEXT;
16823
16824typedef struct VkDescriptorMappingSourceIndirectIndexEXT {
16825 uint32_t heapOffset;
16826 uint32_t pushOffset;
16827 uint32_t addressOffset;
16828 uint32_t heapIndexStride;
16829 uint32_t heapArrayStride;
16830 const VkSamplerCreateInfo* pEmbeddedSampler;
16831 VkBool32 useCombinedImageSamplerIndex;
16832 uint32_t samplerHeapOffset;
16833 uint32_t samplerPushOffset;
16834 uint32_t samplerAddressOffset;
16835 uint32_t samplerHeapIndexStride;
16836 uint32_t samplerHeapArrayStride;
16837} VkDescriptorMappingSourceIndirectIndexEXT;
16838
16839typedef struct VkDescriptorMappingSourceHeapDataEXT {
16840 uint32_t heapOffset;
16841 uint32_t pushOffset;
16842} VkDescriptorMappingSourceHeapDataEXT;
16843
16844typedef struct VkDescriptorMappingSourceIndirectAddressEXT {
16845 uint32_t pushOffset;
16846 uint32_t addressOffset;
16847} VkDescriptorMappingSourceIndirectAddressEXT;
16848
16849typedef struct VkDescriptorMappingSourceShaderRecordIndexEXT {
16850 uint32_t heapOffset;
16851 uint32_t shaderRecordOffset;
16852 uint32_t heapIndexStride;
16853 uint32_t heapArrayStride;
16854 const VkSamplerCreateInfo* pEmbeddedSampler;
16855 VkBool32 useCombinedImageSamplerIndex;
16856 uint32_t samplerHeapOffset;
16857 uint32_t samplerShaderRecordOffset;
16858 uint32_t samplerHeapIndexStride;
16859 uint32_t samplerHeapArrayStride;
16860} VkDescriptorMappingSourceShaderRecordIndexEXT;
16861
16862typedef struct VkDescriptorMappingSourceIndirectIndexArrayEXT {
16863 uint32_t heapOffset;
16864 uint32_t pushOffset;
16865 uint32_t addressOffset;
16866 uint32_t heapIndexStride;
16867 const VkSamplerCreateInfo* pEmbeddedSampler;
16868 VkBool32 useCombinedImageSamplerIndex;
16869 uint32_t samplerHeapOffset;
16870 uint32_t samplerPushOffset;
16871 uint32_t samplerAddressOffset;
16872 uint32_t samplerHeapIndexStride;
16873} VkDescriptorMappingSourceIndirectIndexArrayEXT;
16874
16875typedef union VkDescriptorMappingSourceDataEXT {
16876 VkDescriptorMappingSourceConstantOffsetEXT constantOffset;
16877 VkDescriptorMappingSourcePushIndexEXT pushIndex;
16878 VkDescriptorMappingSourceIndirectIndexEXT indirectIndex;
16879 VkDescriptorMappingSourceIndirectIndexArrayEXT indirectIndexArray;
16880 VkDescriptorMappingSourceHeapDataEXT heapData;
16881 uint32_t pushDataOffset;
16882 uint32_t pushAddressOffset;
16883 VkDescriptorMappingSourceIndirectAddressEXT indirectAddress;
16884 VkDescriptorMappingSourceShaderRecordIndexEXT shaderRecordIndex;
16885 uint32_t shaderRecordDataOffset;
16886 uint32_t shaderRecordAddressOffset;
16887} VkDescriptorMappingSourceDataEXT;
16888
16889typedef struct VkDescriptorSetAndBindingMappingEXT {
16890 VkStructureType sType;
16891 const void* pNext;
16892 uint32_t descriptorSet;
16893 uint32_t firstBinding;
16894 uint32_t bindingCount;
16895 VkSpirvResourceTypeFlagsEXT resourceMask;
16896 VkDescriptorMappingSourceEXT source;
16897 VkDescriptorMappingSourceDataEXT sourceData;
16898} VkDescriptorSetAndBindingMappingEXT;
16899
16900typedef struct VkShaderDescriptorSetAndBindingMappingInfoEXT {
16901 VkStructureType sType;
16902 const void* pNext;
16903 uint32_t mappingCount;
16904 const VkDescriptorSetAndBindingMappingEXT* pMappings;
16905} VkShaderDescriptorSetAndBindingMappingInfoEXT;
16906
16907typedef struct VkOpaqueCaptureDataCreateInfoEXT {
16908 VkStructureType sType;
16909 const void* pNext;
16910 const VkHostAddressRangeConstEXT* pData;
16911} VkOpaqueCaptureDataCreateInfoEXT;
16912
16913typedef struct VkPhysicalDeviceDescriptorHeapFeaturesEXT {
16914 VkStructureType sType;
16915 void* pNext;
16916 VkBool32 descriptorHeap;
16917 VkBool32 descriptorHeapCaptureReplay;
16918} VkPhysicalDeviceDescriptorHeapFeaturesEXT;
16919
16920typedef struct VkPhysicalDeviceDescriptorHeapPropertiesEXT {
16921 VkStructureType sType;
16922 void* pNext;
16923 VkDeviceSize samplerHeapAlignment;
16924 VkDeviceSize resourceHeapAlignment;
16925 VkDeviceSize maxSamplerHeapSize;
16926 VkDeviceSize maxResourceHeapSize;
16927 VkDeviceSize minSamplerHeapReservedRange;
16928 VkDeviceSize minSamplerHeapReservedRangeWithEmbedded;
16929 VkDeviceSize minResourceHeapReservedRange;
16930 VkDeviceSize samplerDescriptorSize;
16931 VkDeviceSize imageDescriptorSize;
16932 VkDeviceSize bufferDescriptorSize;
16933 VkDeviceSize samplerDescriptorAlignment;
16934 VkDeviceSize imageDescriptorAlignment;
16935 VkDeviceSize bufferDescriptorAlignment;
16936 VkDeviceSize maxPushDataSize;
16937 size_t imageCaptureReplayOpaqueDataSize;
16938 uint32_t maxDescriptorHeapEmbeddedSamplers;
16939 uint32_t samplerYcbcrConversionCount;
16940 VkBool32 sparseDescriptorHeaps;
16941 VkBool32 protectedDescriptorHeaps;
16942} VkPhysicalDeviceDescriptorHeapPropertiesEXT;
16943
16944typedef struct VkCommandBufferInheritanceDescriptorHeapInfoEXT {
16945 VkStructureType sType;
16946 const void* pNext;
16947 const VkBindHeapInfoEXT* pSamplerHeapBindInfo;
16948 const VkBindHeapInfoEXT* pResourceHeapBindInfo;
16949} VkCommandBufferInheritanceDescriptorHeapInfoEXT;
16950
16951typedef struct VkSamplerCustomBorderColorIndexCreateInfoEXT {
16952 VkStructureType sType;
16953 const void* pNext;
16954 uint32_t index;
16955} VkSamplerCustomBorderColorIndexCreateInfoEXT;
16956
16957typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
16958 VkStructureType sType;
16959 const void* pNext;
16960 VkClearColorValue customBorderColor;
16961 VkFormat format;
16962} VkSamplerCustomBorderColorCreateInfoEXT;
16963
16964typedef struct VkIndirectCommandsLayoutPushDataTokenNV {
16965 VkStructureType sType;
16966 const void* pNext;
16967 uint32_t pushDataOffset;
16968 uint32_t pushDataSize;
16969} VkIndirectCommandsLayoutPushDataTokenNV;
16970
16971typedef struct VkSubsampledImageFormatPropertiesEXT {
16972 VkStructureType sType;
16973 const void* pNext;
16974 uint32_t subsampledImageDescriptorCount;
16975} VkSubsampledImageFormatPropertiesEXT;
16976
16977typedef struct VkPhysicalDeviceDescriptorHeapTensorPropertiesARM {
16978 VkStructureType sType;
16979 void* pNext;
16980 VkDeviceSize tensorDescriptorSize;
16981 VkDeviceSize tensorDescriptorAlignment;
16982 size_t tensorCaptureReplayOpaqueDataSize;
16983} VkPhysicalDeviceDescriptorHeapTensorPropertiesARM;
16984
16985typedef VkResult (VKAPI_PTR *PFN_vkWriteSamplerDescriptorsEXT)(VkDevice device, uint32_t samplerCount, const VkSamplerCreateInfo* pSamplers, const VkHostAddressRangeEXT* pDescriptors);
16986typedef VkResult (VKAPI_PTR *PFN_vkWriteResourceDescriptorsEXT)(VkDevice device, uint32_t resourceCount, const VkResourceDescriptorInfoEXT* pResources, const VkHostAddressRangeEXT* pDescriptors);
16987typedef void (VKAPI_PTR *PFN_vkCmdBindSamplerHeapEXT)(VkCommandBuffer commandBuffer, const VkBindHeapInfoEXT* pBindInfo);
16988typedef void (VKAPI_PTR *PFN_vkCmdBindResourceHeapEXT)(VkCommandBuffer commandBuffer, const VkBindHeapInfoEXT* pBindInfo);
16989typedef void (VKAPI_PTR *PFN_vkCmdPushDataEXT)(VkCommandBuffer commandBuffer, const VkPushDataInfoEXT* pPushDataInfo);
16990typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDataEXT)(VkDevice device, uint32_t imageCount, const VkImage* pImages, VkHostAddressRangeEXT* pDatas);
16991typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetPhysicalDeviceDescriptorSizeEXT)(VkPhysicalDevice physicalDevice, VkDescriptorType descriptorType);
16992typedef VkResult (VKAPI_PTR *PFN_vkRegisterCustomBorderColorEXT)(VkDevice device, const VkSamplerCustomBorderColorCreateInfoEXT* pBorderColor, VkBool32 requestIndex, uint32_t* pIndex);
16993typedef void (VKAPI_PTR *PFN_vkUnregisterCustomBorderColorEXT)(VkDevice device, uint32_t index);
16994typedef VkResult (VKAPI_PTR *PFN_vkGetTensorOpaqueCaptureDataARM)(VkDevice device, uint32_t tensorCount, const VkTensorARM* pTensors, VkHostAddressRangeEXT* pDatas);
16995
16996#ifndef VK_NO_PROTOTYPES
16997#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16998VKAPI_ATTR VkResult VKAPI_CALL vkWriteSamplerDescriptorsEXT(
16999 VkDevice device,
17000 uint32_t samplerCount,
17001 const VkSamplerCreateInfo* pSamplers,
17002 const VkHostAddressRangeEXT* pDescriptors);
17003#endif
17004
17005#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17006VKAPI_ATTR VkResult VKAPI_CALL vkWriteResourceDescriptorsEXT(
17007 VkDevice device,
17008 uint32_t resourceCount,
17009 const VkResourceDescriptorInfoEXT* pResources,
17010 const VkHostAddressRangeEXT* pDescriptors);
17011#endif
17012
17013#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17014VKAPI_ATTR void VKAPI_CALL vkCmdBindSamplerHeapEXT(
17015 VkCommandBuffer commandBuffer,
17016 const VkBindHeapInfoEXT* pBindInfo);
17017#endif
17018
17019#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17020VKAPI_ATTR void VKAPI_CALL vkCmdBindResourceHeapEXT(
17021 VkCommandBuffer commandBuffer,
17022 const VkBindHeapInfoEXT* pBindInfo);
17023#endif
17024
17025#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17026VKAPI_ATTR void VKAPI_CALL vkCmdPushDataEXT(
17027 VkCommandBuffer commandBuffer,
17028 const VkPushDataInfoEXT* pPushDataInfo);
17029#endif
17030
17031#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17032VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDataEXT(
17033 VkDevice device,
17034 uint32_t imageCount,
17035 const VkImage* pImages,
17036 VkHostAddressRangeEXT* pDatas);
17037#endif
17038
17039#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17040VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetPhysicalDeviceDescriptorSizeEXT(
17041 VkPhysicalDevice physicalDevice,
17042 VkDescriptorType descriptorType);
17043#endif
17044
17045#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17046VKAPI_ATTR VkResult VKAPI_CALL vkRegisterCustomBorderColorEXT(
17047 VkDevice device,
17048 const VkSamplerCustomBorderColorCreateInfoEXT* pBorderColor,
17049 VkBool32 requestIndex,
17050 uint32_t* pIndex);
17051#endif
17052
17053#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17054VKAPI_ATTR void VKAPI_CALL vkUnregisterCustomBorderColorEXT(
17055 VkDevice device,
17056 uint32_t index);
17057#endif
17058
17059#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17060VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorOpaqueCaptureDataARM(
17061 VkDevice device,
17062 uint32_t tensorCount,
17063 const VkTensorARM* pTensors,
17064 VkHostAddressRangeEXT* pDatas);
17065#endif
17066#endif
17067
17068
17069// VK_AMD_mixed_attachment_samples is a preprocessor guard. Do not pass it to API calls.
17070#define VK_AMD_mixed_attachment_samples 1
17071#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
17072#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
17073typedef struct VkAttachmentSampleCountInfoAMD {
17074 VkStructureType sType;
17075 const void* pNext;
17076 uint32_t colorAttachmentCount;
17077 const VkSampleCountFlagBits* pColorAttachmentSamples;
17078 VkSampleCountFlagBits depthStencilAttachmentSamples;
17079} VkAttachmentSampleCountInfoAMD;
17080
17081
17082
17083// VK_AMD_shader_fragment_mask is a preprocessor guard. Do not pass it to API calls.
17084#define VK_AMD_shader_fragment_mask 1
17085#define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
17086#define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
17087
17088
17089// VK_EXT_inline_uniform_block is a preprocessor guard. Do not pass it to API calls.
17090#define VK_EXT_inline_uniform_block 1
17091#define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
17092#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
17093typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
17094
17095typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
17096
17097typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
17098
17099typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
17100
17101
17102
17103// VK_EXT_shader_stencil_export is a preprocessor guard. Do not pass it to API calls.
17104#define VK_EXT_shader_stencil_export 1
17105#define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
17106#define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
17107
17108
17109// VK_EXT_sample_locations is a preprocessor guard. Do not pass it to API calls.
17110#define VK_EXT_sample_locations 1
17111#define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
17112#define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
17113typedef struct VkSampleLocationEXT {
17114 float x;
17115 float y;
17116} VkSampleLocationEXT;
17117
17118typedef struct VkSampleLocationsInfoEXT {
17119 VkStructureType sType;
17120 const void* pNext;
17121 VkSampleCountFlagBits sampleLocationsPerPixel;
17122 VkExtent2D sampleLocationGridSize;
17123 uint32_t sampleLocationsCount;
17124 const VkSampleLocationEXT* pSampleLocations;
17125} VkSampleLocationsInfoEXT;
17126
17127typedef struct VkAttachmentSampleLocationsEXT {
17128 uint32_t attachmentIndex;
17129 VkSampleLocationsInfoEXT sampleLocationsInfo;
17130} VkAttachmentSampleLocationsEXT;
17131
17132typedef struct VkSubpassSampleLocationsEXT {
17133 uint32_t subpassIndex;
17134 VkSampleLocationsInfoEXT sampleLocationsInfo;
17135} VkSubpassSampleLocationsEXT;
17136
17137typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
17138 VkStructureType sType;
17139 const void* pNext;
17140 uint32_t attachmentInitialSampleLocationsCount;
17141 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
17142 uint32_t postSubpassSampleLocationsCount;
17143 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations;
17144} VkRenderPassSampleLocationsBeginInfoEXT;
17145
17146typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
17147 VkStructureType sType;
17148 const void* pNext;
17149 VkBool32 sampleLocationsEnable;
17150 VkSampleLocationsInfoEXT sampleLocationsInfo;
17151} VkPipelineSampleLocationsStateCreateInfoEXT;
17152
17153typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
17154 VkStructureType sType;
17155 void* pNext;
17156 VkSampleCountFlags sampleLocationSampleCounts;
17157 VkExtent2D maxSampleLocationGridSize;
17158 float sampleLocationCoordinateRange[2];
17159 uint32_t sampleLocationSubPixelBits;
17160 VkBool32 variableSampleLocations;
17161} VkPhysicalDeviceSampleLocationsPropertiesEXT;
17162
17163typedef struct VkMultisamplePropertiesEXT {
17164 VkStructureType sType;
17165 void* pNext;
17166 VkExtent2D maxSampleLocationGridSize;
17167} VkMultisamplePropertiesEXT;
17168
17169typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
17170typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
17171
17172#ifndef VK_NO_PROTOTYPES
17173#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17174VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
17175 VkCommandBuffer commandBuffer,
17176 const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
17177#endif
17178
17179#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17180VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
17181 VkPhysicalDevice physicalDevice,
17182 VkSampleCountFlagBits samples,
17183 VkMultisamplePropertiesEXT* pMultisampleProperties);
17184#endif
17185#endif
17186
17187
17188// VK_EXT_blend_operation_advanced is a preprocessor guard. Do not pass it to API calls.
17189#define VK_EXT_blend_operation_advanced 1
17190#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
17191#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
17192
17193typedef enum VkBlendOverlapEXT {
17194 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
17195 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
17196 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
17197 VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
17198} VkBlendOverlapEXT;
17199typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
17200 VkStructureType sType;
17201 void* pNext;
17202 VkBool32 advancedBlendCoherentOperations;
17203} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
17204
17205typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
17206 VkStructureType sType;
17207 void* pNext;
17208 uint32_t advancedBlendMaxColorAttachments;
17209 VkBool32 advancedBlendIndependentBlend;
17210 VkBool32 advancedBlendNonPremultipliedSrcColor;
17211 VkBool32 advancedBlendNonPremultipliedDstColor;
17212 VkBool32 advancedBlendCorrelatedOverlap;
17213 VkBool32 advancedBlendAllOperations;
17214} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
17215
17216typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
17217 VkStructureType sType;
17218 const void* pNext;
17219 VkBool32 srcPremultiplied;
17220 VkBool32 dstPremultiplied;
17221 VkBlendOverlapEXT blendOverlap;
17222} VkPipelineColorBlendAdvancedStateCreateInfoEXT;
17223
17224
17225
17226// VK_NV_fragment_coverage_to_color is a preprocessor guard. Do not pass it to API calls.
17227#define VK_NV_fragment_coverage_to_color 1
17228#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
17229#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
17230typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
17231typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
17232 VkStructureType sType;
17233 const void* pNext;
17234 VkPipelineCoverageToColorStateCreateFlagsNV flags;
17235 VkBool32 coverageToColorEnable;
17236 uint32_t coverageToColorLocation;
17237} VkPipelineCoverageToColorStateCreateInfoNV;
17238
17239
17240
17241// VK_NV_framebuffer_mixed_samples is a preprocessor guard. Do not pass it to API calls.
17242#define VK_NV_framebuffer_mixed_samples 1
17243#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
17244#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
17245
17246typedef enum VkCoverageModulationModeNV {
17247 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
17248 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
17249 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
17250 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
17251 VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
17252} VkCoverageModulationModeNV;
17253typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
17254typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
17255 VkStructureType sType;
17256 const void* pNext;
17257 VkPipelineCoverageModulationStateCreateFlagsNV flags;
17258 VkCoverageModulationModeNV coverageModulationMode;
17259 VkBool32 coverageModulationTableEnable;
17260 uint32_t coverageModulationTableCount;
17261 const float* pCoverageModulationTable;
17262} VkPipelineCoverageModulationStateCreateInfoNV;
17263
17264typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
17265
17266
17267
17268// VK_NV_fill_rectangle is a preprocessor guard. Do not pass it to API calls.
17269#define VK_NV_fill_rectangle 1
17270#define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
17271#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
17272
17273
17274// VK_NV_shader_sm_builtins is a preprocessor guard. Do not pass it to API calls.
17275#define VK_NV_shader_sm_builtins 1
17276#define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
17277#define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
17278typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
17279 VkStructureType sType;
17280 void* pNext;
17281 uint32_t shaderSMCount;
17282 uint32_t shaderWarpsPerSM;
17283} VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
17284
17285typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
17286 VkStructureType sType;
17287 void* pNext;
17288 VkBool32 shaderSMBuiltins;
17289} VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
17290
17291
17292
17293// VK_EXT_post_depth_coverage is a preprocessor guard. Do not pass it to API calls.
17294#define VK_EXT_post_depth_coverage 1
17295#define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
17296#define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
17297
17298
17299// VK_EXT_image_drm_format_modifier is a preprocessor guard. Do not pass it to API calls.
17300#define VK_EXT_image_drm_format_modifier 1
17301#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
17302#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
17303typedef struct VkDrmFormatModifierPropertiesEXT {
17304 uint64_t drmFormatModifier;
17305 uint32_t drmFormatModifierPlaneCount;
17306 VkFormatFeatureFlags drmFormatModifierTilingFeatures;
17307} VkDrmFormatModifierPropertiesEXT;
17308
17309typedef struct VkDrmFormatModifierPropertiesListEXT {
17310 VkStructureType sType;
17311 void* pNext;
17312 uint32_t drmFormatModifierCount;
17313 VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties;
17314} VkDrmFormatModifierPropertiesListEXT;
17315
17316typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
17317 VkStructureType sType;
17318 const void* pNext;
17319 uint64_t drmFormatModifier;
17320 VkSharingMode sharingMode;
17321 uint32_t queueFamilyIndexCount;
17322 const uint32_t* pQueueFamilyIndices;
17323} VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
17324
17325typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
17326 VkStructureType sType;
17327 const void* pNext;
17328 uint32_t drmFormatModifierCount;
17329 const uint64_t* pDrmFormatModifiers;
17330} VkImageDrmFormatModifierListCreateInfoEXT;
17331
17332typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
17333 VkStructureType sType;
17334 const void* pNext;
17335 uint64_t drmFormatModifier;
17336 uint32_t drmFormatModifierPlaneCount;
17337 const VkSubresourceLayout* pPlaneLayouts;
17338} VkImageDrmFormatModifierExplicitCreateInfoEXT;
17339
17340typedef struct VkImageDrmFormatModifierPropertiesEXT {
17341 VkStructureType sType;
17342 void* pNext;
17343 uint64_t drmFormatModifier;
17344} VkImageDrmFormatModifierPropertiesEXT;
17345
17346typedef struct VkDrmFormatModifierProperties2EXT {
17347 uint64_t drmFormatModifier;
17348 uint32_t drmFormatModifierPlaneCount;
17349 VkFormatFeatureFlags2 drmFormatModifierTilingFeatures;
17350} VkDrmFormatModifierProperties2EXT;
17351
17352typedef struct VkDrmFormatModifierPropertiesList2EXT {
17353 VkStructureType sType;
17354 void* pNext;
17355 uint32_t drmFormatModifierCount;
17356 VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties;
17357} VkDrmFormatModifierPropertiesList2EXT;
17358
17359typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
17360
17361#ifndef VK_NO_PROTOTYPES
17362#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17363VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
17364 VkDevice device,
17365 VkImage image,
17366 VkImageDrmFormatModifierPropertiesEXT* pProperties);
17367#endif
17368#endif
17369
17370
17371// VK_EXT_validation_cache is a preprocessor guard. Do not pass it to API calls.
17372#define VK_EXT_validation_cache 1
17373VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
17374#define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
17375#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
17376
17377typedef enum VkValidationCacheHeaderVersionEXT {
17378 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
17379 VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
17380} VkValidationCacheHeaderVersionEXT;
17381typedef VkFlags VkValidationCacheCreateFlagsEXT;
17382typedef struct VkValidationCacheCreateInfoEXT {
17383 VkStructureType sType;
17384 const void* pNext;
17385 VkValidationCacheCreateFlagsEXT flags;
17386 size_t initialDataSize;
17387 const void* pInitialData;
17388} VkValidationCacheCreateInfoEXT;
17389
17390typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
17391 VkStructureType sType;
17392 const void* pNext;
17393 VkValidationCacheEXT validationCache;
17394} VkShaderModuleValidationCacheCreateInfoEXT;
17395
17396typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
17397typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
17398typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
17399typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
17400
17401#ifndef VK_NO_PROTOTYPES
17402#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17403VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
17404 VkDevice device,
17405 const VkValidationCacheCreateInfoEXT* pCreateInfo,
17406 const VkAllocationCallbacks* pAllocator,
17407 VkValidationCacheEXT* pValidationCache);
17408#endif
17409
17410#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17411VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
17412 VkDevice device,
17413 VkValidationCacheEXT validationCache,
17414 const VkAllocationCallbacks* pAllocator);
17415#endif
17416
17417#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17418VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
17419 VkDevice device,
17420 VkValidationCacheEXT dstCache,
17421 uint32_t srcCacheCount,
17422 const VkValidationCacheEXT* pSrcCaches);
17423#endif
17424
17425#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17426VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
17427 VkDevice device,
17428 VkValidationCacheEXT validationCache,
17429 size_t* pDataSize,
17430 void* pData);
17431#endif
17432#endif
17433
17434
17435// VK_EXT_descriptor_indexing is a preprocessor guard. Do not pass it to API calls.
17436#define VK_EXT_descriptor_indexing 1
17437#define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
17438#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
17439typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
17440
17441typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
17442
17443typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
17444
17445typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
17446
17447typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
17448
17449typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
17450
17451typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
17452
17453
17454
17455// VK_EXT_shader_viewport_index_layer is a preprocessor guard. Do not pass it to API calls.
17456#define VK_EXT_shader_viewport_index_layer 1
17457#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
17458#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
17459
17460
17461// VK_NV_shading_rate_image is a preprocessor guard. Do not pass it to API calls.
17462#define VK_NV_shading_rate_image 1
17463#define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
17464#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
17465
17466typedef enum VkShadingRatePaletteEntryNV {
17467 VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
17468 VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
17469 VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
17470 VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
17471 VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
17472 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
17473 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
17474 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
17475 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
17476 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
17477 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
17478 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
17479 VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
17480} VkShadingRatePaletteEntryNV;
17481
17482typedef enum VkCoarseSampleOrderTypeNV {
17483 VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
17484 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
17485 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
17486 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
17487 VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
17488} VkCoarseSampleOrderTypeNV;
17489typedef struct VkShadingRatePaletteNV {
17490 uint32_t shadingRatePaletteEntryCount;
17491 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries;
17492} VkShadingRatePaletteNV;
17493
17494typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
17495 VkStructureType sType;
17496 const void* pNext;
17497 VkBool32 shadingRateImageEnable;
17498 uint32_t viewportCount;
17499 const VkShadingRatePaletteNV* pShadingRatePalettes;
17500} VkPipelineViewportShadingRateImageStateCreateInfoNV;
17501
17502typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
17503 VkStructureType sType;
17504 void* pNext;
17505 VkBool32 shadingRateImage;
17506 VkBool32 shadingRateCoarseSampleOrder;
17507} VkPhysicalDeviceShadingRateImageFeaturesNV;
17508
17509typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
17510 VkStructureType sType;
17511 void* pNext;
17512 VkExtent2D shadingRateTexelSize;
17513 uint32_t shadingRatePaletteSize;
17514 uint32_t shadingRateMaxCoarseSamples;
17515} VkPhysicalDeviceShadingRateImagePropertiesNV;
17516
17517typedef struct VkCoarseSampleLocationNV {
17518 uint32_t pixelX;
17519 uint32_t pixelY;
17520 uint32_t sample;
17521} VkCoarseSampleLocationNV;
17522
17523typedef struct VkCoarseSampleOrderCustomNV {
17524 VkShadingRatePaletteEntryNV shadingRate;
17525 uint32_t sampleCount;
17526 uint32_t sampleLocationCount;
17527 const VkCoarseSampleLocationNV* pSampleLocations;
17528} VkCoarseSampleOrderCustomNV;
17529
17530typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
17531 VkStructureType sType;
17532 const void* pNext;
17533 VkCoarseSampleOrderTypeNV sampleOrderType;
17534 uint32_t customSampleOrderCount;
17535 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders;
17536} VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
17537
17538typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
17539typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
17540typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
17541
17542#ifndef VK_NO_PROTOTYPES
17543#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17544VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
17545 VkCommandBuffer commandBuffer,
17546 VkImageView imageView,
17547 VkImageLayout imageLayout);
17548#endif
17549
17550#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17551VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
17552 VkCommandBuffer commandBuffer,
17553 uint32_t firstViewport,
17554 uint32_t viewportCount,
17555 const VkShadingRatePaletteNV* pShadingRatePalettes);
17556#endif
17557
17558#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17559VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
17560 VkCommandBuffer commandBuffer,
17561 VkCoarseSampleOrderTypeNV sampleOrderType,
17562 uint32_t customSampleOrderCount,
17563 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
17564#endif
17565#endif
17566
17567
17568// VK_NV_ray_tracing is a preprocessor guard. Do not pass it to API calls.
17569#define VK_NV_ray_tracing 1
17570VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
17571#define VK_NV_RAY_TRACING_SPEC_VERSION 3
17572#define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing"
17573#define VK_SHADER_UNUSED_KHR (~0U)
17574#define VK_SHADER_UNUSED_NV VK_SHADER_UNUSED_KHR
17575
17576typedef enum VkRayTracingShaderGroupTypeKHR {
17577 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
17578 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
17579 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
17580 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
17581 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
17582 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
17583 VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
17584} VkRayTracingShaderGroupTypeKHR;
17585typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
17586
17587
17588typedef enum VkGeometryTypeKHR {
17589 VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
17590 VK_GEOMETRY_TYPE_AABBS_KHR = 1,
17591 VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
17592 VK_GEOMETRY_TYPE_SPHERES_NV = 1000429004,
17593 VK_GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV = 1000429005,
17594#ifdef VK_ENABLE_BETA_EXTENSIONS
17595 VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX = 1000478000,
17596#endif
17597 VK_GEOMETRY_TYPE_MICROMAP_KHR = 1000623000,
17598 VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
17599 VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
17600 VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
17601} VkGeometryTypeKHR;
17602typedef VkGeometryTypeKHR VkGeometryTypeNV;
17603
17604typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
17605
17606
17607typedef enum VkCopyAccelerationStructureModeKHR {
17608 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
17609 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
17610 VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
17611 VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
17612 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
17613 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
17614 VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
17615} VkCopyAccelerationStructureModeKHR;
17616typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
17617
17618
17619typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
17620 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
17621 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
17622 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
17623 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
17624} VkAccelerationStructureMemoryRequirementsTypeNV;
17625
17626typedef enum VkGeometryFlagBitsKHR {
17627 VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
17628 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
17629 VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
17630 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
17631 VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
17632} VkGeometryFlagBitsKHR;
17633typedef VkFlags VkGeometryFlagsKHR;
17634typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
17635
17636typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
17637
17638
17639typedef enum VkGeometryInstanceFlagBitsKHR {
17640 VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
17641 VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
17642 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
17643 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
17644 VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_KHR = 0x00000010,
17645 VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_KHR = 0x00000020,
17646 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
17647 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
17648 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
17649 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
17650 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
17651 VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT = VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_KHR,
17652 // VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT is a legacy alias
17653 VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT,
17654 VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT = VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_KHR,
17655 // VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT is a legacy alias
17656 VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT,
17657 VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
17658} VkGeometryInstanceFlagBitsKHR;
17659typedef VkFlags VkGeometryInstanceFlagsKHR;
17660typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
17661
17662typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
17663
17664
17665typedef enum VkBuildAccelerationStructureFlagBitsKHR {
17666 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
17667 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
17668 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
17669 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
17670 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
17671 VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020,
17672 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT = 0x00000100,
17673#ifdef VK_ENABLE_BETA_EXTENSIONS
17674 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV = 0x00000200,
17675#endif
17676 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR = 0x00000800,
17677 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_CLUSTER_OPACITY_MICROMAPS_BIT_NV = 0x00001000,
17678 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_KHR = 0x00000040,
17679 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_KHR = 0x00000080,
17680 VK_BUILD_ACCELERATION_STRUCTURE_MICROMAP_LOSSY_BIT_KHR = 0x00000400,
17681 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
17682 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
17683 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
17684 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
17685 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
17686 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_KHR,
17687 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT is a legacy alias
17688 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT,
17689 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_KHR,
17690 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT is a legacy alias
17691 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT,
17692 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT is a legacy alias
17693 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT,
17694#ifdef VK_ENABLE_BETA_EXTENSIONS
17695 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV is a legacy alias
17696 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV,
17697#endif
17698 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR is a legacy alias
17699 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR,
17700 VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
17701} VkBuildAccelerationStructureFlagBitsKHR;
17702typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
17703typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
17704
17705typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
17706
17707typedef struct VkRayTracingShaderGroupCreateInfoNV {
17708 VkStructureType sType;
17709 const void* pNext;
17710 VkRayTracingShaderGroupTypeKHR type;
17711 uint32_t generalShader;
17712 uint32_t closestHitShader;
17713 uint32_t anyHitShader;
17714 uint32_t intersectionShader;
17715} VkRayTracingShaderGroupCreateInfoNV;
17716
17717typedef struct VkRayTracingPipelineCreateInfoNV {
17718 VkStructureType sType;
17719 const void* pNext;
17720 VkPipelineCreateFlags flags;
17721 uint32_t stageCount;
17722 const VkPipelineShaderStageCreateInfo* pStages;
17723 uint32_t groupCount;
17724 const VkRayTracingShaderGroupCreateInfoNV* pGroups;
17725 uint32_t maxRecursionDepth;
17726 VkPipelineLayout layout;
17727 VkPipeline basePipelineHandle;
17728 int32_t basePipelineIndex;
17729} VkRayTracingPipelineCreateInfoNV;
17730
17731typedef struct VkGeometryTrianglesNV {
17732 VkStructureType sType;
17733 const void* pNext;
17734 VkBuffer vertexData;
17735 VkDeviceSize vertexOffset;
17736 uint32_t vertexCount;
17737 VkDeviceSize vertexStride;
17738 VkFormat vertexFormat;
17739 VkBuffer indexData;
17740 VkDeviceSize indexOffset;
17741 uint32_t indexCount;
17742 VkIndexType indexType;
17743 VkBuffer transformData;
17744 VkDeviceSize transformOffset;
17745} VkGeometryTrianglesNV;
17746
17747typedef struct VkGeometryAABBNV {
17748 VkStructureType sType;
17749 const void* pNext;
17750 VkBuffer aabbData;
17751 uint32_t numAABBs;
17752 uint32_t stride;
17753 VkDeviceSize offset;
17754} VkGeometryAABBNV;
17755
17756typedef struct VkGeometryDataNV {
17757 VkGeometryTrianglesNV triangles;
17758 VkGeometryAABBNV aabbs;
17759} VkGeometryDataNV;
17760
17761typedef struct VkGeometryNV {
17762 VkStructureType sType;
17763 const void* pNext;
17764 VkGeometryTypeKHR geometryType;
17765 VkGeometryDataNV geometry;
17766 VkGeometryFlagsKHR flags;
17767} VkGeometryNV;
17768
17769typedef struct VkAccelerationStructureInfoNV {
17770 VkStructureType sType;
17771 const void* pNext;
17772 VkAccelerationStructureTypeNV type;
17773 VkBuildAccelerationStructureFlagsKHR flags;
17774 uint32_t instanceCount;
17775 uint32_t geometryCount;
17776 const VkGeometryNV* pGeometries;
17777} VkAccelerationStructureInfoNV;
17778
17779typedef struct VkAccelerationStructureCreateInfoNV {
17780 VkStructureType sType;
17781 const void* pNext;
17782 VkDeviceSize compactedSize;
17783 VkAccelerationStructureInfoNV info;
17784} VkAccelerationStructureCreateInfoNV;
17785
17786typedef struct VkBindAccelerationStructureMemoryInfoNV {
17787 VkStructureType sType;
17788 const void* pNext;
17789 VkAccelerationStructureNV accelerationStructure;
17790 VkDeviceMemory memory;
17791 VkDeviceSize memoryOffset;
17792 uint32_t deviceIndexCount;
17793 const uint32_t* pDeviceIndices;
17794} VkBindAccelerationStructureMemoryInfoNV;
17795
17796typedef struct VkWriteDescriptorSetAccelerationStructureNV {
17797 VkStructureType sType;
17798 const void* pNext;
17799 uint32_t accelerationStructureCount;
17800 const VkAccelerationStructureNV* pAccelerationStructures;
17801} VkWriteDescriptorSetAccelerationStructureNV;
17802
17803typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
17804 VkStructureType sType;
17805 const void* pNext;
17806 VkAccelerationStructureMemoryRequirementsTypeNV type;
17807 VkAccelerationStructureNV accelerationStructure;
17808} VkAccelerationStructureMemoryRequirementsInfoNV;
17809
17810typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
17811 VkStructureType sType;
17812 void* pNext;
17813 uint32_t shaderGroupHandleSize;
17814 uint32_t maxRecursionDepth;
17815 uint32_t maxShaderGroupStride;
17816 uint32_t shaderGroupBaseAlignment;
17817 uint64_t maxGeometryCount;
17818 uint64_t maxInstanceCount;
17819 uint64_t maxTriangleCount;
17820 uint32_t maxDescriptorSetAccelerationStructures;
17821} VkPhysicalDeviceRayTracingPropertiesNV;
17822
17823typedef struct VkTransformMatrixKHR {
17824 float matrix[3][4];
17825} VkTransformMatrixKHR;
17826
17827typedef VkTransformMatrixKHR VkTransformMatrixNV;
17828
17829typedef struct VkAabbPositionsKHR {
17830 float minX;
17831 float minY;
17832 float minZ;
17833 float maxX;
17834 float maxY;
17835 float maxZ;
17836} VkAabbPositionsKHR;
17837
17838typedef VkAabbPositionsKHR VkAabbPositionsNV;
17839
17840typedef struct VkAccelerationStructureInstanceKHR {
17841 VkTransformMatrixKHR transform;
17842 uint32_t instanceCustomIndex:24;
17843 uint32_t mask:8;
17844 uint32_t instanceShaderBindingTableRecordOffset:24;
17845 VkGeometryInstanceFlagsKHR flags:8;
17846 uint64_t accelerationStructureReference;
17847} VkAccelerationStructureInstanceKHR;
17848
17849typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
17850
17851typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
17852typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
17853typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
17854typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
17855typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset);
17856typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
17857typedef 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);
17858typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
17859typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
17860typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
17861typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
17862typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
17863typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
17864
17865#ifndef VK_NO_PROTOTYPES
17866#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17867VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
17868 VkDevice device,
17869 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
17870 const VkAllocationCallbacks* pAllocator,
17871 VkAccelerationStructureNV* pAccelerationStructure);
17872#endif
17873
17874#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17875VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
17876 VkDevice device,
17877 VkAccelerationStructureNV accelerationStructure,
17878 const VkAllocationCallbacks* pAllocator);
17879#endif
17880
17881#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17882VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
17883 VkDevice device,
17884 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
17885 VkMemoryRequirements2* pMemoryRequirements);
17886#endif
17887
17888#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17889VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
17890 VkDevice device,
17891 uint32_t bindInfoCount,
17892 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
17893#endif
17894
17895#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17896VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
17897 VkCommandBuffer commandBuffer,
17898 const VkAccelerationStructureInfoNV* pInfo,
17899 VkBuffer instanceData,
17900 VkDeviceSize instanceOffset,
17901 VkBool32 update,
17902 VkAccelerationStructureNV dst,
17903 VkAccelerationStructureNV src,
17904 VkBuffer scratch,
17905 VkDeviceSize scratchOffset);
17906#endif
17907
17908#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17909VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
17910 VkCommandBuffer commandBuffer,
17911 VkAccelerationStructureNV dst,
17912 VkAccelerationStructureNV src,
17913 VkCopyAccelerationStructureModeKHR mode);
17914#endif
17915
17916#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17917VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
17918 VkCommandBuffer commandBuffer,
17919 VkBuffer raygenShaderBindingTableBuffer,
17920 VkDeviceSize raygenShaderBindingOffset,
17921 VkBuffer missShaderBindingTableBuffer,
17922 VkDeviceSize missShaderBindingOffset,
17923 VkDeviceSize missShaderBindingStride,
17924 VkBuffer hitShaderBindingTableBuffer,
17925 VkDeviceSize hitShaderBindingOffset,
17926 VkDeviceSize hitShaderBindingStride,
17927 VkBuffer callableShaderBindingTableBuffer,
17928 VkDeviceSize callableShaderBindingOffset,
17929 VkDeviceSize callableShaderBindingStride,
17930 uint32_t width,
17931 uint32_t height,
17932 uint32_t depth);
17933#endif
17934
17935#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17936VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
17937 VkDevice device,
17938 VkPipelineCache pipelineCache,
17939 uint32_t createInfoCount,
17940 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
17941 const VkAllocationCallbacks* pAllocator,
17942 VkPipeline* pPipelines);
17943#endif
17944
17945#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17946VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
17947 VkDevice device,
17948 VkPipeline pipeline,
17949 uint32_t firstGroup,
17950 uint32_t groupCount,
17951 size_t dataSize,
17952 void* pData);
17953#endif
17954
17955#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17956VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
17957 VkDevice device,
17958 VkPipeline pipeline,
17959 uint32_t firstGroup,
17960 uint32_t groupCount,
17961 size_t dataSize,
17962 void* pData);
17963#endif
17964
17965#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17966VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
17967 VkDevice device,
17968 VkAccelerationStructureNV accelerationStructure,
17969 size_t dataSize,
17970 void* pData);
17971#endif
17972
17973#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17974VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
17975 VkCommandBuffer commandBuffer,
17976 uint32_t accelerationStructureCount,
17977 const VkAccelerationStructureNV* pAccelerationStructures,
17978 VkQueryType queryType,
17979 VkQueryPool queryPool,
17980 uint32_t firstQuery);
17981#endif
17982
17983#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17984VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
17985 VkDevice device,
17986 VkPipeline pipeline,
17987 uint32_t shader);
17988#endif
17989#endif
17990
17991
17992// VK_NV_representative_fragment_test is a preprocessor guard. Do not pass it to API calls.
17993#define VK_NV_representative_fragment_test 1
17994#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
17995#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
17996typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
17997 VkStructureType sType;
17998 void* pNext;
17999 VkBool32 representativeFragmentTest;
18000} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
18001
18002typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
18003 VkStructureType sType;
18004 const void* pNext;
18005 VkBool32 representativeFragmentTestEnable;
18006} VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
18007
18008
18009
18010// VK_EXT_filter_cubic is a preprocessor guard. Do not pass it to API calls.
18011#define VK_EXT_filter_cubic 1
18012#define VK_EXT_FILTER_CUBIC_SPEC_VERSION 3
18013#define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
18014typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
18015 VkStructureType sType;
18016 void* pNext;
18017 VkImageViewType imageViewType;
18018} VkPhysicalDeviceImageViewImageFormatInfoEXT;
18019
18020typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
18021 VkStructureType sType;
18022 void* pNext;
18023 VkBool32 filterCubic;
18024 VkBool32 filterCubicMinmax;
18025} VkFilterCubicImageViewImageFormatPropertiesEXT;
18026
18027
18028
18029// VK_QCOM_render_pass_shader_resolve is a preprocessor guard. Do not pass it to API calls.
18030#define VK_QCOM_render_pass_shader_resolve 1
18031#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
18032#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
18033
18034
18035// VK_QCOM_cooperative_matrix_conversion is a preprocessor guard. Do not pass it to API calls.
18036#define VK_QCOM_cooperative_matrix_conversion 1
18037#define VK_QCOM_COOPERATIVE_MATRIX_CONVERSION_SPEC_VERSION 1
18038#define VK_QCOM_COOPERATIVE_MATRIX_CONVERSION_EXTENSION_NAME "VK_QCOM_cooperative_matrix_conversion"
18039typedef struct VkPhysicalDeviceCooperativeMatrixConversionFeaturesQCOM {
18040 VkStructureType sType;
18041 void* pNext;
18042 VkBool32 cooperativeMatrixConversion;
18043} VkPhysicalDeviceCooperativeMatrixConversionFeaturesQCOM;
18044
18045
18046
18047// VK_QCOM_elapsed_timer_query is a preprocessor guard. Do not pass it to API calls.
18048#define VK_QCOM_elapsed_timer_query 1
18049#define VK_QCOM_ELAPSED_TIMER_QUERY_SPEC_VERSION 1
18050#define VK_QCOM_ELAPSED_TIMER_QUERY_EXTENSION_NAME "VK_QCOM_elapsed_timer_query"
18051typedef struct VkPhysicalDeviceElapsedTimerQueryFeaturesQCOM {
18052 VkStructureType sType;
18053 void* pNext;
18054 VkBool32 elapsedTimerQuery;
18055} VkPhysicalDeviceElapsedTimerQueryFeaturesQCOM;
18056
18057
18058
18059// VK_EXT_global_priority is a preprocessor guard. Do not pass it to API calls.
18060#define VK_EXT_global_priority 1
18061#define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
18062#define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
18063typedef VkQueueGlobalPriority VkQueueGlobalPriorityEXT;
18064
18065typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoEXT;
18066
18067
18068
18069// VK_EXT_external_memory_host is a preprocessor guard. Do not pass it to API calls.
18070#define VK_EXT_external_memory_host 1
18071#define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
18072#define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
18073typedef struct VkImportMemoryHostPointerInfoEXT {
18074 VkStructureType sType;
18075 const void* pNext;
18076 VkExternalMemoryHandleTypeFlagBits handleType;
18077 void* pHostPointer;
18078} VkImportMemoryHostPointerInfoEXT;
18079
18080typedef struct VkMemoryHostPointerPropertiesEXT {
18081 VkStructureType sType;
18082 void* pNext;
18083 uint32_t memoryTypeBits;
18084} VkMemoryHostPointerPropertiesEXT;
18085
18086typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
18087 VkStructureType sType;
18088 void* pNext;
18089 VkDeviceSize minImportedHostPointerAlignment;
18090} VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
18091
18092typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
18093
18094#ifndef VK_NO_PROTOTYPES
18095#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18096VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
18097 VkDevice device,
18098 VkExternalMemoryHandleTypeFlagBits handleType,
18099 const void* pHostPointer,
18100 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
18101#endif
18102#endif
18103
18104
18105// VK_AMD_buffer_marker is a preprocessor guard. Do not pass it to API calls.
18106#define VK_AMD_buffer_marker 1
18107#define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
18108#define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
18109typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
18110typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
18111
18112#ifndef VK_NO_PROTOTYPES
18113#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18114VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
18115 VkCommandBuffer commandBuffer,
18116 VkPipelineStageFlagBits pipelineStage,
18117 VkBuffer dstBuffer,
18118 VkDeviceSize dstOffset,
18119 uint32_t marker);
18120#endif
18121
18122#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18123VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD(
18124 VkCommandBuffer commandBuffer,
18125 VkPipelineStageFlags2 stage,
18126 VkBuffer dstBuffer,
18127 VkDeviceSize dstOffset,
18128 uint32_t marker);
18129#endif
18130#endif
18131
18132
18133// VK_AMD_pipeline_compiler_control is a preprocessor guard. Do not pass it to API calls.
18134#define VK_AMD_pipeline_compiler_control 1
18135#define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
18136#define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
18137
18138typedef enum VkPipelineCompilerControlFlagBitsAMD {
18139 VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
18140} VkPipelineCompilerControlFlagBitsAMD;
18141typedef VkFlags VkPipelineCompilerControlFlagsAMD;
18142typedef struct VkPipelineCompilerControlCreateInfoAMD {
18143 VkStructureType sType;
18144 const void* pNext;
18145 VkPipelineCompilerControlFlagsAMD compilerControlFlags;
18146} VkPipelineCompilerControlCreateInfoAMD;
18147
18148
18149
18150// VK_EXT_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
18151#define VK_EXT_calibrated_timestamps 1
18152#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
18153#define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
18154typedef VkTimeDomainKHR VkTimeDomainEXT;
18155
18156typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT;
18157
18158typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
18159typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
18160
18161#ifndef VK_NO_PROTOTYPES
18162#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18163VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
18164 VkPhysicalDevice physicalDevice,
18165 uint32_t* pTimeDomainCount,
18166 VkTimeDomainKHR* pTimeDomains);
18167#endif
18168
18169#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18170VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
18171 VkDevice device,
18172 uint32_t timestampCount,
18173 const VkCalibratedTimestampInfoKHR* pTimestampInfos,
18174 uint64_t* pTimestamps,
18175 uint64_t* pMaxDeviation);
18176#endif
18177#endif
18178
18179
18180// VK_AMD_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
18181#define VK_AMD_shader_core_properties 1
18182#define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
18183#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
18184typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
18185 VkStructureType sType;
18186 void* pNext;
18187 uint32_t shaderEngineCount;
18188 uint32_t shaderArraysPerEngineCount;
18189 uint32_t computeUnitsPerShaderArray;
18190 uint32_t simdPerComputeUnit;
18191 uint32_t wavefrontsPerSimd;
18192 uint32_t wavefrontSize;
18193 uint32_t sgprsPerSimd;
18194 uint32_t minSgprAllocation;
18195 uint32_t maxSgprAllocation;
18196 uint32_t sgprAllocationGranularity;
18197 uint32_t vgprsPerSimd;
18198 uint32_t minVgprAllocation;
18199 uint32_t maxVgprAllocation;
18200 uint32_t vgprAllocationGranularity;
18201} VkPhysicalDeviceShaderCorePropertiesAMD;
18202
18203
18204
18205// VK_AMD_memory_overallocation_behavior is a preprocessor guard. Do not pass it to API calls.
18206#define VK_AMD_memory_overallocation_behavior 1
18207#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
18208#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
18209
18210typedef enum VkMemoryOverallocationBehaviorAMD {
18211 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
18212 VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
18213 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
18214 VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
18215} VkMemoryOverallocationBehaviorAMD;
18216typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
18217 VkStructureType sType;
18218 const void* pNext;
18219 VkMemoryOverallocationBehaviorAMD overallocationBehavior;
18220} VkDeviceMemoryOverallocationCreateInfoAMD;
18221
18222
18223
18224// VK_EXT_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
18225#define VK_EXT_vertex_attribute_divisor 1
18226#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
18227#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
18228typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
18229 VkStructureType sType;
18230 void* pNext;
18231 uint32_t maxVertexAttribDivisor;
18232} VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
18233
18234typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionEXT;
18235
18236typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoEXT;
18237
18238typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
18239
18240
18241
18242// VK_EXT_pipeline_creation_feedback is a preprocessor guard. Do not pass it to API calls.
18243#define VK_EXT_pipeline_creation_feedback 1
18244#define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
18245#define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
18246typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT;
18247
18248typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
18249
18250typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
18251
18252typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
18253
18254
18255
18256// VK_NV_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
18257#define VK_NV_shader_subgroup_partitioned 1
18258#define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
18259#define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
18260
18261
18262// VK_NV_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
18263#define VK_NV_compute_shader_derivatives 1
18264#define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
18265#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
18266typedef VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
18267
18268
18269
18270// VK_NV_mesh_shader is a preprocessor guard. Do not pass it to API calls.
18271#define VK_NV_mesh_shader 1
18272#define VK_NV_MESH_SHADER_SPEC_VERSION 1
18273#define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
18274typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
18275 VkStructureType sType;
18276 void* pNext;
18277 VkBool32 taskShader;
18278 VkBool32 meshShader;
18279} VkPhysicalDeviceMeshShaderFeaturesNV;
18280
18281typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
18282 VkStructureType sType;
18283 void* pNext;
18284 uint32_t maxDrawMeshTasksCount;
18285 uint32_t maxTaskWorkGroupInvocations;
18286 uint32_t maxTaskWorkGroupSize[3];
18287 uint32_t maxTaskTotalMemorySize;
18288 uint32_t maxTaskOutputCount;
18289 uint32_t maxMeshWorkGroupInvocations;
18290 uint32_t maxMeshWorkGroupSize[3];
18291 uint32_t maxMeshTotalMemorySize;
18292 uint32_t maxMeshOutputVertices;
18293 uint32_t maxMeshOutputPrimitives;
18294 uint32_t maxMeshMultiviewViewCount;
18295 uint32_t meshOutputPerVertexGranularity;
18296 uint32_t meshOutputPerPrimitiveGranularity;
18297} VkPhysicalDeviceMeshShaderPropertiesNV;
18298
18299typedef struct VkDrawMeshTasksIndirectCommandNV {
18300 uint32_t taskCount;
18301 uint32_t firstTask;
18302} VkDrawMeshTasksIndirectCommandNV;
18303
18304typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
18305typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
18306typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
18307
18308#ifndef VK_NO_PROTOTYPES
18309#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18310VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
18311 VkCommandBuffer commandBuffer,
18312 uint32_t taskCount,
18313 uint32_t firstTask);
18314#endif
18315
18316#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18317VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
18318 VkCommandBuffer commandBuffer,
18319 VkBuffer buffer,
18320 VkDeviceSize offset,
18321 uint32_t drawCount,
18322 uint32_t stride);
18323#endif
18324
18325#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18326VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
18327 VkCommandBuffer commandBuffer,
18328 VkBuffer buffer,
18329 VkDeviceSize offset,
18330 VkBuffer countBuffer,
18331 VkDeviceSize countBufferOffset,
18332 uint32_t maxDrawCount,
18333 uint32_t stride);
18334#endif
18335#endif
18336
18337
18338// VK_NV_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
18339#define VK_NV_fragment_shader_barycentric 1
18340#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
18341#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
18342typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
18343
18344
18345
18346// VK_NV_shader_image_footprint is a preprocessor guard. Do not pass it to API calls.
18347#define VK_NV_shader_image_footprint 1
18348#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
18349#define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
18350typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
18351 VkStructureType sType;
18352 void* pNext;
18353 VkBool32 imageFootprint;
18354} VkPhysicalDeviceShaderImageFootprintFeaturesNV;
18355
18356
18357
18358// VK_NV_scissor_exclusive is a preprocessor guard. Do not pass it to API calls.
18359#define VK_NV_scissor_exclusive 1
18360#define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 2
18361#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
18362typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
18363 VkStructureType sType;
18364 const void* pNext;
18365 uint32_t exclusiveScissorCount;
18366 const VkRect2D* pExclusiveScissors;
18367} VkPipelineViewportExclusiveScissorStateCreateInfoNV;
18368
18369typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
18370 VkStructureType sType;
18371 void* pNext;
18372 VkBool32 exclusiveScissor;
18373} VkPhysicalDeviceExclusiveScissorFeaturesNV;
18374
18375typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables);
18376typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
18377
18378#ifndef VK_NO_PROTOTYPES
18379#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18380VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorEnableNV(
18381 VkCommandBuffer commandBuffer,
18382 uint32_t firstExclusiveScissor,
18383 uint32_t exclusiveScissorCount,
18384 const VkBool32* pExclusiveScissorEnables);
18385#endif
18386
18387#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18388VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
18389 VkCommandBuffer commandBuffer,
18390 uint32_t firstExclusiveScissor,
18391 uint32_t exclusiveScissorCount,
18392 const VkRect2D* pExclusiveScissors);
18393#endif
18394#endif
18395
18396
18397// VK_NV_device_diagnostic_checkpoints is a preprocessor guard. Do not pass it to API calls.
18398#define VK_NV_device_diagnostic_checkpoints 1
18399#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
18400#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
18401typedef struct VkQueueFamilyCheckpointPropertiesNV {
18402 VkStructureType sType;
18403 void* pNext;
18404 VkPipelineStageFlags checkpointExecutionStageMask;
18405} VkQueueFamilyCheckpointPropertiesNV;
18406
18407typedef struct VkCheckpointDataNV {
18408 VkStructureType sType;
18409 void* pNext;
18410 VkPipelineStageFlagBits stage;
18411 void* pCheckpointMarker;
18412} VkCheckpointDataNV;
18413
18414typedef struct VkQueueFamilyCheckpointProperties2NV {
18415 VkStructureType sType;
18416 void* pNext;
18417 VkPipelineStageFlags2 checkpointExecutionStageMask;
18418} VkQueueFamilyCheckpointProperties2NV;
18419
18420typedef struct VkCheckpointData2NV {
18421 VkStructureType sType;
18422 void* pNext;
18423 VkPipelineStageFlags2 stage;
18424 void* pCheckpointMarker;
18425} VkCheckpointData2NV;
18426
18427typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
18428typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
18429typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
18430
18431#ifndef VK_NO_PROTOTYPES
18432#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18433VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
18434 VkCommandBuffer commandBuffer,
18435 const void* pCheckpointMarker);
18436#endif
18437
18438#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18439VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
18440 VkQueue queue,
18441 uint32_t* pCheckpointDataCount,
18442 VkCheckpointDataNV* pCheckpointData);
18443#endif
18444
18445#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18446VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV(
18447 VkQueue queue,
18448 uint32_t* pCheckpointDataCount,
18449 VkCheckpointData2NV* pCheckpointData);
18450#endif
18451#endif
18452
18453
18454// VK_EXT_present_timing is a preprocessor guard. Do not pass it to API calls.
18455#define VK_EXT_present_timing 1
18456#define VK_EXT_PRESENT_TIMING_SPEC_VERSION 3
18457#define VK_EXT_PRESENT_TIMING_EXTENSION_NAME "VK_EXT_present_timing"
18458
18459typedef enum VkPresentStageFlagBitsEXT {
18460 VK_PRESENT_STAGE_QUEUE_OPERATIONS_END_BIT_EXT = 0x00000001,
18461 VK_PRESENT_STAGE_REQUEST_DEQUEUED_BIT_EXT = 0x00000002,
18462 VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_OUT_BIT_EXT = 0x00000004,
18463 VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_VISIBLE_BIT_EXT = 0x00000008,
18464 VK_PRESENT_STAGE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
18465} VkPresentStageFlagBitsEXT;
18466typedef VkFlags VkPresentStageFlagsEXT;
18467
18468typedef enum VkPastPresentationTimingFlagBitsEXT {
18469 VK_PAST_PRESENTATION_TIMING_ALLOW_PARTIAL_RESULTS_BIT_EXT = 0x00000001,
18470 VK_PAST_PRESENTATION_TIMING_ALLOW_OUT_OF_ORDER_RESULTS_BIT_EXT = 0x00000002,
18471 VK_PAST_PRESENTATION_TIMING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
18472} VkPastPresentationTimingFlagBitsEXT;
18473typedef VkFlags VkPastPresentationTimingFlagsEXT;
18474
18475typedef enum VkPresentTimingInfoFlagBitsEXT {
18476 VK_PRESENT_TIMING_INFO_PRESENT_AT_RELATIVE_TIME_BIT_EXT = 0x00000001,
18477 VK_PRESENT_TIMING_INFO_PRESENT_AT_NEAREST_REFRESH_CYCLE_BIT_EXT = 0x00000002,
18478 VK_PRESENT_TIMING_INFO_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
18479} VkPresentTimingInfoFlagBitsEXT;
18480typedef VkFlags VkPresentTimingInfoFlagsEXT;
18481typedef struct VkPhysicalDevicePresentTimingFeaturesEXT {
18482 VkStructureType sType;
18483 void* pNext;
18484 VkBool32 presentTiming;
18485 VkBool32 presentAtAbsoluteTime;
18486 VkBool32 presentAtRelativeTime;
18487} VkPhysicalDevicePresentTimingFeaturesEXT;
18488
18489typedef struct VkPresentTimingSurfaceCapabilitiesEXT {
18490 VkStructureType sType;
18491 void* pNext;
18492 VkBool32 presentTimingSupported;
18493 VkBool32 presentAtAbsoluteTimeSupported;
18494 VkBool32 presentAtRelativeTimeSupported;
18495 VkPresentStageFlagsEXT presentStageQueries;
18496} VkPresentTimingSurfaceCapabilitiesEXT;
18497
18498typedef struct VkSwapchainCalibratedTimestampInfoEXT {
18499 VkStructureType sType;
18500 const void* pNext;
18501 VkSwapchainKHR swapchain;
18502 VkPresentStageFlagsEXT presentStage;
18503 uint64_t timeDomainId;
18504} VkSwapchainCalibratedTimestampInfoEXT;
18505
18506typedef struct VkSwapchainTimingPropertiesEXT {
18507 VkStructureType sType;
18508 void* pNext;
18509 uint64_t refreshDuration;
18510 uint64_t refreshInterval;
18511} VkSwapchainTimingPropertiesEXT;
18512
18513typedef struct VkSwapchainTimeDomainPropertiesEXT {
18514 VkStructureType sType;
18515 void* pNext;
18516 uint32_t timeDomainCount;
18517 VkTimeDomainKHR* pTimeDomains;
18518 uint64_t* pTimeDomainIds;
18519} VkSwapchainTimeDomainPropertiesEXT;
18520
18521typedef struct VkPastPresentationTimingInfoEXT {
18522 VkStructureType sType;
18523 const void* pNext;
18524 VkPastPresentationTimingFlagsEXT flags;
18525 VkSwapchainKHR swapchain;
18526} VkPastPresentationTimingInfoEXT;
18527
18528typedef struct VkPresentStageTimeEXT {
18529 VkPresentStageFlagsEXT stage;
18530 uint64_t time;
18531} VkPresentStageTimeEXT;
18532
18533typedef struct VkPastPresentationTimingEXT {
18534 VkStructureType sType;
18535 void* pNext;
18536 uint64_t presentId;
18537 uint64_t targetTime;
18538 uint32_t presentStageCount;
18539 VkPresentStageTimeEXT* pPresentStages;
18540 VkTimeDomainKHR timeDomain;
18541 uint64_t timeDomainId;
18542 VkBool32 reportComplete;
18543} VkPastPresentationTimingEXT;
18544
18545typedef struct VkPastPresentationTimingPropertiesEXT {
18546 VkStructureType sType;
18547 void* pNext;
18548 uint64_t timingPropertiesCounter;
18549 uint64_t timeDomainsCounter;
18550 uint32_t presentationTimingCount;
18551 VkPastPresentationTimingEXT* pPresentationTimings;
18552} VkPastPresentationTimingPropertiesEXT;
18553
18554typedef struct VkPresentTimingInfoEXT {
18555 VkStructureType sType;
18556 const void* pNext;
18557 VkPresentTimingInfoFlagsEXT flags;
18558 uint64_t targetTime;
18559 uint64_t timeDomainId;
18560 VkPresentStageFlagsEXT presentStageQueries;
18561 VkPresentStageFlagsEXT targetTimeDomainPresentStage;
18562} VkPresentTimingInfoEXT;
18563
18564typedef struct VkPresentTimingsInfoEXT {
18565 VkStructureType sType;
18566 const void* pNext;
18567 uint32_t swapchainCount;
18568 const VkPresentTimingInfoEXT* pTimingInfos;
18569} VkPresentTimingsInfoEXT;
18570
18571typedef VkResult (VKAPI_PTR *PFN_vkSetSwapchainPresentTimingQueueSizeEXT)(VkDevice device, VkSwapchainKHR swapchain, uint32_t size);
18572typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainTimingPropertiesEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSwapchainTimingPropertiesEXT* pSwapchainTimingProperties, uint64_t* pSwapchainTimingPropertiesCounter);
18573typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainTimeDomainPropertiesEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSwapchainTimeDomainPropertiesEXT* pSwapchainTimeDomainProperties, uint64_t* pTimeDomainsCounter);
18574typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingEXT)(VkDevice device, const VkPastPresentationTimingInfoEXT* pPastPresentationTimingInfo, VkPastPresentationTimingPropertiesEXT* pPastPresentationTimingProperties);
18575
18576#ifndef VK_NO_PROTOTYPES
18577#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18578VKAPI_ATTR VkResult VKAPI_CALL vkSetSwapchainPresentTimingQueueSizeEXT(
18579 VkDevice device,
18580 VkSwapchainKHR swapchain,
18581 uint32_t size);
18582#endif
18583
18584#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18585VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainTimingPropertiesEXT(
18586 VkDevice device,
18587 VkSwapchainKHR swapchain,
18588 VkSwapchainTimingPropertiesEXT* pSwapchainTimingProperties,
18589 uint64_t* pSwapchainTimingPropertiesCounter);
18590#endif
18591
18592#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18593VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainTimeDomainPropertiesEXT(
18594 VkDevice device,
18595 VkSwapchainKHR swapchain,
18596 VkSwapchainTimeDomainPropertiesEXT* pSwapchainTimeDomainProperties,
18597 uint64_t* pTimeDomainsCounter);
18598#endif
18599
18600#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18601VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingEXT(
18602 VkDevice device,
18603 const VkPastPresentationTimingInfoEXT* pPastPresentationTimingInfo,
18604 VkPastPresentationTimingPropertiesEXT* pPastPresentationTimingProperties);
18605#endif
18606#endif
18607
18608
18609// VK_INTEL_shader_integer_functions2 is a preprocessor guard. Do not pass it to API calls.
18610#define VK_INTEL_shader_integer_functions2 1
18611#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
18612#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
18613typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
18614 VkStructureType sType;
18615 void* pNext;
18616 VkBool32 shaderIntegerFunctions2;
18617} VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
18618
18619
18620
18621// VK_INTEL_performance_query is a preprocessor guard. Do not pass it to API calls.
18622#define VK_INTEL_performance_query 1
18623VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
18624#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
18625#define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
18626
18627typedef enum VkPerformanceConfigurationTypeINTEL {
18628 VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
18629 VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
18630} VkPerformanceConfigurationTypeINTEL;
18631
18632typedef enum VkQueryPoolSamplingModeINTEL {
18633 VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
18634 VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
18635} VkQueryPoolSamplingModeINTEL;
18636
18637typedef enum VkPerformanceOverrideTypeINTEL {
18638 VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
18639 VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
18640 VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
18641} VkPerformanceOverrideTypeINTEL;
18642
18643typedef enum VkPerformanceParameterTypeINTEL {
18644 VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
18645 VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
18646 VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
18647} VkPerformanceParameterTypeINTEL;
18648
18649typedef enum VkPerformanceValueTypeINTEL {
18650 VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
18651 VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
18652 VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
18653 VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
18654 VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
18655 VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
18656} VkPerformanceValueTypeINTEL;
18657typedef union VkPerformanceValueDataINTEL {
18658 uint32_t value32;
18659 uint64_t value64;
18660 float valueFloat;
18661 VkBool32 valueBool;
18662 const char* valueString;
18663} VkPerformanceValueDataINTEL;
18664
18665typedef struct VkPerformanceValueINTEL {
18666 VkPerformanceValueTypeINTEL type;
18667 VkPerformanceValueDataINTEL data;
18668} VkPerformanceValueINTEL;
18669
18670typedef struct VkInitializePerformanceApiInfoINTEL {
18671 VkStructureType sType;
18672 const void* pNext;
18673 void* pUserData;
18674} VkInitializePerformanceApiInfoINTEL;
18675
18676typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
18677 VkStructureType sType;
18678 const void* pNext;
18679 VkQueryPoolSamplingModeINTEL performanceCountersSampling;
18680} VkQueryPoolPerformanceQueryCreateInfoINTEL;
18681
18682typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
18683
18684typedef struct VkPerformanceMarkerInfoINTEL {
18685 VkStructureType sType;
18686 const void* pNext;
18687 uint64_t marker;
18688} VkPerformanceMarkerInfoINTEL;
18689
18690typedef struct VkPerformanceStreamMarkerInfoINTEL {
18691 VkStructureType sType;
18692 const void* pNext;
18693 uint32_t marker;
18694} VkPerformanceStreamMarkerInfoINTEL;
18695
18696typedef struct VkPerformanceOverrideInfoINTEL {
18697 VkStructureType sType;
18698 const void* pNext;
18699 VkPerformanceOverrideTypeINTEL type;
18700 VkBool32 enable;
18701 uint64_t parameter;
18702} VkPerformanceOverrideInfoINTEL;
18703
18704typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
18705 VkStructureType sType;
18706 const void* pNext;
18707 VkPerformanceConfigurationTypeINTEL type;
18708} VkPerformanceConfigurationAcquireInfoINTEL;
18709
18710typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
18711typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
18712typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
18713typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
18714typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
18715typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
18716typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
18717typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
18718typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
18719
18720#ifndef VK_NO_PROTOTYPES
18721#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18722VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
18723 VkDevice device,
18724 const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
18725#endif
18726
18727#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18728VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
18729 VkDevice device);
18730#endif
18731
18732#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18733VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
18734 VkCommandBuffer commandBuffer,
18735 const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
18736#endif
18737
18738#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18739VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
18740 VkCommandBuffer commandBuffer,
18741 const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
18742#endif
18743
18744#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18745VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
18746 VkCommandBuffer commandBuffer,
18747 const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
18748#endif
18749
18750#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18751VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
18752 VkDevice device,
18753 const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
18754 VkPerformanceConfigurationINTEL* pConfiguration);
18755#endif
18756
18757#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18758VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
18759 VkDevice device,
18760 VkPerformanceConfigurationINTEL configuration);
18761#endif
18762
18763#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18764VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
18765 VkQueue queue,
18766 VkPerformanceConfigurationINTEL configuration);
18767#endif
18768
18769#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18770VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
18771 VkDevice device,
18772 VkPerformanceParameterTypeINTEL parameter,
18773 VkPerformanceValueINTEL* pValue);
18774#endif
18775#endif
18776
18777
18778// VK_EXT_pci_bus_info is a preprocessor guard. Do not pass it to API calls.
18779#define VK_EXT_pci_bus_info 1
18780#define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2
18781#define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
18782typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
18783 VkStructureType sType;
18784 void* pNext;
18785 uint32_t pciDomain;
18786 uint32_t pciBus;
18787 uint32_t pciDevice;
18788 uint32_t pciFunction;
18789} VkPhysicalDevicePCIBusInfoPropertiesEXT;
18790
18791
18792
18793// VK_AMD_display_native_hdr is a preprocessor guard. Do not pass it to API calls.
18794#define VK_AMD_display_native_hdr 1
18795#define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
18796#define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
18797typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
18798 VkStructureType sType;
18799 void* pNext;
18800 VkBool32 localDimmingSupport;
18801} VkDisplayNativeHdrSurfaceCapabilitiesAMD;
18802
18803typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
18804 VkStructureType sType;
18805 const void* pNext;
18806 VkBool32 localDimmingEnable;
18807} VkSwapchainDisplayNativeHdrCreateInfoAMD;
18808
18809typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
18810
18811#ifndef VK_NO_PROTOTYPES
18812#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18813VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
18814 VkDevice device,
18815 VkSwapchainKHR swapChain,
18816 VkBool32 localDimmingEnable);
18817#endif
18818#endif
18819
18820
18821// VK_EXT_fragment_density_map is a preprocessor guard. Do not pass it to API calls.
18822#define VK_EXT_fragment_density_map 1
18823#define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 3
18824#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
18825typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
18826 VkStructureType sType;
18827 void* pNext;
18828 VkBool32 fragmentDensityMap;
18829 VkBool32 fragmentDensityMapDynamic;
18830 VkBool32 fragmentDensityMapNonSubsampledImages;
18831} VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
18832
18833typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
18834 VkStructureType sType;
18835 void* pNext;
18836 VkExtent2D minFragmentDensityTexelSize;
18837 VkExtent2D maxFragmentDensityTexelSize;
18838 VkBool32 fragmentDensityInvocations;
18839} VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
18840
18841typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
18842 VkStructureType sType;
18843 const void* pNext;
18844 VkAttachmentReference fragmentDensityMapAttachment;
18845} VkRenderPassFragmentDensityMapCreateInfoEXT;
18846
18847typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
18848 VkStructureType sType;
18849 const void* pNext;
18850 VkImageView imageView;
18851 VkImageLayout imageLayout;
18852} VkRenderingFragmentDensityMapAttachmentInfoEXT;
18853
18854
18855
18856// VK_EXT_scalar_block_layout is a preprocessor guard. Do not pass it to API calls.
18857#define VK_EXT_scalar_block_layout 1
18858#define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
18859#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
18860typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
18861
18862
18863
18864// VK_GOOGLE_hlsl_functionality1 is a preprocessor guard. Do not pass it to API calls.
18865#define VK_GOOGLE_hlsl_functionality1 1
18866#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
18867#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
18868// VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION is a legacy alias
18869#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
18870// VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME is a legacy alias
18871#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
18872
18873
18874// VK_GOOGLE_decorate_string is a preprocessor guard. Do not pass it to API calls.
18875#define VK_GOOGLE_decorate_string 1
18876#define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
18877#define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
18878
18879
18880// VK_EXT_subgroup_size_control is a preprocessor guard. Do not pass it to API calls.
18881#define VK_EXT_subgroup_size_control 1
18882#define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
18883#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
18884typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
18885
18886typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
18887
18888typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
18889
18890
18891
18892// VK_AMD_shader_core_properties2 is a preprocessor guard. Do not pass it to API calls.
18893#define VK_AMD_shader_core_properties2 1
18894#define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
18895#define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
18896
18897typedef enum VkShaderCorePropertiesFlagBitsAMD {
18898 VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
18899} VkShaderCorePropertiesFlagBitsAMD;
18900typedef VkFlags VkShaderCorePropertiesFlagsAMD;
18901typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
18902 VkStructureType sType;
18903 void* pNext;
18904 VkShaderCorePropertiesFlagsAMD shaderCoreFeatures;
18905 uint32_t activeComputeUnitCount;
18906} VkPhysicalDeviceShaderCoreProperties2AMD;
18907
18908
18909
18910// VK_AMD_device_coherent_memory is a preprocessor guard. Do not pass it to API calls.
18911#define VK_AMD_device_coherent_memory 1
18912#define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
18913#define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
18914typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
18915 VkStructureType sType;
18916 void* pNext;
18917 VkBool32 deviceCoherentMemory;
18918} VkPhysicalDeviceCoherentMemoryFeaturesAMD;
18919
18920
18921
18922// VK_EXT_shader_image_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
18923#define VK_EXT_shader_image_atomic_int64 1
18924#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
18925#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
18926typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
18927 VkStructureType sType;
18928 void* pNext;
18929 VkBool32 shaderImageInt64Atomics;
18930 VkBool32 sparseImageInt64Atomics;
18931} VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
18932
18933
18934
18935// VK_EXT_memory_budget is a preprocessor guard. Do not pass it to API calls.
18936#define VK_EXT_memory_budget 1
18937#define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
18938#define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
18939typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
18940 VkStructureType sType;
18941 void* pNext;
18942 VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS];
18943 VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS];
18944} VkPhysicalDeviceMemoryBudgetPropertiesEXT;
18945
18946
18947
18948// VK_EXT_memory_priority is a preprocessor guard. Do not pass it to API calls.
18949#define VK_EXT_memory_priority 1
18950#define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
18951#define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
18952typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
18953 VkStructureType sType;
18954 void* pNext;
18955 VkBool32 memoryPriority;
18956} VkPhysicalDeviceMemoryPriorityFeaturesEXT;
18957
18958typedef struct VkMemoryPriorityAllocateInfoEXT {
18959 VkStructureType sType;
18960 const void* pNext;
18961 float priority;
18962} VkMemoryPriorityAllocateInfoEXT;
18963
18964
18965
18966// VK_NV_dedicated_allocation_image_aliasing is a preprocessor guard. Do not pass it to API calls.
18967#define VK_NV_dedicated_allocation_image_aliasing 1
18968#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
18969#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
18970typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
18971 VkStructureType sType;
18972 void* pNext;
18973 VkBool32 dedicatedAllocationImageAliasing;
18974} VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
18975
18976
18977
18978// VK_EXT_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
18979#define VK_EXT_buffer_device_address 1
18980#define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
18981#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
18982typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
18983 VkStructureType sType;
18984 void* pNext;
18985 VkBool32 bufferDeviceAddress;
18986 VkBool32 bufferDeviceAddressCaptureReplay;
18987 VkBool32 bufferDeviceAddressMultiDevice;
18988} VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
18989
18990typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
18991
18992typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
18993
18994typedef struct VkBufferDeviceAddressCreateInfoEXT {
18995 VkStructureType sType;
18996 const void* pNext;
18997 VkDeviceAddress deviceAddress;
18998} VkBufferDeviceAddressCreateInfoEXT;
18999
19000typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
19001
19002#ifndef VK_NO_PROTOTYPES
19003#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19004VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
19005 VkDevice device,
19006 const VkBufferDeviceAddressInfo* pInfo);
19007#endif
19008#endif
19009
19010
19011// VK_EXT_tooling_info is a preprocessor guard. Do not pass it to API calls.
19012#define VK_EXT_tooling_info 1
19013#define VK_EXT_TOOLING_INFO_SPEC_VERSION 1
19014#define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
19015typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT;
19016
19017typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
19018
19019typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
19020
19021typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
19022
19023#ifndef VK_NO_PROTOTYPES
19024#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19025VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
19026 VkPhysicalDevice physicalDevice,
19027 uint32_t* pToolCount,
19028 VkPhysicalDeviceToolProperties* pToolProperties);
19029#endif
19030#endif
19031
19032
19033// VK_EXT_separate_stencil_usage is a preprocessor guard. Do not pass it to API calls.
19034#define VK_EXT_separate_stencil_usage 1
19035#define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
19036#define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
19037typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
19038
19039
19040
19041// VK_EXT_validation_features is a preprocessor guard. Do not pass it to API calls.
19042#define VK_EXT_validation_features 1
19043#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 6
19044#define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
19045
19046typedef enum VkValidationFeatureEnableEXT {
19047 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
19048 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
19049 VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
19050 VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
19051 VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
19052 VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
19053} VkValidationFeatureEnableEXT;
19054
19055typedef enum VkValidationFeatureDisableEXT {
19056 VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
19057 VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
19058 VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
19059 VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
19060 VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
19061 VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
19062 VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
19063 VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
19064 VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
19065} VkValidationFeatureDisableEXT;
19066typedef struct VkValidationFeaturesEXT {
19067 VkStructureType sType;
19068 const void* pNext;
19069 uint32_t enabledValidationFeatureCount;
19070 const VkValidationFeatureEnableEXT* pEnabledValidationFeatures;
19071 uint32_t disabledValidationFeatureCount;
19072 const VkValidationFeatureDisableEXT* pDisabledValidationFeatures;
19073} VkValidationFeaturesEXT;
19074
19075
19076
19077// VK_NV_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
19078#define VK_NV_cooperative_matrix 1
19079#define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
19080#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
19081typedef VkComponentTypeKHR VkComponentTypeNV;
19082
19083typedef VkScopeKHR VkScopeNV;
19084
19085typedef struct VkCooperativeMatrixPropertiesNV {
19086 VkStructureType sType;
19087 void* pNext;
19088 uint32_t MSize;
19089 uint32_t NSize;
19090 uint32_t KSize;
19091 VkComponentTypeNV AType;
19092 VkComponentTypeNV BType;
19093 VkComponentTypeNV CType;
19094 VkComponentTypeNV DType;
19095 VkScopeNV scope;
19096} VkCooperativeMatrixPropertiesNV;
19097
19098typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
19099 VkStructureType sType;
19100 void* pNext;
19101 VkBool32 cooperativeMatrix;
19102 VkBool32 cooperativeMatrixRobustBufferAccess;
19103} VkPhysicalDeviceCooperativeMatrixFeaturesNV;
19104
19105typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
19106 VkStructureType sType;
19107 void* pNext;
19108 VkShaderStageFlags cooperativeMatrixSupportedStages;
19109} VkPhysicalDeviceCooperativeMatrixPropertiesNV;
19110
19111typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
19112
19113#ifndef VK_NO_PROTOTYPES
19114#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19115VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
19116 VkPhysicalDevice physicalDevice,
19117 uint32_t* pPropertyCount,
19118 VkCooperativeMatrixPropertiesNV* pProperties);
19119#endif
19120#endif
19121
19122
19123// VK_NV_coverage_reduction_mode is a preprocessor guard. Do not pass it to API calls.
19124#define VK_NV_coverage_reduction_mode 1
19125#define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
19126#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
19127
19128typedef enum VkCoverageReductionModeNV {
19129 VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
19130 VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
19131 VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
19132} VkCoverageReductionModeNV;
19133typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
19134typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
19135 VkStructureType sType;
19136 void* pNext;
19137 VkBool32 coverageReductionMode;
19138} VkPhysicalDeviceCoverageReductionModeFeaturesNV;
19139
19140typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
19141 VkStructureType sType;
19142 const void* pNext;
19143 VkPipelineCoverageReductionStateCreateFlagsNV flags;
19144 VkCoverageReductionModeNV coverageReductionMode;
19145} VkPipelineCoverageReductionStateCreateInfoNV;
19146
19147typedef struct VkFramebufferMixedSamplesCombinationNV {
19148 VkStructureType sType;
19149 void* pNext;
19150 VkCoverageReductionModeNV coverageReductionMode;
19151 VkSampleCountFlagBits rasterizationSamples;
19152 VkSampleCountFlags depthStencilSamples;
19153 VkSampleCountFlags colorSamples;
19154} VkFramebufferMixedSamplesCombinationNV;
19155
19156typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
19157
19158#ifndef VK_NO_PROTOTYPES
19159#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19160VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
19161 VkPhysicalDevice physicalDevice,
19162 uint32_t* pCombinationCount,
19163 VkFramebufferMixedSamplesCombinationNV* pCombinations);
19164#endif
19165#endif
19166
19167
19168// VK_EXT_fragment_shader_interlock is a preprocessor guard. Do not pass it to API calls.
19169#define VK_EXT_fragment_shader_interlock 1
19170#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
19171#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
19172typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
19173 VkStructureType sType;
19174 void* pNext;
19175 VkBool32 fragmentShaderSampleInterlock;
19176 VkBool32 fragmentShaderPixelInterlock;
19177 VkBool32 fragmentShaderShadingRateInterlock;
19178} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
19179
19180
19181
19182// VK_EXT_ycbcr_image_arrays is a preprocessor guard. Do not pass it to API calls.
19183#define VK_EXT_ycbcr_image_arrays 1
19184#define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
19185#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
19186typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
19187 VkStructureType sType;
19188 void* pNext;
19189 VkBool32 ycbcrImageArrays;
19190} VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
19191
19192
19193
19194// VK_EXT_provoking_vertex is a preprocessor guard. Do not pass it to API calls.
19195#define VK_EXT_provoking_vertex 1
19196#define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
19197#define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
19198
19199typedef enum VkProvokingVertexModeEXT {
19200 VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0,
19201 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1,
19202 VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
19203} VkProvokingVertexModeEXT;
19204typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT {
19205 VkStructureType sType;
19206 void* pNext;
19207 VkBool32 provokingVertexLast;
19208 VkBool32 transformFeedbackPreservesProvokingVertex;
19209} VkPhysicalDeviceProvokingVertexFeaturesEXT;
19210
19211typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT {
19212 VkStructureType sType;
19213 void* pNext;
19214 VkBool32 provokingVertexModePerPipeline;
19215 VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex;
19216} VkPhysicalDeviceProvokingVertexPropertiesEXT;
19217
19218typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
19219 VkStructureType sType;
19220 const void* pNext;
19221 VkProvokingVertexModeEXT provokingVertexMode;
19222} VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
19223
19224
19225
19226// VK_EXT_headless_surface is a preprocessor guard. Do not pass it to API calls.
19227#define VK_EXT_headless_surface 1
19228#define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
19229#define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
19230typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
19231typedef struct VkHeadlessSurfaceCreateInfoEXT {
19232 VkStructureType sType;
19233 const void* pNext;
19234 VkHeadlessSurfaceCreateFlagsEXT flags;
19235} VkHeadlessSurfaceCreateInfoEXT;
19236
19237typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
19238
19239#ifndef VK_NO_PROTOTYPES
19240#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19241VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
19242 VkInstance instance,
19243 const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo,
19244 const VkAllocationCallbacks* pAllocator,
19245 VkSurfaceKHR* pSurface);
19246#endif
19247#endif
19248
19249
19250// VK_EXT_line_rasterization is a preprocessor guard. Do not pass it to API calls.
19251#define VK_EXT_line_rasterization 1
19252#define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
19253#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
19254typedef VkLineRasterizationMode VkLineRasterizationModeEXT;
19255
19256typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesEXT;
19257
19258typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesEXT;
19259
19260typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoEXT;
19261
19262typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
19263
19264#ifndef VK_NO_PROTOTYPES
19265#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19266VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
19267 VkCommandBuffer commandBuffer,
19268 uint32_t lineStippleFactor,
19269 uint16_t lineStipplePattern);
19270#endif
19271#endif
19272
19273
19274// VK_EXT_shader_atomic_float is a preprocessor guard. Do not pass it to API calls.
19275#define VK_EXT_shader_atomic_float 1
19276#define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
19277#define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
19278typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
19279 VkStructureType sType;
19280 void* pNext;
19281 VkBool32 shaderBufferFloat32Atomics;
19282 VkBool32 shaderBufferFloat32AtomicAdd;
19283 VkBool32 shaderBufferFloat64Atomics;
19284 VkBool32 shaderBufferFloat64AtomicAdd;
19285 VkBool32 shaderSharedFloat32Atomics;
19286 VkBool32 shaderSharedFloat32AtomicAdd;
19287 VkBool32 shaderSharedFloat64Atomics;
19288 VkBool32 shaderSharedFloat64AtomicAdd;
19289 VkBool32 shaderImageFloat32Atomics;
19290 VkBool32 shaderImageFloat32AtomicAdd;
19291 VkBool32 sparseImageFloat32Atomics;
19292 VkBool32 sparseImageFloat32AtomicAdd;
19293} VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
19294
19295
19296
19297// VK_EXT_host_query_reset is a preprocessor guard. Do not pass it to API calls.
19298#define VK_EXT_host_query_reset 1
19299#define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
19300#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
19301typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
19302
19303typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
19304
19305#ifndef VK_NO_PROTOTYPES
19306#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19307VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
19308 VkDevice device,
19309 VkQueryPool queryPool,
19310 uint32_t firstQuery,
19311 uint32_t queryCount);
19312#endif
19313#endif
19314
19315
19316// VK_EXT_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
19317#define VK_EXT_index_type_uint8 1
19318#define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
19319#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
19320typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
19321
19322
19323
19324// VK_EXT_extended_dynamic_state is a preprocessor guard. Do not pass it to API calls.
19325#define VK_EXT_extended_dynamic_state 1
19326#define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
19327#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
19328typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
19329 VkStructureType sType;
19330 void* pNext;
19331 VkBool32 extendedDynamicState;
19332} VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
19333
19334typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
19335typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
19336typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
19337typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
19338typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
19339typedef 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);
19340typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
19341typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
19342typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
19343typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
19344typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
19345typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
19346
19347#ifndef VK_NO_PROTOTYPES
19348#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19349VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
19350 VkCommandBuffer commandBuffer,
19351 VkCullModeFlags cullMode);
19352#endif
19353
19354#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19355VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
19356 VkCommandBuffer commandBuffer,
19357 VkFrontFace frontFace);
19358#endif
19359
19360#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19361VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
19362 VkCommandBuffer commandBuffer,
19363 VkPrimitiveTopology primitiveTopology);
19364#endif
19365
19366#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19367VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
19368 VkCommandBuffer commandBuffer,
19369 uint32_t viewportCount,
19370 const VkViewport* pViewports);
19371#endif
19372
19373#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19374VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
19375 VkCommandBuffer commandBuffer,
19376 uint32_t scissorCount,
19377 const VkRect2D* pScissors);
19378#endif
19379
19380#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19381VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
19382 VkCommandBuffer commandBuffer,
19383 uint32_t firstBinding,
19384 uint32_t bindingCount,
19385 const VkBuffer* pBuffers,
19386 const VkDeviceSize* pOffsets,
19387 const VkDeviceSize* pSizes,
19388 const VkDeviceSize* pStrides);
19389#endif
19390
19391#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19392VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
19393 VkCommandBuffer commandBuffer,
19394 VkBool32 depthTestEnable);
19395#endif
19396
19397#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19398VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
19399 VkCommandBuffer commandBuffer,
19400 VkBool32 depthWriteEnable);
19401#endif
19402
19403#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19404VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
19405 VkCommandBuffer commandBuffer,
19406 VkCompareOp depthCompareOp);
19407#endif
19408
19409#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19410VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
19411 VkCommandBuffer commandBuffer,
19412 VkBool32 depthBoundsTestEnable);
19413#endif
19414
19415#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19416VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
19417 VkCommandBuffer commandBuffer,
19418 VkBool32 stencilTestEnable);
19419#endif
19420
19421#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19422VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
19423 VkCommandBuffer commandBuffer,
19424 VkStencilFaceFlags faceMask,
19425 VkStencilOp failOp,
19426 VkStencilOp passOp,
19427 VkStencilOp depthFailOp,
19428 VkCompareOp compareOp);
19429#endif
19430#endif
19431
19432
19433// VK_EXT_host_image_copy is a preprocessor guard. Do not pass it to API calls.
19434#define VK_EXT_host_image_copy 1
19435#define VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION 1
19436#define VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME "VK_EXT_host_image_copy"
19437typedef VkHostImageCopyFlagBits VkHostImageCopyFlagBitsEXT;
19438
19439typedef VkHostImageCopyFlags VkHostImageCopyFlagsEXT;
19440
19441typedef VkPhysicalDeviceHostImageCopyFeatures VkPhysicalDeviceHostImageCopyFeaturesEXT;
19442
19443typedef VkPhysicalDeviceHostImageCopyProperties VkPhysicalDeviceHostImageCopyPropertiesEXT;
19444
19445typedef VkMemoryToImageCopy VkMemoryToImageCopyEXT;
19446
19447typedef VkImageToMemoryCopy VkImageToMemoryCopyEXT;
19448
19449typedef VkCopyMemoryToImageInfo VkCopyMemoryToImageInfoEXT;
19450
19451typedef VkCopyImageToMemoryInfo VkCopyImageToMemoryInfoEXT;
19452
19453typedef VkCopyImageToImageInfo VkCopyImageToImageInfoEXT;
19454
19455typedef VkHostImageLayoutTransitionInfo VkHostImageLayoutTransitionInfoEXT;
19456
19457typedef VkSubresourceHostMemcpySize VkSubresourceHostMemcpySizeEXT;
19458
19459typedef VkHostImageCopyDevicePerformanceQuery VkHostImageCopyDevicePerformanceQueryEXT;
19460
19461typedef VkSubresourceLayout2 VkSubresourceLayout2EXT;
19462
19463typedef VkImageSubresource2 VkImageSubresource2EXT;
19464
19465typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImageEXT)(VkDevice device, const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
19466typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemoryEXT)(VkDevice device, const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
19467typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImageEXT)(VkDevice device, const VkCopyImageToImageInfo* pCopyImageToImageInfo);
19468typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayoutEXT)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions);
19469typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
19470
19471#ifndef VK_NO_PROTOTYPES
19472#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19473VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImageEXT(
19474 VkDevice device,
19475 const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
19476#endif
19477
19478#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19479VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemoryEXT(
19480 VkDevice device,
19481 const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
19482#endif
19483
19484#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19485VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImageEXT(
19486 VkDevice device,
19487 const VkCopyImageToImageInfo* pCopyImageToImageInfo);
19488#endif
19489
19490#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19491VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayoutEXT(
19492 VkDevice device,
19493 uint32_t transitionCount,
19494 const VkHostImageLayoutTransitionInfo* pTransitions);
19495#endif
19496
19497#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19498VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
19499 VkDevice device,
19500 VkImage image,
19501 const VkImageSubresource2* pSubresource,
19502 VkSubresourceLayout2* pLayout);
19503#endif
19504#endif
19505
19506
19507// VK_EXT_map_memory_placed is a preprocessor guard. Do not pass it to API calls.
19508#define VK_EXT_map_memory_placed 1
19509#define VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION 1
19510#define VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME "VK_EXT_map_memory_placed"
19511typedef struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT {
19512 VkStructureType sType;
19513 void* pNext;
19514 VkBool32 memoryMapPlaced;
19515 VkBool32 memoryMapRangePlaced;
19516 VkBool32 memoryUnmapReserve;
19517} VkPhysicalDeviceMapMemoryPlacedFeaturesEXT;
19518
19519typedef struct VkPhysicalDeviceMapMemoryPlacedPropertiesEXT {
19520 VkStructureType sType;
19521 void* pNext;
19522 VkDeviceSize minPlacedMemoryMapAlignment;
19523} VkPhysicalDeviceMapMemoryPlacedPropertiesEXT;
19524
19525typedef struct VkMemoryMapPlacedInfoEXT {
19526 VkStructureType sType;
19527 const void* pNext;
19528 void* pPlacedAddress;
19529} VkMemoryMapPlacedInfoEXT;
19530
19531
19532
19533// VK_EXT_shader_atomic_float2 is a preprocessor guard. Do not pass it to API calls.
19534#define VK_EXT_shader_atomic_float2 1
19535#define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
19536#define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
19537typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
19538 VkStructureType sType;
19539 void* pNext;
19540 VkBool32 shaderBufferFloat16Atomics;
19541 VkBool32 shaderBufferFloat16AtomicAdd;
19542 VkBool32 shaderBufferFloat16AtomicMinMax;
19543 VkBool32 shaderBufferFloat32AtomicMinMax;
19544 VkBool32 shaderBufferFloat64AtomicMinMax;
19545 VkBool32 shaderSharedFloat16Atomics;
19546 VkBool32 shaderSharedFloat16AtomicAdd;
19547 VkBool32 shaderSharedFloat16AtomicMinMax;
19548 VkBool32 shaderSharedFloat32AtomicMinMax;
19549 VkBool32 shaderSharedFloat64AtomicMinMax;
19550 VkBool32 shaderImageFloat32AtomicMinMax;
19551 VkBool32 sparseImageFloat32AtomicMinMax;
19552} VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
19553
19554
19555
19556// VK_EXT_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
19557#define VK_EXT_surface_maintenance1 1
19558#define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
19559#define VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_surface_maintenance1"
19560typedef VkPresentScalingFlagBitsKHR VkPresentScalingFlagBitsEXT;
19561
19562typedef VkPresentScalingFlagsKHR VkPresentScalingFlagsEXT;
19563
19564typedef VkPresentGravityFlagBitsKHR VkPresentGravityFlagBitsEXT;
19565
19566typedef VkPresentGravityFlagsKHR VkPresentGravityFlagsEXT;
19567
19568typedef VkSurfacePresentModeKHR VkSurfacePresentModeEXT;
19569
19570typedef VkSurfacePresentScalingCapabilitiesKHR VkSurfacePresentScalingCapabilitiesEXT;
19571
19572typedef VkSurfacePresentModeCompatibilityKHR VkSurfacePresentModeCompatibilityEXT;
19573
19574
19575
19576// VK_EXT_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
19577#define VK_EXT_swapchain_maintenance1 1
19578#define VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
19579#define VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_swapchain_maintenance1"
19580typedef VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT;
19581
19582typedef VkSwapchainPresentFenceInfoKHR VkSwapchainPresentFenceInfoEXT;
19583
19584typedef VkSwapchainPresentModesCreateInfoKHR VkSwapchainPresentModesCreateInfoEXT;
19585
19586typedef VkSwapchainPresentModeInfoKHR VkSwapchainPresentModeInfoEXT;
19587
19588typedef VkSwapchainPresentScalingCreateInfoKHR VkSwapchainPresentScalingCreateInfoEXT;
19589
19590typedef VkReleaseSwapchainImagesInfoKHR VkReleaseSwapchainImagesInfoEXT;
19591
19592typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesEXT)(VkDevice device, const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
19593
19594#ifndef VK_NO_PROTOTYPES
19595#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19596VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesEXT(
19597 VkDevice device,
19598 const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
19599#endif
19600#endif
19601
19602
19603// VK_EXT_shader_demote_to_helper_invocation is a preprocessor guard. Do not pass it to API calls.
19604#define VK_EXT_shader_demote_to_helper_invocation 1
19605#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
19606#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
19607typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
19608
19609
19610
19611// VK_NV_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
19612#define VK_NV_device_generated_commands 1
19613VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
19614#define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
19615#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
19616
19617typedef enum VkIndirectCommandsTokenTypeNV {
19618 VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
19619 VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
19620 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
19621 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
19622 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
19623 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
19624 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
19625 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
19626 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_NV = 1000135000,
19627 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000,
19628 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = 1000428003,
19629 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = 1000428004,
19630 VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
19631} VkIndirectCommandsTokenTypeNV;
19632
19633typedef enum VkIndirectStateFlagBitsNV {
19634 VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
19635 VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19636} VkIndirectStateFlagBitsNV;
19637typedef VkFlags VkIndirectStateFlagsNV;
19638
19639typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
19640 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
19641 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
19642 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
19643 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19644} VkIndirectCommandsLayoutUsageFlagBitsNV;
19645typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
19646typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
19647 VkStructureType sType;
19648 void* pNext;
19649 uint32_t maxGraphicsShaderGroupCount;
19650 uint32_t maxIndirectSequenceCount;
19651 uint32_t maxIndirectCommandsTokenCount;
19652 uint32_t maxIndirectCommandsStreamCount;
19653 uint32_t maxIndirectCommandsTokenOffset;
19654 uint32_t maxIndirectCommandsStreamStride;
19655 uint32_t minSequencesCountBufferOffsetAlignment;
19656 uint32_t minSequencesIndexBufferOffsetAlignment;
19657 uint32_t minIndirectCommandsBufferOffsetAlignment;
19658} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
19659
19660typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
19661 VkStructureType sType;
19662 void* pNext;
19663 VkBool32 deviceGeneratedCommands;
19664} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
19665
19666typedef struct VkGraphicsShaderGroupCreateInfoNV {
19667 VkStructureType sType;
19668 const void* pNext;
19669 uint32_t stageCount;
19670 const VkPipelineShaderStageCreateInfo* pStages;
19671 const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
19672 const VkPipelineTessellationStateCreateInfo* pTessellationState;
19673} VkGraphicsShaderGroupCreateInfoNV;
19674
19675typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
19676 VkStructureType sType;
19677 const void* pNext;
19678 uint32_t groupCount;
19679 const VkGraphicsShaderGroupCreateInfoNV* pGroups;
19680 uint32_t pipelineCount;
19681 const VkPipeline* pPipelines;
19682} VkGraphicsPipelineShaderGroupsCreateInfoNV;
19683
19684typedef struct VkBindShaderGroupIndirectCommandNV {
19685 uint32_t groupIndex;
19686} VkBindShaderGroupIndirectCommandNV;
19687
19688typedef struct VkBindIndexBufferIndirectCommandNV {
19689 VkDeviceAddress bufferAddress;
19690 uint32_t size;
19691 VkIndexType indexType;
19692} VkBindIndexBufferIndirectCommandNV;
19693
19694typedef struct VkBindVertexBufferIndirectCommandNV {
19695 VkDeviceAddress bufferAddress;
19696 uint32_t size;
19697 uint32_t stride;
19698} VkBindVertexBufferIndirectCommandNV;
19699
19700typedef struct VkSetStateFlagsIndirectCommandNV {
19701 uint32_t data;
19702} VkSetStateFlagsIndirectCommandNV;
19703
19704typedef struct VkIndirectCommandsStreamNV {
19705 VkBuffer buffer;
19706 VkDeviceSize offset;
19707} VkIndirectCommandsStreamNV;
19708
19709typedef struct VkIndirectCommandsLayoutTokenNV {
19710 VkStructureType sType;
19711 const void* pNext;
19712 VkIndirectCommandsTokenTypeNV tokenType;
19713 uint32_t stream;
19714 uint32_t offset;
19715 uint32_t vertexBindingUnit;
19716 VkBool32 vertexDynamicStride;
19717 VkPipelineLayout pushconstantPipelineLayout;
19718 VkShaderStageFlags pushconstantShaderStageFlags;
19719 uint32_t pushconstantOffset;
19720 uint32_t pushconstantSize;
19721 VkIndirectStateFlagsNV indirectStateFlags;
19722 uint32_t indexTypeCount;
19723 const VkIndexType* pIndexTypes;
19724 const uint32_t* pIndexTypeValues;
19725} VkIndirectCommandsLayoutTokenNV;
19726
19727typedef struct VkIndirectCommandsLayoutCreateInfoNV {
19728 VkStructureType sType;
19729 const void* pNext;
19730 VkIndirectCommandsLayoutUsageFlagsNV flags;
19731 VkPipelineBindPoint pipelineBindPoint;
19732 uint32_t tokenCount;
19733 const VkIndirectCommandsLayoutTokenNV* pTokens;
19734 uint32_t streamCount;
19735 const uint32_t* pStreamStrides;
19736} VkIndirectCommandsLayoutCreateInfoNV;
19737
19738typedef struct VkGeneratedCommandsInfoNV {
19739 VkStructureType sType;
19740 const void* pNext;
19741 VkPipelineBindPoint pipelineBindPoint;
19742 VkPipeline pipeline;
19743 VkIndirectCommandsLayoutNV indirectCommandsLayout;
19744 uint32_t streamCount;
19745 const VkIndirectCommandsStreamNV* pStreams;
19746 uint32_t sequencesCount;
19747 VkBuffer preprocessBuffer;
19748 VkDeviceSize preprocessOffset;
19749 VkDeviceSize preprocessSize;
19750 VkBuffer sequencesCountBuffer;
19751 VkDeviceSize sequencesCountOffset;
19752 VkBuffer sequencesIndexBuffer;
19753 VkDeviceSize sequencesIndexOffset;
19754} VkGeneratedCommandsInfoNV;
19755
19756typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
19757 VkStructureType sType;
19758 const void* pNext;
19759 VkPipelineBindPoint pipelineBindPoint;
19760 VkPipeline pipeline;
19761 VkIndirectCommandsLayoutNV indirectCommandsLayout;
19762 uint32_t maxSequencesCount;
19763} VkGeneratedCommandsMemoryRequirementsInfoNV;
19764
19765typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
19766typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
19767typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
19768typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
19769typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
19770typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
19771
19772#ifndef VK_NO_PROTOTYPES
19773#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19774VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
19775 VkDevice device,
19776 const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
19777 VkMemoryRequirements2* pMemoryRequirements);
19778#endif
19779
19780#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19781VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
19782 VkCommandBuffer commandBuffer,
19783 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
19784#endif
19785
19786#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19787VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
19788 VkCommandBuffer commandBuffer,
19789 VkBool32 isPreprocessed,
19790 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
19791#endif
19792
19793#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19794VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
19795 VkCommandBuffer commandBuffer,
19796 VkPipelineBindPoint pipelineBindPoint,
19797 VkPipeline pipeline,
19798 uint32_t groupIndex);
19799#endif
19800
19801#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19802VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
19803 VkDevice device,
19804 const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
19805 const VkAllocationCallbacks* pAllocator,
19806 VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
19807#endif
19808
19809#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19810VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
19811 VkDevice device,
19812 VkIndirectCommandsLayoutNV indirectCommandsLayout,
19813 const VkAllocationCallbacks* pAllocator);
19814#endif
19815#endif
19816
19817
19818// VK_NV_inherited_viewport_scissor is a preprocessor guard. Do not pass it to API calls.
19819#define VK_NV_inherited_viewport_scissor 1
19820#define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
19821#define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
19822typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV {
19823 VkStructureType sType;
19824 void* pNext;
19825 VkBool32 inheritedViewportScissor2D;
19826} VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
19827
19828typedef struct VkCommandBufferInheritanceViewportScissorInfoNV {
19829 VkStructureType sType;
19830 const void* pNext;
19831 VkBool32 viewportScissor2D;
19832 uint32_t viewportDepthCount;
19833 const VkViewport* pViewportDepths;
19834} VkCommandBufferInheritanceViewportScissorInfoNV;
19835
19836
19837
19838// VK_EXT_texel_buffer_alignment is a preprocessor guard. Do not pass it to API calls.
19839#define VK_EXT_texel_buffer_alignment 1
19840#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
19841#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
19842typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
19843 VkStructureType sType;
19844 void* pNext;
19845 VkBool32 texelBufferAlignment;
19846} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
19847
19848typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
19849
19850
19851
19852// VK_QCOM_render_pass_transform is a preprocessor guard. Do not pass it to API calls.
19853#define VK_QCOM_render_pass_transform 1
19854#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 5
19855#define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
19856typedef struct VkRenderPassTransformBeginInfoQCOM {
19857 VkStructureType sType;
19858 const void* pNext;
19859 VkSurfaceTransformFlagBitsKHR transform;
19860} VkRenderPassTransformBeginInfoQCOM;
19861
19862typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
19863 VkStructureType sType;
19864 const void* pNext;
19865 VkSurfaceTransformFlagBitsKHR transform;
19866 VkRect2D renderArea;
19867} VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
19868
19869
19870
19871// VK_EXT_depth_bias_control is a preprocessor guard. Do not pass it to API calls.
19872#define VK_EXT_depth_bias_control 1
19873#define VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION 1
19874#define VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME "VK_EXT_depth_bias_control"
19875
19876typedef enum VkDepthBiasRepresentationEXT {
19877 VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = 0,
19878 VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = 1,
19879 VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = 2,
19880 VK_DEPTH_BIAS_REPRESENTATION_MAX_ENUM_EXT = 0x7FFFFFFF
19881} VkDepthBiasRepresentationEXT;
19882typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT {
19883 VkStructureType sType;
19884 void* pNext;
19885 VkBool32 depthBiasControl;
19886 VkBool32 leastRepresentableValueForceUnormRepresentation;
19887 VkBool32 floatRepresentation;
19888 VkBool32 depthBiasExact;
19889} VkPhysicalDeviceDepthBiasControlFeaturesEXT;
19890
19891typedef struct VkDepthBiasInfoEXT {
19892 VkStructureType sType;
19893 const void* pNext;
19894 float depthBiasConstantFactor;
19895 float depthBiasClamp;
19896 float depthBiasSlopeFactor;
19897} VkDepthBiasInfoEXT;
19898
19899typedef struct VkDepthBiasRepresentationInfoEXT {
19900 VkStructureType sType;
19901 const void* pNext;
19902 VkDepthBiasRepresentationEXT depthBiasRepresentation;
19903 VkBool32 depthBiasExact;
19904} VkDepthBiasRepresentationInfoEXT;
19905
19906typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias2EXT)(VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT* pDepthBiasInfo);
19907
19908#ifndef VK_NO_PROTOTYPES
19909#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19910VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias2EXT(
19911 VkCommandBuffer commandBuffer,
19912 const VkDepthBiasInfoEXT* pDepthBiasInfo);
19913#endif
19914#endif
19915
19916
19917// VK_EXT_device_memory_report is a preprocessor guard. Do not pass it to API calls.
19918#define VK_EXT_device_memory_report 1
19919#define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
19920#define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
19921
19922typedef enum VkDeviceMemoryReportEventTypeEXT {
19923 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
19924 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
19925 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
19926 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
19927 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
19928 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
19929} VkDeviceMemoryReportEventTypeEXT;
19930typedef VkFlags VkDeviceMemoryReportFlagsEXT;
19931typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
19932 VkStructureType sType;
19933 void* pNext;
19934 VkBool32 deviceMemoryReport;
19935} VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
19936
19937typedef struct VkDeviceMemoryReportCallbackDataEXT {
19938 VkStructureType sType;
19939 void* pNext;
19940 VkDeviceMemoryReportFlagsEXT flags;
19941 VkDeviceMemoryReportEventTypeEXT type;
19942 uint64_t memoryObjectId;
19943 VkDeviceSize size;
19944 VkObjectType objectType;
19945 uint64_t objectHandle;
19946 uint32_t heapIndex;
19947} VkDeviceMemoryReportCallbackDataEXT;
19948
19949typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
19950 const VkDeviceMemoryReportCallbackDataEXT* pCallbackData,
19951 void* pUserData);
19952
19953typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
19954 VkStructureType sType;
19955 const void* pNext;
19956 VkDeviceMemoryReportFlagsEXT flags;
19957 PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback;
19958 void* pUserData;
19959} VkDeviceDeviceMemoryReportCreateInfoEXT;
19960
19961
19962
19963// VK_EXT_acquire_drm_display is a preprocessor guard. Do not pass it to API calls.
19964#define VK_EXT_acquire_drm_display 1
19965#define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
19966#define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
19967typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
19968typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
19969
19970#ifndef VK_NO_PROTOTYPES
19971#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19972VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT(
19973 VkPhysicalDevice physicalDevice,
19974 int32_t drmFd,
19975 VkDisplayKHR display);
19976#endif
19977
19978#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19979VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT(
19980 VkPhysicalDevice physicalDevice,
19981 int32_t drmFd,
19982 uint32_t connectorId,
19983 VkDisplayKHR* display);
19984#endif
19985#endif
19986
19987
19988// VK_EXT_robustness2 is a preprocessor guard. Do not pass it to API calls.
19989#define VK_EXT_robustness2 1
19990#define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1
19991#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
19992typedef VkPhysicalDeviceRobustness2FeaturesKHR VkPhysicalDeviceRobustness2FeaturesEXT;
19993
19994typedef VkPhysicalDeviceRobustness2PropertiesKHR VkPhysicalDeviceRobustness2PropertiesEXT;
19995
19996
19997
19998// VK_EXT_custom_border_color is a preprocessor guard. Do not pass it to API calls.
19999#define VK_EXT_custom_border_color 1
20000#define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
20001#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
20002typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
20003 VkStructureType sType;
20004 void* pNext;
20005 uint32_t maxCustomBorderColorSamplers;
20006} VkPhysicalDeviceCustomBorderColorPropertiesEXT;
20007
20008typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
20009 VkStructureType sType;
20010 void* pNext;
20011 VkBool32 customBorderColors;
20012 VkBool32 customBorderColorWithoutFormat;
20013} VkPhysicalDeviceCustomBorderColorFeaturesEXT;
20014
20015
20016
20017// VK_EXT_texture_compression_astc_3d is a preprocessor guard. Do not pass it to API calls.
20018#define VK_EXT_texture_compression_astc_3d 1
20019#define VK_EXT_TEXTURE_COMPRESSION_ASTC_3D_SPEC_VERSION 1
20020#define VK_EXT_TEXTURE_COMPRESSION_ASTC_3D_EXTENSION_NAME "VK_EXT_texture_compression_astc_3d"
20021typedef struct VkPhysicalDeviceTextureCompressionASTC3DFeaturesEXT {
20022 VkStructureType sType;
20023 void* pNext;
20024 VkBool32 textureCompressionASTC_3D;
20025} VkPhysicalDeviceTextureCompressionASTC3DFeaturesEXT;
20026
20027
20028
20029// VK_GOOGLE_user_type is a preprocessor guard. Do not pass it to API calls.
20030#define VK_GOOGLE_user_type 1
20031#define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1
20032#define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
20033
20034
20035// VK_NV_present_barrier is a preprocessor guard. Do not pass it to API calls.
20036#define VK_NV_present_barrier 1
20037#define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1
20038#define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier"
20039typedef struct VkPhysicalDevicePresentBarrierFeaturesNV {
20040 VkStructureType sType;
20041 void* pNext;
20042 VkBool32 presentBarrier;
20043} VkPhysicalDevicePresentBarrierFeaturesNV;
20044
20045typedef struct VkSurfaceCapabilitiesPresentBarrierNV {
20046 VkStructureType sType;
20047 void* pNext;
20048 VkBool32 presentBarrierSupported;
20049} VkSurfaceCapabilitiesPresentBarrierNV;
20050
20051typedef struct VkSwapchainPresentBarrierCreateInfoNV {
20052 VkStructureType sType;
20053 void* pNext;
20054 VkBool32 presentBarrierEnable;
20055} VkSwapchainPresentBarrierCreateInfoNV;
20056
20057
20058
20059// VK_EXT_private_data is a preprocessor guard. Do not pass it to API calls.
20060#define VK_EXT_private_data 1
20061typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
20062
20063#define VK_EXT_PRIVATE_DATA_SPEC_VERSION 1
20064#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
20065typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
20066
20067typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
20068
20069typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
20070
20071typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
20072
20073typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
20074typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
20075typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
20076typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
20077
20078#ifndef VK_NO_PROTOTYPES
20079#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20080VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
20081 VkDevice device,
20082 const VkPrivateDataSlotCreateInfo* pCreateInfo,
20083 const VkAllocationCallbacks* pAllocator,
20084 VkPrivateDataSlot* pPrivateDataSlot);
20085#endif
20086
20087#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20088VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
20089 VkDevice device,
20090 VkPrivateDataSlot privateDataSlot,
20091 const VkAllocationCallbacks* pAllocator);
20092#endif
20093
20094#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20095VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
20096 VkDevice device,
20097 VkObjectType objectType,
20098 uint64_t objectHandle,
20099 VkPrivateDataSlot privateDataSlot,
20100 uint64_t data);
20101#endif
20102
20103#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20104VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
20105 VkDevice device,
20106 VkObjectType objectType,
20107 uint64_t objectHandle,
20108 VkPrivateDataSlot privateDataSlot,
20109 uint64_t* pData);
20110#endif
20111#endif
20112
20113
20114// VK_EXT_pipeline_creation_cache_control is a preprocessor guard. Do not pass it to API calls.
20115#define VK_EXT_pipeline_creation_cache_control 1
20116#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
20117#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
20118typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
20119
20120
20121
20122// VK_NV_device_diagnostics_config is a preprocessor guard. Do not pass it to API calls.
20123#define VK_NV_device_diagnostics_config 1
20124#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
20125#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
20126
20127typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
20128 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
20129 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
20130 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
20131 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008,
20132 VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
20133} VkDeviceDiagnosticsConfigFlagBitsNV;
20134typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
20135typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
20136 VkStructureType sType;
20137 void* pNext;
20138 VkBool32 diagnosticsConfig;
20139} VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
20140
20141typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
20142 VkStructureType sType;
20143 const void* pNext;
20144 VkDeviceDiagnosticsConfigFlagsNV flags;
20145} VkDeviceDiagnosticsConfigCreateInfoNV;
20146
20147
20148
20149// VK_QCOM_render_pass_store_ops is a preprocessor guard. Do not pass it to API calls.
20150#define VK_QCOM_render_pass_store_ops 1
20151#define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
20152#define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
20153
20154
20155// VK_QCOM_queue_perf_hint is a preprocessor guard. Do not pass it to API calls.
20156#define VK_QCOM_queue_perf_hint 1
20157#define VK_QCOM_QUEUE_PERF_HINT_SPEC_VERSION 1
20158#define VK_QCOM_QUEUE_PERF_HINT_EXTENSION_NAME "VK_QCOM_queue_perf_hint"
20159
20160typedef enum VkPerfHintTypeQCOM {
20161 VK_PERF_HINT_TYPE_DEFAULT_QCOM = 0,
20162 VK_PERF_HINT_TYPE_FREQUENCY_MIN_QCOM = 1,
20163 VK_PERF_HINT_TYPE_FREQUENCY_MAX_QCOM = 2,
20164 VK_PERF_HINT_TYPE_FREQUENCY_SCALED_QCOM = 3,
20165 VK_PERF_HINT_TYPE_MAX_ENUM_QCOM = 0x7FFFFFFF
20166} VkPerfHintTypeQCOM;
20167typedef struct VkPerfHintInfoQCOM {
20168 VkStructureType sType;
20169 void* pNext;
20170 VkPerfHintTypeQCOM type;
20171 uint32_t scale;
20172} VkPerfHintInfoQCOM;
20173
20174typedef struct VkPhysicalDeviceQueuePerfHintFeaturesQCOM {
20175 VkStructureType sType;
20176 void* pNext;
20177 VkBool32 queuePerfHint;
20178} VkPhysicalDeviceQueuePerfHintFeaturesQCOM;
20179
20180typedef struct VkPhysicalDeviceQueuePerfHintPropertiesQCOM {
20181 VkStructureType sType;
20182 void* pNext;
20183 VkQueueFlags supportedQueues;
20184} VkPhysicalDeviceQueuePerfHintPropertiesQCOM;
20185
20186typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerfHintQCOM)(VkQueue queue, const VkPerfHintInfoQCOM* pPerfHintInfo);
20187
20188#ifndef VK_NO_PROTOTYPES
20189#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20190VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerfHintQCOM(
20191 VkQueue queue,
20192 const VkPerfHintInfoQCOM* pPerfHintInfo);
20193#endif
20194#endif
20195
20196
20197// VK_QCOM_image_processing3 is a preprocessor guard. Do not pass it to API calls.
20198#define VK_QCOM_image_processing3 1
20199#define VK_QCOM_IMAGE_PROCESSING_3_SPEC_VERSION 1
20200#define VK_QCOM_IMAGE_PROCESSING_3_EXTENSION_NAME "VK_QCOM_image_processing3"
20201typedef struct VkPhysicalDeviceImageProcessing3FeaturesQCOM {
20202 VkStructureType sType;
20203 void* pNext;
20204 VkBool32 imageGatherLinear;
20205 VkBool32 imageGatherExtendedModes;
20206 VkBool32 blockMatchExtendedClampToEdge;
20207} VkPhysicalDeviceImageProcessing3FeaturesQCOM;
20208
20209
20210
20211// VK_QCOM_shader_multiple_wait_queues is a preprocessor guard. Do not pass it to API calls.
20212#define VK_QCOM_shader_multiple_wait_queues 1
20213#define VK_QCOM_SHADER_MULTIPLE_WAIT_QUEUES_SPEC_VERSION 1
20214#define VK_QCOM_SHADER_MULTIPLE_WAIT_QUEUES_EXTENSION_NAME "VK_QCOM_shader_multiple_wait_queues"
20215typedef struct VkPhysicalDeviceShaderMultipleWaitQueuesFeaturesQCOM {
20216 VkStructureType sType;
20217 void* pNext;
20218 VkBool32 shaderMultipleWaitQueues;
20219} VkPhysicalDeviceShaderMultipleWaitQueuesFeaturesQCOM;
20220
20221typedef struct VkPhysicalDeviceShaderMultipleWaitQueuesPropertiesQCOM {
20222 VkStructureType sType;
20223 void* pNext;
20224 uint32_t maxShaderWaitQueues;
20225} VkPhysicalDeviceShaderMultipleWaitQueuesPropertiesQCOM;
20226
20227
20228
20229// VK_EXT_shader_split_barrier is a preprocessor guard. Do not pass it to API calls.
20230#define VK_EXT_shader_split_barrier 1
20231#define VK_EXT_SHADER_SPLIT_BARRIER_SPEC_VERSION 1
20232#define VK_EXT_SHADER_SPLIT_BARRIER_EXTENSION_NAME "VK_EXT_shader_split_barrier"
20233typedef struct VkPhysicalDeviceShaderSplitBarrierFeaturesEXT {
20234 VkStructureType sType;
20235 void* pNext;
20236 VkBool32 shaderSplitBarrier;
20237} VkPhysicalDeviceShaderSplitBarrierFeaturesEXT;
20238
20239typedef struct VkPhysicalDeviceShaderSplitBarrierPropertiesEXT {
20240 VkStructureType sType;
20241 void* pNext;
20242 uint32_t splitBarrierReservedSharedMemory;
20243} VkPhysicalDeviceShaderSplitBarrierPropertiesEXT;
20244
20245
20246
20247// VK_QCOM_tile_shading is a preprocessor guard. Do not pass it to API calls.
20248#define VK_QCOM_tile_shading 1
20249#define VK_QCOM_TILE_SHADING_SPEC_VERSION 2
20250#define VK_QCOM_TILE_SHADING_EXTENSION_NAME "VK_QCOM_tile_shading"
20251
20252typedef enum VkTileShadingRenderPassFlagBitsQCOM {
20253 VK_TILE_SHADING_RENDER_PASS_ENABLE_BIT_QCOM = 0x00000001,
20254 VK_TILE_SHADING_RENDER_PASS_PER_TILE_EXECUTION_BIT_QCOM = 0x00000002,
20255 VK_TILE_SHADING_RENDER_PASS_FLAG_BITS_MAX_ENUM_QCOM = 0x7FFFFFFF
20256} VkTileShadingRenderPassFlagBitsQCOM;
20257typedef VkFlags VkTileShadingRenderPassFlagsQCOM;
20258typedef struct VkPhysicalDeviceTileShadingFeaturesQCOM {
20259 VkStructureType sType;
20260 void* pNext;
20261 VkBool32 tileShading;
20262 VkBool32 tileShadingFragmentStage;
20263 VkBool32 tileShadingColorAttachments;
20264 VkBool32 tileShadingDepthAttachments;
20265 VkBool32 tileShadingStencilAttachments;
20266 VkBool32 tileShadingInputAttachments;
20267 VkBool32 tileShadingSampledAttachments;
20268 VkBool32 tileShadingPerTileDraw;
20269 VkBool32 tileShadingPerTileDispatch;
20270 VkBool32 tileShadingDispatchTile;
20271 VkBool32 tileShadingApron;
20272 VkBool32 tileShadingAnisotropicApron;
20273 VkBool32 tileShadingAtomicOps;
20274 VkBool32 tileShadingImageProcessing;
20275} VkPhysicalDeviceTileShadingFeaturesQCOM;
20276
20277typedef struct VkPhysicalDeviceTileShadingPropertiesQCOM {
20278 VkStructureType sType;
20279 void* pNext;
20280 uint32_t maxApronSize;
20281 VkBool32 preferNonCoherent;
20282 VkExtent2D tileGranularity;
20283 VkExtent2D maxTileShadingRate;
20284} VkPhysicalDeviceTileShadingPropertiesQCOM;
20285
20286typedef struct VkRenderPassTileShadingCreateInfoQCOM {
20287 VkStructureType sType;
20288 const void* pNext;
20289 VkTileShadingRenderPassFlagsQCOM flags;
20290 VkExtent2D tileApronSize;
20291} VkRenderPassTileShadingCreateInfoQCOM;
20292
20293typedef struct VkPerTileBeginInfoQCOM {
20294 VkStructureType sType;
20295 const void* pNext;
20296} VkPerTileBeginInfoQCOM;
20297
20298typedef struct VkPerTileEndInfoQCOM {
20299 VkStructureType sType;
20300 const void* pNext;
20301} VkPerTileEndInfoQCOM;
20302
20303typedef struct VkDispatchTileInfoQCOM {
20304 VkStructureType sType;
20305 const void* pNext;
20306} VkDispatchTileInfoQCOM;
20307
20308typedef void (VKAPI_PTR *PFN_vkCmdDispatchTileQCOM)(VkCommandBuffer commandBuffer, const VkDispatchTileInfoQCOM* pDispatchTileInfo);
20309typedef void (VKAPI_PTR *PFN_vkCmdBeginPerTileExecutionQCOM)(VkCommandBuffer commandBuffer, const VkPerTileBeginInfoQCOM* pPerTileBeginInfo);
20310typedef void (VKAPI_PTR *PFN_vkCmdEndPerTileExecutionQCOM)(VkCommandBuffer commandBuffer, const VkPerTileEndInfoQCOM* pPerTileEndInfo);
20311
20312#ifndef VK_NO_PROTOTYPES
20313#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20314VKAPI_ATTR void VKAPI_CALL vkCmdDispatchTileQCOM(
20315 VkCommandBuffer commandBuffer,
20316 const VkDispatchTileInfoQCOM* pDispatchTileInfo);
20317#endif
20318
20319#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20320VKAPI_ATTR void VKAPI_CALL vkCmdBeginPerTileExecutionQCOM(
20321 VkCommandBuffer commandBuffer,
20322 const VkPerTileBeginInfoQCOM* pPerTileBeginInfo);
20323#endif
20324
20325#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20326VKAPI_ATTR void VKAPI_CALL vkCmdEndPerTileExecutionQCOM(
20327 VkCommandBuffer commandBuffer,
20328 const VkPerTileEndInfoQCOM* pPerTileEndInfo);
20329#endif
20330#endif
20331
20332
20333// VK_NV_low_latency is a preprocessor guard. Do not pass it to API calls.
20334#define VK_NV_low_latency 1
20335#define VK_NV_LOW_LATENCY_SPEC_VERSION 2
20336#define VK_NV_LOW_LATENCY_EXTENSION_NAME "VK_NV_low_latency"
20337typedef struct VkQueryLowLatencySupportNV {
20338 VkStructureType sType;
20339 const void* pNext;
20340 void* pQueriedLowLatencyData;
20341} VkQueryLowLatencySupportNV;
20342
20343typedef void (VKAPI_PTR *PFN_vkSetLatencySleepModeLegacyNV)(VkDevice device, VkBool32 lowLatencyMode, VkBool32 lowLatencyBoost, uint32_t minimumIntervalUs);
20344typedef void (VKAPI_PTR *PFN_vkLatencySleepLegacyNV)(VkDevice device, VkSemaphore signalSemaphore, uint64_t value);
20345typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerLegacyNV)(VkDevice device, uint64_t frameID, uint32_t marker);
20346typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsLegacyNV)(VkDevice device, void* pTimings);
20347typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandLegacyNV)(VkQueue queue, uint32_t queueType);
20348typedef void (VKAPI_PTR *PFN_vkGetSleepStatusLegacyNV)(VkDevice device, VkBool32* pLowLatencyMode);
20349typedef void (VKAPI_PTR *PFN_vkShutdownLatencyDeviceLegacyNV)(VkDevice device);
20350
20351#ifndef VK_NO_PROTOTYPES
20352#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20353VKAPI_ATTR void VKAPI_CALL vkSetLatencySleepModeLegacyNV(
20354 VkDevice device,
20355 VkBool32 lowLatencyMode,
20356 VkBool32 lowLatencyBoost,
20357 uint32_t minimumIntervalUs);
20358#endif
20359
20360#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20361VKAPI_ATTR void VKAPI_CALL vkLatencySleepLegacyNV(
20362 VkDevice device,
20363 VkSemaphore signalSemaphore,
20364 uint64_t value);
20365#endif
20366
20367#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20368VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerLegacyNV(
20369 VkDevice device,
20370 uint64_t frameID,
20371 uint32_t marker);
20372#endif
20373
20374#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20375VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsLegacyNV(
20376 VkDevice device,
20377 void* pTimings);
20378#endif
20379
20380#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20381VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandLegacyNV(
20382 VkQueue queue,
20383 uint32_t queueType);
20384#endif
20385
20386#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20387VKAPI_ATTR void VKAPI_CALL vkGetSleepStatusLegacyNV(
20388 VkDevice device,
20389 VkBool32* pLowLatencyMode);
20390#endif
20391
20392#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20393VKAPI_ATTR void VKAPI_CALL vkShutdownLatencyDeviceLegacyNV(
20394 VkDevice device);
20395#endif
20396#endif
20397
20398
20399// VK_EXT_descriptor_buffer is a preprocessor guard. Do not pass it to API calls.
20400#define VK_EXT_descriptor_buffer 1
20401#define VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION 1
20402#define VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME "VK_EXT_descriptor_buffer"
20403typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT {
20404 VkStructureType sType;
20405 void* pNext;
20406 VkBool32 combinedImageSamplerDescriptorSingleArray;
20407 VkBool32 bufferlessPushDescriptors;
20408 VkBool32 allowSamplerImageViewPostSubmitCreation;
20409 VkDeviceSize descriptorBufferOffsetAlignment;
20410 uint32_t maxDescriptorBufferBindings;
20411 uint32_t maxResourceDescriptorBufferBindings;
20412 uint32_t maxSamplerDescriptorBufferBindings;
20413 uint32_t maxEmbeddedImmutableSamplerBindings;
20414 uint32_t maxEmbeddedImmutableSamplers;
20415 size_t bufferCaptureReplayDescriptorDataSize;
20416 size_t imageCaptureReplayDescriptorDataSize;
20417 size_t imageViewCaptureReplayDescriptorDataSize;
20418 size_t samplerCaptureReplayDescriptorDataSize;
20419 size_t accelerationStructureCaptureReplayDescriptorDataSize;
20420 size_t samplerDescriptorSize;
20421 size_t combinedImageSamplerDescriptorSize;
20422 size_t sampledImageDescriptorSize;
20423 size_t storageImageDescriptorSize;
20424 size_t uniformTexelBufferDescriptorSize;
20425 size_t robustUniformTexelBufferDescriptorSize;
20426 size_t storageTexelBufferDescriptorSize;
20427 size_t robustStorageTexelBufferDescriptorSize;
20428 size_t uniformBufferDescriptorSize;
20429 size_t robustUniformBufferDescriptorSize;
20430 size_t storageBufferDescriptorSize;
20431 size_t robustStorageBufferDescriptorSize;
20432 size_t inputAttachmentDescriptorSize;
20433 size_t accelerationStructureDescriptorSize;
20434 VkDeviceSize maxSamplerDescriptorBufferRange;
20435 VkDeviceSize maxResourceDescriptorBufferRange;
20436 VkDeviceSize samplerDescriptorBufferAddressSpaceSize;
20437 VkDeviceSize resourceDescriptorBufferAddressSpaceSize;
20438 VkDeviceSize descriptorBufferAddressSpaceSize;
20439} VkPhysicalDeviceDescriptorBufferPropertiesEXT;
20440
20441typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT {
20442 VkStructureType sType;
20443 void* pNext;
20444 VkBool32 descriptorBuffer;
20445 VkBool32 descriptorBufferCaptureReplay;
20446 VkBool32 descriptorBufferImageLayoutIgnored;
20447 VkBool32 descriptorBufferPushDescriptors;
20448} VkPhysicalDeviceDescriptorBufferFeaturesEXT;
20449
20450typedef struct VkDescriptorAddressInfoEXT {
20451 VkStructureType sType;
20452 void* pNext;
20453 VkDeviceAddress address;
20454 VkDeviceSize range;
20455 VkFormat format;
20456} VkDescriptorAddressInfoEXT;
20457
20458typedef struct VkDescriptorBufferBindingInfoEXT {
20459 VkStructureType sType;
20460 const void* pNext;
20461 VkDeviceAddress address;
20462 VkBufferUsageFlags usage;
20463} VkDescriptorBufferBindingInfoEXT;
20464
20465typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT {
20466 VkStructureType sType;
20467 const void* pNext;
20468 VkBuffer buffer;
20469} VkDescriptorBufferBindingPushDescriptorBufferHandleEXT;
20470
20471typedef union VkDescriptorDataEXT {
20472 const VkSampler* pSampler;
20473 const VkDescriptorImageInfo* pCombinedImageSampler;
20474 const VkDescriptorImageInfo* pInputAttachmentImage;
20475 const VkDescriptorImageInfo* pSampledImage;
20476 const VkDescriptorImageInfo* pStorageImage;
20477 const VkDescriptorAddressInfoEXT* pUniformTexelBuffer;
20478 const VkDescriptorAddressInfoEXT* pStorageTexelBuffer;
20479 const VkDescriptorAddressInfoEXT* pUniformBuffer;
20480 const VkDescriptorAddressInfoEXT* pStorageBuffer;
20481 VkDeviceAddress accelerationStructure;
20482} VkDescriptorDataEXT;
20483
20484typedef struct VkDescriptorGetInfoEXT {
20485 VkStructureType sType;
20486 const void* pNext;
20487 VkDescriptorType type;
20488 VkDescriptorDataEXT data;
20489} VkDescriptorGetInfoEXT;
20490
20491typedef struct VkBufferCaptureDescriptorDataInfoEXT {
20492 VkStructureType sType;
20493 const void* pNext;
20494 VkBuffer buffer;
20495} VkBufferCaptureDescriptorDataInfoEXT;
20496
20497typedef struct VkImageCaptureDescriptorDataInfoEXT {
20498 VkStructureType sType;
20499 const void* pNext;
20500 VkImage image;
20501} VkImageCaptureDescriptorDataInfoEXT;
20502
20503typedef struct VkImageViewCaptureDescriptorDataInfoEXT {
20504 VkStructureType sType;
20505 const void* pNext;
20506 VkImageView imageView;
20507} VkImageViewCaptureDescriptorDataInfoEXT;
20508
20509typedef struct VkSamplerCaptureDescriptorDataInfoEXT {
20510 VkStructureType sType;
20511 const void* pNext;
20512 VkSampler sampler;
20513} VkSamplerCaptureDescriptorDataInfoEXT;
20514
20515typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT {
20516 VkStructureType sType;
20517 const void* pNext;
20518 const void* opaqueCaptureDescriptorData;
20519} VkOpaqueCaptureDescriptorDataCreateInfoEXT;
20520
20521typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT {
20522 VkStructureType sType;
20523 const void* pNext;
20524 VkAccelerationStructureKHR accelerationStructure;
20525 VkAccelerationStructureNV accelerationStructureNV;
20526} VkAccelerationStructureCaptureDescriptorDataInfoEXT;
20527
20528typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
20529 VkStructureType sType;
20530 void* pNext;
20531 size_t combinedImageSamplerDensityMapDescriptorSize;
20532} VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
20533
20534typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSizeEXT)(VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes);
20535typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset);
20536typedef void (VKAPI_PTR *PFN_vkGetDescriptorEXT)(VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor);
20537typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
20538typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsetsEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const uint32_t* pBufferIndices, const VkDeviceSize* pOffsets);
20539typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set);
20540typedef VkResult (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData);
20541typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData);
20542typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData);
20543typedef VkResult (VKAPI_PTR *PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData);
20544typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData);
20545
20546#ifndef VK_NO_PROTOTYPES
20547#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20548VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT(
20549 VkDevice device,
20550 VkDescriptorSetLayout layout,
20551 VkDeviceSize* pLayoutSizeInBytes);
20552#endif
20553
20554#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20555VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutBindingOffsetEXT(
20556 VkDevice device,
20557 VkDescriptorSetLayout layout,
20558 uint32_t binding,
20559 VkDeviceSize* pOffset);
20560#endif
20561
20562#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20563VKAPI_ATTR void VKAPI_CALL vkGetDescriptorEXT(
20564 VkDevice device,
20565 const VkDescriptorGetInfoEXT* pDescriptorInfo,
20566 size_t dataSize,
20567 void* pDescriptor);
20568#endif
20569
20570#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20571VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBuffersEXT(
20572 VkCommandBuffer commandBuffer,
20573 uint32_t bufferCount,
20574 const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
20575#endif
20576
20577#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20578VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsetsEXT(
20579 VkCommandBuffer commandBuffer,
20580 VkPipelineBindPoint pipelineBindPoint,
20581 VkPipelineLayout layout,
20582 uint32_t firstSet,
20583 uint32_t setCount,
20584 const uint32_t* pBufferIndices,
20585 const VkDeviceSize* pOffsets);
20586#endif
20587
20588#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20589VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
20590 VkCommandBuffer commandBuffer,
20591 VkPipelineBindPoint pipelineBindPoint,
20592 VkPipelineLayout layout,
20593 uint32_t set);
20594#endif
20595
20596#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20597VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferOpaqueCaptureDescriptorDataEXT(
20598 VkDevice device,
20599 const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
20600 void* pData);
20601#endif
20602
20603#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20604VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDescriptorDataEXT(
20605 VkDevice device,
20606 const VkImageCaptureDescriptorDataInfoEXT* pInfo,
20607 void* pData);
20608#endif
20609
20610#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20611VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT(
20612 VkDevice device,
20613 const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
20614 void* pData);
20615#endif
20616
20617#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20618VKAPI_ATTR VkResult VKAPI_CALL vkGetSamplerOpaqueCaptureDescriptorDataEXT(
20619 VkDevice device,
20620 const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
20621 void* pData);
20622#endif
20623
20624#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20625VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
20626 VkDevice device,
20627 const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
20628 void* pData);
20629#endif
20630#endif
20631
20632
20633// VK_EXT_graphics_pipeline_library is a preprocessor guard. Do not pass it to API calls.
20634#define VK_EXT_graphics_pipeline_library 1
20635#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
20636#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
20637
20638typedef enum VkGraphicsPipelineLibraryFlagBitsEXT {
20639 VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001,
20640 VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002,
20641 VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004,
20642 VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008,
20643 VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
20644} VkGraphicsPipelineLibraryFlagBitsEXT;
20645typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT;
20646typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
20647 VkStructureType sType;
20648 void* pNext;
20649 VkBool32 graphicsPipelineLibrary;
20650} VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
20651
20652typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
20653 VkStructureType sType;
20654 void* pNext;
20655 VkBool32 graphicsPipelineLibraryFastLinking;
20656 VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration;
20657} VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
20658
20659typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {
20660 VkStructureType sType;
20661 const void* pNext;
20662 VkGraphicsPipelineLibraryFlagsEXT flags;
20663} VkGraphicsPipelineLibraryCreateInfoEXT;
20664
20665
20666
20667// VK_AMD_shader_early_and_late_fragment_tests is a preprocessor guard. Do not pass it to API calls.
20668#define VK_AMD_shader_early_and_late_fragment_tests 1
20669#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
20670#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
20671typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
20672 VkStructureType sType;
20673 void* pNext;
20674 VkBool32 shaderEarlyAndLateFragmentTests;
20675} VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
20676
20677
20678
20679// VK_NV_fragment_shading_rate_enums is a preprocessor guard. Do not pass it to API calls.
20680#define VK_NV_fragment_shading_rate_enums 1
20681#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
20682#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
20683
20684typedef enum VkFragmentShadingRateTypeNV {
20685 VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0,
20686 VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1,
20687 VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
20688} VkFragmentShadingRateTypeNV;
20689
20690typedef enum VkFragmentShadingRateNV {
20691 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0,
20692 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
20693 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
20694 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
20695 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
20696 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
20697 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
20698 VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11,
20699 VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12,
20700 VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13,
20701 VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14,
20702 VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15,
20703 VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF
20704} VkFragmentShadingRateNV;
20705typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
20706 VkStructureType sType;
20707 void* pNext;
20708 VkBool32 fragmentShadingRateEnums;
20709 VkBool32 supersampleFragmentShadingRates;
20710 VkBool32 noInvocationFragmentShadingRates;
20711} VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
20712
20713typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
20714 VkStructureType sType;
20715 void* pNext;
20716 VkSampleCountFlagBits maxFragmentShadingRateInvocationCount;
20717} VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
20718
20719typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV {
20720 VkStructureType sType;
20721 const void* pNext;
20722 VkFragmentShadingRateTypeNV shadingRateType;
20723 VkFragmentShadingRateNV shadingRate;
20724 VkFragmentShadingRateCombinerOpKHR combinerOps[2];
20725} VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
20726
20727typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
20728
20729#ifndef VK_NO_PROTOTYPES
20730#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20731VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV(
20732 VkCommandBuffer commandBuffer,
20733 VkFragmentShadingRateNV shadingRate,
20734 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
20735#endif
20736#endif
20737
20738
20739// VK_NV_ray_tracing_motion_blur is a preprocessor guard. Do not pass it to API calls.
20740#define VK_NV_ray_tracing_motion_blur 1
20741#define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
20742#define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
20743
20744typedef enum VkAccelerationStructureMotionInstanceTypeNV {
20745 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
20746 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
20747 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2,
20748 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
20749} VkAccelerationStructureMotionInstanceTypeNV;
20750typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV;
20751typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV;
20752typedef union VkDeviceOrHostAddressConstKHR {
20753 VkDeviceAddress deviceAddress;
20754 const void* hostAddress;
20755} VkDeviceOrHostAddressConstKHR;
20756
20757typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV {
20758 VkStructureType sType;
20759 const void* pNext;
20760 VkDeviceOrHostAddressConstKHR vertexData;
20761} VkAccelerationStructureGeometryMotionTrianglesDataNV;
20762
20763typedef struct VkAccelerationStructureMotionInfoNV {
20764 VkStructureType sType;
20765 const void* pNext;
20766 uint32_t maxInstances;
20767 VkAccelerationStructureMotionInfoFlagsNV flags;
20768} VkAccelerationStructureMotionInfoNV;
20769
20770typedef struct VkAccelerationStructureMatrixMotionInstanceNV {
20771 VkTransformMatrixKHR transformT0;
20772 VkTransformMatrixKHR transformT1;
20773 uint32_t instanceCustomIndex:24;
20774 uint32_t mask:8;
20775 uint32_t instanceShaderBindingTableRecordOffset:24;
20776 VkGeometryInstanceFlagsKHR flags:8;
20777 uint64_t accelerationStructureReference;
20778} VkAccelerationStructureMatrixMotionInstanceNV;
20779
20780typedef struct VkSRTDataNV {
20781 float sx;
20782 float a;
20783 float b;
20784 float pvx;
20785 float sy;
20786 float c;
20787 float pvy;
20788 float sz;
20789 float pvz;
20790 float qx;
20791 float qy;
20792 float qz;
20793 float qw;
20794 float tx;
20795 float ty;
20796 float tz;
20797} VkSRTDataNV;
20798
20799typedef struct VkAccelerationStructureSRTMotionInstanceNV {
20800 VkSRTDataNV transformT0;
20801 VkSRTDataNV transformT1;
20802 uint32_t instanceCustomIndex:24;
20803 uint32_t mask:8;
20804 uint32_t instanceShaderBindingTableRecordOffset:24;
20805 VkGeometryInstanceFlagsKHR flags:8;
20806 uint64_t accelerationStructureReference;
20807} VkAccelerationStructureSRTMotionInstanceNV;
20808
20809typedef union VkAccelerationStructureMotionInstanceDataNV {
20810 VkAccelerationStructureInstanceKHR staticInstance;
20811 VkAccelerationStructureMatrixMotionInstanceNV matrixMotionInstance;
20812 VkAccelerationStructureSRTMotionInstanceNV srtMotionInstance;
20813} VkAccelerationStructureMotionInstanceDataNV;
20814
20815typedef struct VkAccelerationStructureMotionInstanceNV {
20816 VkAccelerationStructureMotionInstanceTypeNV type;
20817 VkAccelerationStructureMotionInstanceFlagsNV flags;
20818 VkAccelerationStructureMotionInstanceDataNV data;
20819} VkAccelerationStructureMotionInstanceNV;
20820
20821typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
20822 VkStructureType sType;
20823 void* pNext;
20824 VkBool32 rayTracingMotionBlur;
20825 VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect;
20826} VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
20827
20828
20829
20830// VK_EXT_ycbcr_2plane_444_formats is a preprocessor guard. Do not pass it to API calls.
20831#define VK_EXT_ycbcr_2plane_444_formats 1
20832#define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
20833#define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
20834typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
20835 VkStructureType sType;
20836 void* pNext;
20837 VkBool32 ycbcr2plane444Formats;
20838} VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
20839
20840
20841
20842// VK_EXT_fragment_density_map2 is a preprocessor guard. Do not pass it to API calls.
20843#define VK_EXT_fragment_density_map2 1
20844#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
20845#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
20846typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
20847 VkStructureType sType;
20848 void* pNext;
20849 VkBool32 fragmentDensityMapDeferred;
20850} VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
20851
20852typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
20853 VkStructureType sType;
20854 void* pNext;
20855 VkBool32 subsampledLoads;
20856 VkBool32 subsampledCoarseReconstructionEarlyAccess;
20857 uint32_t maxSubsampledArrayLayers;
20858 uint32_t maxDescriptorSetSubsampledSamplers;
20859} VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
20860
20861
20862
20863// VK_QCOM_rotated_copy_commands is a preprocessor guard. Do not pass it to API calls.
20864#define VK_QCOM_rotated_copy_commands 1
20865#define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 2
20866#define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
20867typedef struct VkCopyCommandTransformInfoQCOM {
20868 VkStructureType sType;
20869 const void* pNext;
20870 VkSurfaceTransformFlagBitsKHR transform;
20871} VkCopyCommandTransformInfoQCOM;
20872
20873
20874
20875// VK_EXT_image_robustness is a preprocessor guard. Do not pass it to API calls.
20876#define VK_EXT_image_robustness 1
20877#define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
20878#define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
20879typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT;
20880
20881
20882
20883// VK_EXT_image_compression_control is a preprocessor guard. Do not pass it to API calls.
20884#define VK_EXT_image_compression_control 1
20885#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
20886#define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
20887
20888typedef enum VkImageCompressionFlagBitsEXT {
20889 VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0,
20890 VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001,
20891 VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002,
20892 VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004,
20893 VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
20894} VkImageCompressionFlagBitsEXT;
20895typedef VkFlags VkImageCompressionFlagsEXT;
20896
20897typedef enum VkImageCompressionFixedRateFlagBitsEXT {
20898 VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0,
20899 VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001,
20900 VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002,
20901 VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004,
20902 VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008,
20903 VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010,
20904 VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020,
20905 VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040,
20906 VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080,
20907 VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100,
20908 VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200,
20909 VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400,
20910 VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800,
20911 VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000,
20912 VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000,
20913 VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000,
20914 VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000,
20915 VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000,
20916 VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000,
20917 VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000,
20918 VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000,
20919 VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000,
20920 VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000,
20921 VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000,
20922 VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000,
20923 VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
20924} VkImageCompressionFixedRateFlagBitsEXT;
20925typedef VkFlags VkImageCompressionFixedRateFlagsEXT;
20926typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT {
20927 VkStructureType sType;
20928 void* pNext;
20929 VkBool32 imageCompressionControl;
20930} VkPhysicalDeviceImageCompressionControlFeaturesEXT;
20931
20932typedef struct VkImageCompressionControlEXT {
20933 VkStructureType sType;
20934 const void* pNext;
20935 VkImageCompressionFlagsEXT flags;
20936 uint32_t compressionControlPlaneCount;
20937 VkImageCompressionFixedRateFlagsEXT* pFixedRateFlags;
20938} VkImageCompressionControlEXT;
20939
20940typedef struct VkImageCompressionPropertiesEXT {
20941 VkStructureType sType;
20942 void* pNext;
20943 VkImageCompressionFlagsEXT imageCompressionFlags;
20944 VkImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags;
20945} VkImageCompressionPropertiesEXT;
20946
20947
20948
20949// VK_EXT_attachment_feedback_loop_layout is a preprocessor guard. Do not pass it to API calls.
20950#define VK_EXT_attachment_feedback_loop_layout 1
20951#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2
20952#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout"
20953typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
20954 VkStructureType sType;
20955 void* pNext;
20956 VkBool32 attachmentFeedbackLoopLayout;
20957} VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
20958
20959
20960
20961// VK_EXT_4444_formats is a preprocessor guard. Do not pass it to API calls.
20962#define VK_EXT_4444_formats 1
20963#define VK_EXT_4444_FORMATS_SPEC_VERSION 1
20964#define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
20965typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
20966 VkStructureType sType;
20967 void* pNext;
20968 VkBool32 formatA4R4G4B4;
20969 VkBool32 formatA4B4G4R4;
20970} VkPhysicalDevice4444FormatsFeaturesEXT;
20971
20972
20973
20974// VK_EXT_device_fault is a preprocessor guard. Do not pass it to API calls.
20975#define VK_EXT_device_fault 1
20976#define VK_EXT_DEVICE_FAULT_SPEC_VERSION 2
20977#define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault"
20978typedef VkDeviceFaultAddressTypeKHR VkDeviceFaultAddressTypeEXT;
20979
20980typedef VkDeviceFaultVendorBinaryHeaderVersionKHR VkDeviceFaultVendorBinaryHeaderVersionEXT;
20981
20982typedef struct VkPhysicalDeviceFaultFeaturesEXT {
20983 VkStructureType sType;
20984 void* pNext;
20985 VkBool32 deviceFault;
20986 VkBool32 deviceFaultVendorBinary;
20987} VkPhysicalDeviceFaultFeaturesEXT;
20988
20989typedef struct VkDeviceFaultCountsEXT {
20990 VkStructureType sType;
20991 void* pNext;
20992 uint32_t addressInfoCount;
20993 uint32_t vendorInfoCount;
20994 VkDeviceSize vendorBinarySize;
20995} VkDeviceFaultCountsEXT;
20996
20997typedef struct VkDeviceFaultInfoEXT {
20998 VkStructureType sType;
20999 void* pNext;
21000 char description[VK_MAX_DESCRIPTION_SIZE];
21001 VkDeviceFaultAddressInfoKHR* pAddressInfos;
21002 VkDeviceFaultVendorInfoKHR* pVendorInfos;
21003 void* pVendorBinaryData;
21004} VkDeviceFaultInfoEXT;
21005
21006typedef VkDeviceFaultAddressInfoKHR VkDeviceFaultAddressInfoEXT;
21007
21008typedef VkDeviceFaultVendorInfoKHR VkDeviceFaultVendorInfoEXT;
21009
21010typedef VkDeviceFaultVendorBinaryHeaderVersionOneKHR VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
21011
21012typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo);
21013
21014#ifndef VK_NO_PROTOTYPES
21015#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21016VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT(
21017 VkDevice device,
21018 VkDeviceFaultCountsEXT* pFaultCounts,
21019 VkDeviceFaultInfoEXT* pFaultInfo);
21020#endif
21021#endif
21022
21023
21024// VK_ARM_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
21025#define VK_ARM_rasterization_order_attachment_access 1
21026#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
21027#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
21028typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
21029 VkStructureType sType;
21030 void* pNext;
21031 VkBool32 rasterizationOrderColorAttachmentAccess;
21032 VkBool32 rasterizationOrderDepthAttachmentAccess;
21033 VkBool32 rasterizationOrderStencilAttachmentAccess;
21034} VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
21035
21036typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
21037
21038
21039
21040// VK_EXT_rgba10x6_formats is a preprocessor guard. Do not pass it to API calls.
21041#define VK_EXT_rgba10x6_formats 1
21042#define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
21043#define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
21044typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT {
21045 VkStructureType sType;
21046 void* pNext;
21047 VkBool32 formatRgba10x6WithoutYCbCrSampler;
21048} VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
21049
21050
21051
21052// VK_VALVE_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
21053#define VK_VALVE_mutable_descriptor_type 1
21054#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
21055#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
21056typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT {
21057 VkStructureType sType;
21058 void* pNext;
21059 VkBool32 mutableDescriptorType;
21060} VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
21061
21062typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
21063
21064typedef struct VkMutableDescriptorTypeListEXT {
21065 uint32_t descriptorTypeCount;
21066 const VkDescriptorType* pDescriptorTypes;
21067} VkMutableDescriptorTypeListEXT;
21068
21069typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE;
21070
21071typedef struct VkMutableDescriptorTypeCreateInfoEXT {
21072 VkStructureType sType;
21073 const void* pNext;
21074 uint32_t mutableDescriptorTypeListCount;
21075 const VkMutableDescriptorTypeListEXT* pMutableDescriptorTypeLists;
21076} VkMutableDescriptorTypeCreateInfoEXT;
21077
21078typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE;
21079
21080
21081
21082// VK_EXT_vertex_input_dynamic_state is a preprocessor guard. Do not pass it to API calls.
21083#define VK_EXT_vertex_input_dynamic_state 1
21084#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
21085#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
21086typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT {
21087 VkStructureType sType;
21088 void* pNext;
21089 VkBool32 vertexInputDynamicState;
21090} VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
21091
21092typedef struct VkVertexInputBindingDescription2EXT {
21093 VkStructureType sType;
21094 void* pNext;
21095 uint32_t binding;
21096 uint32_t stride;
21097 VkVertexInputRate inputRate;
21098 uint32_t divisor;
21099} VkVertexInputBindingDescription2EXT;
21100
21101typedef struct VkVertexInputAttributeDescription2EXT {
21102 VkStructureType sType;
21103 void* pNext;
21104 uint32_t location;
21105 uint32_t binding;
21106 VkFormat format;
21107 uint32_t offset;
21108} VkVertexInputAttributeDescription2EXT;
21109
21110typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
21111
21112#ifndef VK_NO_PROTOTYPES
21113#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21114VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT(
21115 VkCommandBuffer commandBuffer,
21116 uint32_t vertexBindingDescriptionCount,
21117 const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions,
21118 uint32_t vertexAttributeDescriptionCount,
21119 const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
21120#endif
21121#endif
21122
21123
21124// VK_EXT_physical_device_drm is a preprocessor guard. Do not pass it to API calls.
21125#define VK_EXT_physical_device_drm 1
21126#define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
21127#define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
21128typedef struct VkPhysicalDeviceDrmPropertiesEXT {
21129 VkStructureType sType;
21130 void* pNext;
21131 VkBool32 hasPrimary;
21132 VkBool32 hasRender;
21133 int64_t primaryMajor;
21134 int64_t primaryMinor;
21135 int64_t renderMajor;
21136 int64_t renderMinor;
21137} VkPhysicalDeviceDrmPropertiesEXT;
21138
21139
21140
21141// VK_EXT_device_address_binding_report is a preprocessor guard. Do not pass it to API calls.
21142#define VK_EXT_device_address_binding_report 1
21143#define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1
21144#define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report"
21145
21146typedef enum VkDeviceAddressBindingTypeEXT {
21147 VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0,
21148 VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1,
21149 VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
21150} VkDeviceAddressBindingTypeEXT;
21151
21152typedef enum VkDeviceAddressBindingFlagBitsEXT {
21153 VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0x00000001,
21154 VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
21155} VkDeviceAddressBindingFlagBitsEXT;
21156typedef VkFlags VkDeviceAddressBindingFlagsEXT;
21157typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT {
21158 VkStructureType sType;
21159 void* pNext;
21160 VkBool32 reportAddressBinding;
21161} VkPhysicalDeviceAddressBindingReportFeaturesEXT;
21162
21163typedef struct VkDeviceAddressBindingCallbackDataEXT {
21164 VkStructureType sType;
21165 void* pNext;
21166 VkDeviceAddressBindingFlagsEXT flags;
21167 VkDeviceAddress baseAddress;
21168 VkDeviceSize size;
21169 VkDeviceAddressBindingTypeEXT bindingType;
21170} VkDeviceAddressBindingCallbackDataEXT;
21171
21172
21173
21174// VK_EXT_depth_clip_control is a preprocessor guard. Do not pass it to API calls.
21175#define VK_EXT_depth_clip_control 1
21176#define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
21177#define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
21178typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT {
21179 VkStructureType sType;
21180 void* pNext;
21181 VkBool32 depthClipControl;
21182} VkPhysicalDeviceDepthClipControlFeaturesEXT;
21183
21184typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT {
21185 VkStructureType sType;
21186 const void* pNext;
21187 VkBool32 negativeOneToOne;
21188} VkPipelineViewportDepthClipControlCreateInfoEXT;
21189
21190
21191
21192// VK_EXT_primitive_topology_list_restart is a preprocessor guard. Do not pass it to API calls.
21193#define VK_EXT_primitive_topology_list_restart 1
21194#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
21195#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
21196typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
21197 VkStructureType sType;
21198 void* pNext;
21199 VkBool32 primitiveTopologyListRestart;
21200 VkBool32 primitiveTopologyPatchListRestart;
21201} VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
21202
21203
21204
21205// VK_EXT_present_mode_fifo_latest_ready is a preprocessor guard. Do not pass it to API calls.
21206#define VK_EXT_present_mode_fifo_latest_ready 1
21207#define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION 1
21208#define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME "VK_EXT_present_mode_fifo_latest_ready"
21209typedef VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT;
21210
21211
21212
21213// VK_HUAWEI_subpass_shading is a preprocessor guard. Do not pass it to API calls.
21214#define VK_HUAWEI_subpass_shading 1
21215#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 3
21216#define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
21217typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
21218 VkStructureType sType;
21219 void* pNext;
21220 VkRenderPass renderPass;
21221 uint32_t subpass;
21222} VkSubpassShadingPipelineCreateInfoHUAWEI;
21223
21224typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI {
21225 VkStructureType sType;
21226 void* pNext;
21227 VkBool32 subpassShading;
21228} VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
21229
21230typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
21231 VkStructureType sType;
21232 void* pNext;
21233 uint32_t maxSubpassShadingWorkgroupSizeAspectRatio;
21234} VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
21235
21236typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
21237typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
21238
21239#ifndef VK_NO_PROTOTYPES
21240#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21241VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
21242 VkDevice device,
21243 VkRenderPass renderpass,
21244 VkExtent2D* pMaxWorkgroupSize);
21245#endif
21246
21247#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21248VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
21249 VkCommandBuffer commandBuffer);
21250#endif
21251#endif
21252
21253
21254// VK_HUAWEI_invocation_mask is a preprocessor guard. Do not pass it to API calls.
21255#define VK_HUAWEI_invocation_mask 1
21256#define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
21257#define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
21258typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
21259 VkStructureType sType;
21260 void* pNext;
21261 VkBool32 invocationMask;
21262} VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
21263
21264typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
21265
21266#ifndef VK_NO_PROTOTYPES
21267#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21268VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
21269 VkCommandBuffer commandBuffer,
21270 VkImageView imageView,
21271 VkImageLayout imageLayout);
21272#endif
21273#endif
21274
21275
21276// VK_NV_external_memory_rdma is a preprocessor guard. Do not pass it to API calls.
21277#define VK_NV_external_memory_rdma 1
21278typedef void* VkRemoteAddressNV;
21279#define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
21280#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
21281typedef struct VkMemoryGetRemoteAddressInfoNV {
21282 VkStructureType sType;
21283 const void* pNext;
21284 VkDeviceMemory memory;
21285 VkExternalMemoryHandleTypeFlagBits handleType;
21286} VkMemoryGetRemoteAddressInfoNV;
21287
21288typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
21289 VkStructureType sType;
21290 void* pNext;
21291 VkBool32 externalMemoryRDMA;
21292} VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
21293
21294typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
21295
21296#ifndef VK_NO_PROTOTYPES
21297#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21298VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
21299 VkDevice device,
21300 const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo,
21301 VkRemoteAddressNV* pAddress);
21302#endif
21303#endif
21304
21305
21306// VK_EXT_pipeline_properties is a preprocessor guard. Do not pass it to API calls.
21307#define VK_EXT_pipeline_properties 1
21308#define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
21309#define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
21310typedef VkPipelineInfoKHR VkPipelineInfoEXT;
21311
21312typedef struct VkPipelinePropertiesIdentifierEXT {
21313 VkStructureType sType;
21314 void* pNext;
21315 uint8_t pipelineIdentifier[VK_UUID_SIZE];
21316} VkPipelinePropertiesIdentifierEXT;
21317
21318typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT {
21319 VkStructureType sType;
21320 void* pNext;
21321 VkBool32 pipelinePropertiesIdentifier;
21322} VkPhysicalDevicePipelinePropertiesFeaturesEXT;
21323
21324typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
21325
21326#ifndef VK_NO_PROTOTYPES
21327#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21328VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT(
21329 VkDevice device,
21330 const VkPipelineInfoKHR* pPipelineInfo,
21331 VkBaseOutStructure* pPipelineProperties);
21332#endif
21333#endif
21334
21335
21336// VK_EXT_frame_boundary is a preprocessor guard. Do not pass it to API calls.
21337#define VK_EXT_frame_boundary 1
21338#define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1
21339#define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary"
21340
21341typedef enum VkFrameBoundaryFlagBitsEXT {
21342 VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001,
21343 VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
21344} VkFrameBoundaryFlagBitsEXT;
21345typedef VkFlags VkFrameBoundaryFlagsEXT;
21346typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT {
21347 VkStructureType sType;
21348 void* pNext;
21349 VkBool32 frameBoundary;
21350} VkPhysicalDeviceFrameBoundaryFeaturesEXT;
21351
21352typedef struct VkFrameBoundaryEXT {
21353 VkStructureType sType;
21354 const void* pNext;
21355 VkFrameBoundaryFlagsEXT flags;
21356 uint64_t frameID;
21357 uint32_t imageCount;
21358 const VkImage* pImages;
21359 uint32_t bufferCount;
21360 const VkBuffer* pBuffers;
21361 uint64_t tagName;
21362 size_t tagSize;
21363 const void* pTag;
21364} VkFrameBoundaryEXT;
21365
21366
21367
21368// VK_EXT_multisampled_render_to_single_sampled is a preprocessor guard. Do not pass it to API calls.
21369#define VK_EXT_multisampled_render_to_single_sampled 1
21370#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1
21371#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
21372typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
21373 VkStructureType sType;
21374 void* pNext;
21375 VkBool32 multisampledRenderToSingleSampled;
21376} VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
21377
21378typedef struct VkSubpassResolvePerformanceQueryEXT {
21379 VkStructureType sType;
21380 void* pNext;
21381 VkBool32 optimal;
21382} VkSubpassResolvePerformanceQueryEXT;
21383
21384typedef struct VkMultisampledRenderToSingleSampledInfoEXT {
21385 VkStructureType sType;
21386 const void* pNext;
21387 VkBool32 multisampledRenderToSingleSampledEnable;
21388 VkSampleCountFlagBits rasterizationSamples;
21389} VkMultisampledRenderToSingleSampledInfoEXT;
21390
21391
21392
21393// VK_EXT_extended_dynamic_state2 is a preprocessor guard. Do not pass it to API calls.
21394#define VK_EXT_extended_dynamic_state2 1
21395#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
21396#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
21397typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT {
21398 VkStructureType sType;
21399 void* pNext;
21400 VkBool32 extendedDynamicState2;
21401 VkBool32 extendedDynamicState2LogicOp;
21402 VkBool32 extendedDynamicState2PatchControlPoints;
21403} VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
21404
21405typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
21406typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
21407typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
21408typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp);
21409typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
21410
21411#ifndef VK_NO_PROTOTYPES
21412#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21413VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT(
21414 VkCommandBuffer commandBuffer,
21415 uint32_t patchControlPoints);
21416#endif
21417
21418#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21419VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT(
21420 VkCommandBuffer commandBuffer,
21421 VkBool32 rasterizerDiscardEnable);
21422#endif
21423
21424#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21425VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT(
21426 VkCommandBuffer commandBuffer,
21427 VkBool32 depthBiasEnable);
21428#endif
21429
21430#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21431VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT(
21432 VkCommandBuffer commandBuffer,
21433 VkLogicOp logicOp);
21434#endif
21435
21436#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21437VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT(
21438 VkCommandBuffer commandBuffer,
21439 VkBool32 primitiveRestartEnable);
21440#endif
21441#endif
21442
21443
21444// VK_EXT_color_write_enable is a preprocessor guard. Do not pass it to API calls.
21445#define VK_EXT_color_write_enable 1
21446#define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
21447#define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
21448typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT {
21449 VkStructureType sType;
21450 void* pNext;
21451 VkBool32 colorWriteEnable;
21452} VkPhysicalDeviceColorWriteEnableFeaturesEXT;
21453
21454typedef struct VkPipelineColorWriteCreateInfoEXT {
21455 VkStructureType sType;
21456 const void* pNext;
21457 uint32_t attachmentCount;
21458 const VkBool32* pColorWriteEnables;
21459} VkPipelineColorWriteCreateInfoEXT;
21460
21461typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables);
21462
21463#ifndef VK_NO_PROTOTYPES
21464#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21465VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteEnableEXT(
21466 VkCommandBuffer commandBuffer,
21467 uint32_t attachmentCount,
21468 const VkBool32* pColorWriteEnables);
21469#endif
21470#endif
21471
21472
21473// VK_EXT_primitives_generated_query is a preprocessor guard. Do not pass it to API calls.
21474#define VK_EXT_primitives_generated_query 1
21475#define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
21476#define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
21477typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
21478 VkStructureType sType;
21479 void* pNext;
21480 VkBool32 primitivesGeneratedQuery;
21481 VkBool32 primitivesGeneratedQueryWithRasterizerDiscard;
21482 VkBool32 primitivesGeneratedQueryWithNonZeroStreams;
21483} VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
21484
21485
21486
21487// VK_EXT_global_priority_query is a preprocessor guard. Do not pass it to API calls.
21488#define VK_EXT_global_priority_query 1
21489#define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
21490#define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
21491#define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT VK_MAX_GLOBAL_PRIORITY_SIZE
21492typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
21493
21494typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesEXT;
21495
21496
21497
21498// VK_VALVE_video_encode_rgb_conversion is a preprocessor guard. Do not pass it to API calls.
21499#define VK_VALVE_video_encode_rgb_conversion 1
21500#define VK_VALVE_VIDEO_ENCODE_RGB_CONVERSION_SPEC_VERSION 1
21501#define VK_VALVE_VIDEO_ENCODE_RGB_CONVERSION_EXTENSION_NAME "VK_VALVE_video_encode_rgb_conversion"
21502
21503typedef enum VkVideoEncodeRgbModelConversionFlagBitsVALVE {
21504 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_RGB_IDENTITY_BIT_VALVE = 0x00000001,
21505 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_IDENTITY_BIT_VALVE = 0x00000002,
21506 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_709_BIT_VALVE = 0x00000004,
21507 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_601_BIT_VALVE = 0x00000008,
21508 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_2020_BIT_VALVE = 0x00000010,
21509 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
21510} VkVideoEncodeRgbModelConversionFlagBitsVALVE;
21511typedef VkFlags VkVideoEncodeRgbModelConversionFlagsVALVE;
21512
21513typedef enum VkVideoEncodeRgbRangeCompressionFlagBitsVALVE {
21514 VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_FULL_RANGE_BIT_VALVE = 0x00000001,
21515 VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_NARROW_RANGE_BIT_VALVE = 0x00000002,
21516 VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
21517} VkVideoEncodeRgbRangeCompressionFlagBitsVALVE;
21518typedef VkFlags VkVideoEncodeRgbRangeCompressionFlagsVALVE;
21519
21520typedef enum VkVideoEncodeRgbChromaOffsetFlagBitsVALVE {
21521 VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_COSITED_EVEN_BIT_VALVE = 0x00000001,
21522 VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_MIDPOINT_BIT_VALVE = 0x00000002,
21523 VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
21524} VkVideoEncodeRgbChromaOffsetFlagBitsVALVE;
21525typedef VkFlags VkVideoEncodeRgbChromaOffsetFlagsVALVE;
21526typedef struct VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {
21527 VkStructureType sType;
21528 void* pNext;
21529 VkBool32 videoEncodeRgbConversion;
21530} VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE;
21531
21532typedef struct VkVideoEncodeRgbConversionCapabilitiesVALVE {
21533 VkStructureType sType;
21534 void* pNext;
21535 VkVideoEncodeRgbModelConversionFlagsVALVE rgbModels;
21536 VkVideoEncodeRgbRangeCompressionFlagsVALVE rgbRanges;
21537 VkVideoEncodeRgbChromaOffsetFlagsVALVE xChromaOffsets;
21538 VkVideoEncodeRgbChromaOffsetFlagsVALVE yChromaOffsets;
21539} VkVideoEncodeRgbConversionCapabilitiesVALVE;
21540
21541typedef struct VkVideoEncodeProfileRgbConversionInfoVALVE {
21542 VkStructureType sType;
21543 const void* pNext;
21544 VkBool32 performEncodeRgbConversion;
21545} VkVideoEncodeProfileRgbConversionInfoVALVE;
21546
21547typedef struct VkVideoEncodeSessionRgbConversionCreateInfoVALVE {
21548 VkStructureType sType;
21549 const void* pNext;
21550 VkVideoEncodeRgbModelConversionFlagBitsVALVE rgbModel;
21551 VkVideoEncodeRgbRangeCompressionFlagBitsVALVE rgbRange;
21552 VkVideoEncodeRgbChromaOffsetFlagBitsVALVE xChromaOffset;
21553 VkVideoEncodeRgbChromaOffsetFlagBitsVALVE yChromaOffset;
21554} VkVideoEncodeSessionRgbConversionCreateInfoVALVE;
21555
21556
21557
21558// VK_EXT_image_view_min_lod is a preprocessor guard. Do not pass it to API calls.
21559#define VK_EXT_image_view_min_lod 1
21560#define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
21561#define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
21562typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT {
21563 VkStructureType sType;
21564 void* pNext;
21565 VkBool32 minLod;
21566} VkPhysicalDeviceImageViewMinLodFeaturesEXT;
21567
21568typedef struct VkImageViewMinLodCreateInfoEXT {
21569 VkStructureType sType;
21570 const void* pNext;
21571 float minLod;
21572} VkImageViewMinLodCreateInfoEXT;
21573
21574
21575
21576// VK_EXT_multi_draw is a preprocessor guard. Do not pass it to API calls.
21577#define VK_EXT_multi_draw 1
21578#define VK_EXT_MULTI_DRAW_SPEC_VERSION 1
21579#define VK_EXT_MULTI_DRAW_EXTENSION_NAME "VK_EXT_multi_draw"
21580typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT {
21581 VkStructureType sType;
21582 void* pNext;
21583 VkBool32 multiDraw;
21584} VkPhysicalDeviceMultiDrawFeaturesEXT;
21585
21586typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT {
21587 VkStructureType sType;
21588 void* pNext;
21589 uint32_t maxMultiDrawCount;
21590} VkPhysicalDeviceMultiDrawPropertiesEXT;
21591
21592typedef struct VkMultiDrawInfoEXT {
21593 uint32_t firstVertex;
21594 uint32_t vertexCount;
21595} VkMultiDrawInfoEXT;
21596
21597typedef struct VkMultiDrawIndexedInfoEXT {
21598 uint32_t firstIndex;
21599 uint32_t indexCount;
21600 int32_t vertexOffset;
21601} VkMultiDrawIndexedInfoEXT;
21602
21603typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
21604typedef 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);
21605
21606#ifndef VK_NO_PROTOTYPES
21607#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21608VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT(
21609 VkCommandBuffer commandBuffer,
21610 uint32_t drawCount,
21611 const VkMultiDrawInfoEXT* pVertexInfo,
21612 uint32_t instanceCount,
21613 uint32_t firstInstance,
21614 uint32_t stride);
21615#endif
21616
21617#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21618VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
21619 VkCommandBuffer commandBuffer,
21620 uint32_t drawCount,
21621 const VkMultiDrawIndexedInfoEXT* pIndexInfo,
21622 uint32_t instanceCount,
21623 uint32_t firstInstance,
21624 uint32_t stride,
21625 const int32_t* pVertexOffset);
21626#endif
21627#endif
21628
21629
21630// VK_EXT_image_2d_view_of_3d is a preprocessor guard. Do not pass it to API calls.
21631#define VK_EXT_image_2d_view_of_3d 1
21632#define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
21633#define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
21634typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT {
21635 VkStructureType sType;
21636 void* pNext;
21637 VkBool32 image2DViewOf3D;
21638 VkBool32 sampler2DViewOf3D;
21639} VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
21640
21641
21642
21643// VK_EXT_shader_tile_image is a preprocessor guard. Do not pass it to API calls.
21644#define VK_EXT_shader_tile_image 1
21645#define VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION 1
21646#define VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME "VK_EXT_shader_tile_image"
21647typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT {
21648 VkStructureType sType;
21649 void* pNext;
21650 VkBool32 shaderTileImageColorReadAccess;
21651 VkBool32 shaderTileImageDepthReadAccess;
21652 VkBool32 shaderTileImageStencilReadAccess;
21653} VkPhysicalDeviceShaderTileImageFeaturesEXT;
21654
21655typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT {
21656 VkStructureType sType;
21657 void* pNext;
21658 VkBool32 shaderTileImageCoherentReadAccelerated;
21659 VkBool32 shaderTileImageReadSampleFromPixelRateInvocation;
21660 VkBool32 shaderTileImageReadFromHelperInvocation;
21661} VkPhysicalDeviceShaderTileImagePropertiesEXT;
21662
21663
21664
21665// VK_EXT_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
21666#define VK_EXT_opacity_micromap 1
21667VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT)
21668#define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2
21669#define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap"
21670
21671typedef enum VkMicromapTypeEXT {
21672 VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0,
21673#ifdef VK_ENABLE_BETA_EXTENSIONS
21674 VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV = 1000397000,
21675#endif
21676 VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
21677} VkMicromapTypeEXT;
21678
21679typedef enum VkBuildMicromapModeEXT {
21680 VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0,
21681 VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
21682} VkBuildMicromapModeEXT;
21683
21684typedef enum VkCopyMicromapModeEXT {
21685 VK_COPY_MICROMAP_MODE_CLONE_EXT = 0,
21686 VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1,
21687 VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2,
21688 VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3,
21689 VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
21690} VkCopyMicromapModeEXT;
21691typedef VkOpacityMicromapFormatKHR VkOpacityMicromapFormatEXT;
21692
21693typedef VkOpacityMicromapSpecialIndexKHR VkOpacityMicromapSpecialIndexEXT;
21694
21695
21696typedef enum VkAccelerationStructureCompatibilityKHR {
21697 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
21698 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
21699 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
21700} VkAccelerationStructureCompatibilityKHR;
21701
21702typedef enum VkAccelerationStructureBuildTypeKHR {
21703 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
21704 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
21705 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
21706 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
21707} VkAccelerationStructureBuildTypeKHR;
21708
21709typedef enum VkBuildMicromapFlagBitsEXT {
21710 VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x00000001,
21711 VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x00000002,
21712 VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0x00000004,
21713 VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
21714} VkBuildMicromapFlagBitsEXT;
21715typedef VkFlags VkBuildMicromapFlagsEXT;
21716
21717typedef enum VkMicromapCreateFlagBitsEXT {
21718 VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000001,
21719 VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
21720} VkMicromapCreateFlagBitsEXT;
21721typedef VkFlags VkMicromapCreateFlagsEXT;
21722typedef struct VkMicromapUsageEXT {
21723 uint32_t count;
21724 uint32_t subdivisionLevel;
21725 uint32_t format;
21726} VkMicromapUsageEXT;
21727
21728typedef union VkDeviceOrHostAddressKHR {
21729 VkDeviceAddress deviceAddress;
21730 void* hostAddress;
21731} VkDeviceOrHostAddressKHR;
21732
21733typedef struct VkMicromapBuildInfoEXT {
21734 VkStructureType sType;
21735 const void* pNext;
21736 VkMicromapTypeEXT type;
21737 VkBuildMicromapFlagsEXT flags;
21738 VkBuildMicromapModeEXT mode;
21739 VkMicromapEXT dstMicromap;
21740 uint32_t usageCountsCount;
21741 const VkMicromapUsageEXT* pUsageCounts;
21742 const VkMicromapUsageEXT* const* ppUsageCounts;
21743 VkDeviceOrHostAddressConstKHR data;
21744 VkDeviceOrHostAddressKHR scratchData;
21745 VkDeviceOrHostAddressConstKHR triangleArray;
21746 VkDeviceSize triangleArrayStride;
21747} VkMicromapBuildInfoEXT;
21748
21749typedef struct VkMicromapCreateInfoEXT {
21750 VkStructureType sType;
21751 const void* pNext;
21752 VkMicromapCreateFlagsEXT createFlags;
21753 VkBuffer buffer;
21754 VkDeviceSize offset;
21755 VkDeviceSize size;
21756 VkMicromapTypeEXT type;
21757 VkDeviceAddress deviceAddress;
21758} VkMicromapCreateInfoEXT;
21759
21760typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT {
21761 VkStructureType sType;
21762 void* pNext;
21763 VkBool32 micromap;
21764 VkBool32 micromapCaptureReplay;
21765 // micromapHostCommands is legacy, but no reason was given in the API XML
21766 VkBool32 micromapHostCommands;
21767} VkPhysicalDeviceOpacityMicromapFeaturesEXT;
21768
21769typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT {
21770 VkStructureType sType;
21771 void* pNext;
21772 uint32_t maxOpacity2StateSubdivisionLevel;
21773 uint32_t maxOpacity4StateSubdivisionLevel;
21774} VkPhysicalDeviceOpacityMicromapPropertiesEXT;
21775
21776typedef struct VkMicromapVersionInfoEXT {
21777 VkStructureType sType;
21778 const void* pNext;
21779 const uint8_t* pVersionData;
21780} VkMicromapVersionInfoEXT;
21781
21782typedef struct VkCopyMicromapToMemoryInfoEXT {
21783 VkStructureType sType;
21784 const void* pNext;
21785 VkMicromapEXT src;
21786 VkDeviceOrHostAddressKHR dst;
21787 VkCopyMicromapModeEXT mode;
21788} VkCopyMicromapToMemoryInfoEXT;
21789
21790typedef struct VkCopyMemoryToMicromapInfoEXT {
21791 VkStructureType sType;
21792 const void* pNext;
21793 VkDeviceOrHostAddressConstKHR src;
21794 VkMicromapEXT dst;
21795 VkCopyMicromapModeEXT mode;
21796} VkCopyMemoryToMicromapInfoEXT;
21797
21798typedef struct VkCopyMicromapInfoEXT {
21799 VkStructureType sType;
21800 const void* pNext;
21801 VkMicromapEXT src;
21802 VkMicromapEXT dst;
21803 VkCopyMicromapModeEXT mode;
21804} VkCopyMicromapInfoEXT;
21805
21806typedef struct VkMicromapBuildSizesInfoEXT {
21807 VkStructureType sType;
21808 const void* pNext;
21809 VkDeviceSize micromapSize;
21810 VkDeviceSize buildScratchSize;
21811 VkBool32 discardable;
21812} VkMicromapBuildSizesInfoEXT;
21813
21814typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT {
21815 VkStructureType sType;
21816 void* pNext;
21817 VkIndexType indexType;
21818 VkDeviceOrHostAddressConstKHR indexBuffer;
21819 VkDeviceSize indexStride;
21820 uint32_t baseTriangle;
21821 uint32_t usageCountsCount;
21822 const VkMicromapUsageEXT* pUsageCounts;
21823 const VkMicromapUsageEXT* const* ppUsageCounts;
21824 VkMicromapEXT micromap;
21825} VkAccelerationStructureTrianglesOpacityMicromapEXT;
21826
21827typedef VkMicromapTriangleKHR VkMicromapTriangleEXT;
21828
21829typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice device, const VkMicromapCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkMicromapEXT* pMicromap);
21830typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator);
21831typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
21832typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
21833typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo);
21834typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo);
21835typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo);
21836typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
21837typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo);
21838typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo);
21839typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo);
21840typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
21841typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
21842typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkMicromapBuildInfoEXT* pBuildInfo, VkMicromapBuildSizesInfoEXT* pSizeInfo);
21843
21844#ifndef VK_NO_PROTOTYPES
21845#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21846VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT(
21847 VkDevice device,
21848 const VkMicromapCreateInfoEXT* pCreateInfo,
21849 const VkAllocationCallbacks* pAllocator,
21850 VkMicromapEXT* pMicromap);
21851#endif
21852
21853#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21854VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT(
21855 VkDevice device,
21856 VkMicromapEXT micromap,
21857 const VkAllocationCallbacks* pAllocator);
21858#endif
21859
21860#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21861VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT(
21862 VkCommandBuffer commandBuffer,
21863 uint32_t infoCount,
21864 const VkMicromapBuildInfoEXT* pInfos);
21865#endif
21866
21867#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21868VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT(
21869 VkDevice device,
21870 VkDeferredOperationKHR deferredOperation,
21871 uint32_t infoCount,
21872 const VkMicromapBuildInfoEXT* pInfos);
21873#endif
21874
21875#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21876VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT(
21877 VkDevice device,
21878 VkDeferredOperationKHR deferredOperation,
21879 const VkCopyMicromapInfoEXT* pInfo);
21880#endif
21881
21882#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21883VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT(
21884 VkDevice device,
21885 VkDeferredOperationKHR deferredOperation,
21886 const VkCopyMicromapToMemoryInfoEXT* pInfo);
21887#endif
21888
21889#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21890VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT(
21891 VkDevice device,
21892 VkDeferredOperationKHR deferredOperation,
21893 const VkCopyMemoryToMicromapInfoEXT* pInfo);
21894#endif
21895
21896#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21897VKAPI_ATTR VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(
21898 VkDevice device,
21899 uint32_t micromapCount,
21900 const VkMicromapEXT* pMicromaps,
21901 VkQueryType queryType,
21902 size_t dataSize,
21903 void* pData,
21904 size_t stride);
21905#endif
21906
21907#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21908VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapEXT(
21909 VkCommandBuffer commandBuffer,
21910 const VkCopyMicromapInfoEXT* pInfo);
21911#endif
21912
21913#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21914VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT(
21915 VkCommandBuffer commandBuffer,
21916 const VkCopyMicromapToMemoryInfoEXT* pInfo);
21917#endif
21918
21919#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21920VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT(
21921 VkCommandBuffer commandBuffer,
21922 const VkCopyMemoryToMicromapInfoEXT* pInfo);
21923#endif
21924
21925#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21926VKAPI_ATTR void VKAPI_CALL vkCmdWriteMicromapsPropertiesEXT(
21927 VkCommandBuffer commandBuffer,
21928 uint32_t micromapCount,
21929 const VkMicromapEXT* pMicromaps,
21930 VkQueryType queryType,
21931 VkQueryPool queryPool,
21932 uint32_t firstQuery);
21933#endif
21934
21935#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21936VKAPI_ATTR void VKAPI_CALL vkGetDeviceMicromapCompatibilityEXT(
21937 VkDevice device,
21938 const VkMicromapVersionInfoEXT* pVersionInfo,
21939 VkAccelerationStructureCompatibilityKHR* pCompatibility);
21940#endif
21941
21942#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21943VKAPI_ATTR void VKAPI_CALL vkGetMicromapBuildSizesEXT(
21944 VkDevice device,
21945 VkAccelerationStructureBuildTypeKHR buildType,
21946 const VkMicromapBuildInfoEXT* pBuildInfo,
21947 VkMicromapBuildSizesInfoEXT* pSizeInfo);
21948#endif
21949#endif
21950
21951
21952// VK_EXT_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
21953#define VK_EXT_load_store_op_none 1
21954#define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
21955#define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
21956
21957
21958// VK_HUAWEI_cluster_culling_shader is a preprocessor guard. Do not pass it to API calls.
21959#define VK_HUAWEI_cluster_culling_shader 1
21960#define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 3
21961#define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader"
21962typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
21963 VkStructureType sType;
21964 void* pNext;
21965 VkBool32 clustercullingShader;
21966 VkBool32 multiviewClusterCullingShader;
21967} VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
21968
21969typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
21970 VkStructureType sType;
21971 void* pNext;
21972 uint32_t maxWorkGroupCount[3];
21973 uint32_t maxWorkGroupSize[3];
21974 uint32_t maxOutputClusterCount;
21975 VkDeviceSize indirectBufferOffsetAlignment;
21976} VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
21977
21978typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
21979 VkStructureType sType;
21980 void* pNext;
21981 VkBool32 clusterShadingRate;
21982} VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
21983
21984typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterHUAWEI)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
21985typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
21986
21987#ifndef VK_NO_PROTOTYPES
21988#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21989VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterHUAWEI(
21990 VkCommandBuffer commandBuffer,
21991 uint32_t groupCountX,
21992 uint32_t groupCountY,
21993 uint32_t groupCountZ);
21994#endif
21995
21996#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21997VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI(
21998 VkCommandBuffer commandBuffer,
21999 VkBuffer buffer,
22000 VkDeviceSize offset);
22001#endif
22002#endif
22003
22004
22005// VK_EXT_border_color_swizzle is a preprocessor guard. Do not pass it to API calls.
22006#define VK_EXT_border_color_swizzle 1
22007#define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
22008#define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
22009typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT {
22010 VkStructureType sType;
22011 void* pNext;
22012 VkBool32 borderColorSwizzle;
22013 VkBool32 borderColorSwizzleFromImage;
22014} VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
22015
22016typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT {
22017 VkStructureType sType;
22018 const void* pNext;
22019 VkComponentMapping components;
22020 VkBool32 srgb;
22021} VkSamplerBorderColorComponentMappingCreateInfoEXT;
22022
22023
22024
22025// VK_EXT_pageable_device_local_memory is a preprocessor guard. Do not pass it to API calls.
22026#define VK_EXT_pageable_device_local_memory 1
22027#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
22028#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
22029typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
22030 VkStructureType sType;
22031 void* pNext;
22032 VkBool32 pageableDeviceLocalMemory;
22033} VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
22034
22035typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice device, VkDeviceMemory memory, float priority);
22036
22037#ifndef VK_NO_PROTOTYPES
22038#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22039VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
22040 VkDevice device,
22041 VkDeviceMemory memory,
22042 float priority);
22043#endif
22044#endif
22045
22046
22047// VK_ARM_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
22048#define VK_ARM_shader_core_properties 1
22049#define VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
22050#define VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_ARM_shader_core_properties"
22051typedef struct VkPhysicalDeviceShaderCorePropertiesARM {
22052 VkStructureType sType;
22053 void* pNext;
22054 uint32_t pixelRate;
22055 uint32_t texelRate;
22056 uint32_t fmaRate;
22057} VkPhysicalDeviceShaderCorePropertiesARM;
22058
22059
22060
22061// VK_ARM_scheduling_controls is a preprocessor guard. Do not pass it to API calls.
22062#define VK_ARM_scheduling_controls 1
22063#define VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION 2
22064#define VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME "VK_ARM_scheduling_controls"
22065typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM;
22066
22067// Flag bits for VkPhysicalDeviceSchedulingControlsFlagBitsARM
22068typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagBitsARM;
22069static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = 0x00000001ULL;
22070static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_DISPATCH_PARAMETERS_ARM = 0x00000002ULL;
22071
22072typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM {
22073 VkStructureType sType;
22074 void* pNext;
22075 uint32_t shaderCoreCount;
22076} VkDeviceQueueShaderCoreControlCreateInfoARM;
22077
22078typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM {
22079 VkStructureType sType;
22080 void* pNext;
22081 VkBool32 schedulingControls;
22082} VkPhysicalDeviceSchedulingControlsFeaturesARM;
22083
22084typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM {
22085 VkStructureType sType;
22086 void* pNext;
22087 VkPhysicalDeviceSchedulingControlsFlagsARM schedulingControlsFlags;
22088} VkPhysicalDeviceSchedulingControlsPropertiesARM;
22089
22090typedef struct VkDispatchParametersARM {
22091 VkStructureType sType;
22092 void* pNext;
22093 uint32_t workGroupBatchSize;
22094 uint32_t maxQueuedWorkGroupBatches;
22095 uint32_t maxWarpsPerShaderCore;
22096} VkDispatchParametersARM;
22097
22098typedef struct VkPhysicalDeviceSchedulingControlsDispatchParametersPropertiesARM {
22099 VkStructureType sType;
22100 void* pNext;
22101 uint32_t schedulingControlsMaxWarpsCount;
22102 uint32_t schedulingControlsMaxQueuedBatchesCount;
22103 uint32_t schedulingControlsMaxWorkGroupBatchSize;
22104} VkPhysicalDeviceSchedulingControlsDispatchParametersPropertiesARM;
22105
22106typedef void (VKAPI_PTR *PFN_vkCmdSetDispatchParametersARM)(VkCommandBuffer commandBuffer, const VkDispatchParametersARM* pDispatchParameters);
22107
22108#ifndef VK_NO_PROTOTYPES
22109#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22110VKAPI_ATTR void VKAPI_CALL vkCmdSetDispatchParametersARM(
22111 VkCommandBuffer commandBuffer,
22112 const VkDispatchParametersARM* pDispatchParameters);
22113#endif
22114#endif
22115
22116
22117// VK_EXT_image_sliced_view_of_3d is a preprocessor guard. Do not pass it to API calls.
22118#define VK_EXT_image_sliced_view_of_3d 1
22119#define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION 1
22120#define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_sliced_view_of_3d"
22121#define VK_REMAINING_3D_SLICES_EXT (~0U)
22122typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
22123 VkStructureType sType;
22124 void* pNext;
22125 VkBool32 imageSlicedViewOf3D;
22126} VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
22127
22128typedef struct VkImageViewSlicedCreateInfoEXT {
22129 VkStructureType sType;
22130 const void* pNext;
22131 uint32_t sliceOffset;
22132 uint32_t sliceCount;
22133} VkImageViewSlicedCreateInfoEXT;
22134
22135
22136
22137// VK_VALVE_descriptor_set_host_mapping is a preprocessor guard. Do not pass it to API calls.
22138#define VK_VALVE_descriptor_set_host_mapping 1
22139#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
22140#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
22141typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
22142 VkStructureType sType;
22143 void* pNext;
22144 VkBool32 descriptorSetHostMapping;
22145} VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
22146
22147typedef struct VkDescriptorSetBindingReferenceVALVE {
22148 VkStructureType sType;
22149 const void* pNext;
22150 VkDescriptorSetLayout descriptorSetLayout;
22151 uint32_t binding;
22152} VkDescriptorSetBindingReferenceVALVE;
22153
22154typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE {
22155 VkStructureType sType;
22156 void* pNext;
22157 size_t descriptorOffset;
22158 uint32_t descriptorSize;
22159} VkDescriptorSetLayoutHostMappingInfoVALVE;
22160
22161typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
22162typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
22163
22164#ifndef VK_NO_PROTOTYPES
22165#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22166VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE(
22167 VkDevice device,
22168 const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
22169 VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
22170#endif
22171
22172#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22173VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
22174 VkDevice device,
22175 VkDescriptorSet descriptorSet,
22176 void** ppData);
22177#endif
22178#endif
22179
22180
22181// VK_EXT_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
22182#define VK_EXT_depth_clamp_zero_one 1
22183#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
22184#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one"
22185typedef VkPhysicalDeviceDepthClampZeroOneFeaturesKHR VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
22186
22187
22188
22189// VK_EXT_non_seamless_cube_map is a preprocessor guard. Do not pass it to API calls.
22190#define VK_EXT_non_seamless_cube_map 1
22191#define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1
22192#define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
22193typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
22194 VkStructureType sType;
22195 void* pNext;
22196 VkBool32 nonSeamlessCubeMap;
22197} VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
22198
22199
22200
22201// VK_ARM_render_pass_striped is a preprocessor guard. Do not pass it to API calls.
22202#define VK_ARM_render_pass_striped 1
22203#define VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION 1
22204#define VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME "VK_ARM_render_pass_striped"
22205typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM {
22206 VkStructureType sType;
22207 void* pNext;
22208 VkBool32 renderPassStriped;
22209} VkPhysicalDeviceRenderPassStripedFeaturesARM;
22210
22211typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM {
22212 VkStructureType sType;
22213 void* pNext;
22214 VkExtent2D renderPassStripeGranularity;
22215 uint32_t maxRenderPassStripes;
22216} VkPhysicalDeviceRenderPassStripedPropertiesARM;
22217
22218typedef struct VkRenderPassStripeInfoARM {
22219 VkStructureType sType;
22220 const void* pNext;
22221 VkRect2D stripeArea;
22222} VkRenderPassStripeInfoARM;
22223
22224typedef struct VkRenderPassStripeBeginInfoARM {
22225 VkStructureType sType;
22226 const void* pNext;
22227 uint32_t stripeInfoCount;
22228 const VkRenderPassStripeInfoARM* pStripeInfos;
22229} VkRenderPassStripeBeginInfoARM;
22230
22231typedef struct VkRenderPassStripeSubmitInfoARM {
22232 VkStructureType sType;
22233 const void* pNext;
22234 uint32_t stripeSemaphoreInfoCount;
22235 const VkSemaphoreSubmitInfo* pStripeSemaphoreInfos;
22236} VkRenderPassStripeSubmitInfoARM;
22237
22238
22239
22240// VK_QCOM_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
22241#define VK_QCOM_fragment_density_map_offset 1
22242#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 3
22243#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
22244typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {
22245 VkStructureType sType;
22246 void* pNext;
22247 VkBool32 fragmentDensityMapOffset;
22248} VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT;
22249
22250typedef VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
22251
22252typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {
22253 VkStructureType sType;
22254 void* pNext;
22255 VkExtent2D fragmentDensityOffsetGranularity;
22256} VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT;
22257
22258typedef VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
22259
22260typedef struct VkRenderPassFragmentDensityMapOffsetEndInfoEXT {
22261 VkStructureType sType;
22262 const void* pNext;
22263 uint32_t fragmentDensityOffsetCount;
22264 const VkOffset2D* pFragmentDensityOffsets;
22265} VkRenderPassFragmentDensityMapOffsetEndInfoEXT;
22266
22267typedef VkRenderPassFragmentDensityMapOffsetEndInfoEXT VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
22268
22269
22270
22271// VK_NV_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
22272#define VK_NV_copy_memory_indirect 1
22273#define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
22274#define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect"
22275typedef VkCopyMemoryIndirectCommandKHR VkCopyMemoryIndirectCommandNV;
22276
22277typedef VkCopyMemoryToImageIndirectCommandKHR VkCopyMemoryToImageIndirectCommandNV;
22278
22279typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV {
22280 VkStructureType sType;
22281 void* pNext;
22282 VkBool32 indirectCopy;
22283} VkPhysicalDeviceCopyMemoryIndirectFeaturesNV;
22284
22285typedef VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR VkPhysicalDeviceCopyMemoryIndirectPropertiesNV;
22286
22287typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride);
22288typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources);
22289
22290#ifndef VK_NO_PROTOTYPES
22291#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22292VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectNV(
22293 VkCommandBuffer commandBuffer,
22294 VkDeviceAddress copyBufferAddress,
22295 uint32_t copyCount,
22296 uint32_t stride);
22297#endif
22298
22299#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22300VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectNV(
22301 VkCommandBuffer commandBuffer,
22302 VkDeviceAddress copyBufferAddress,
22303 uint32_t copyCount,
22304 uint32_t stride,
22305 VkImage dstImage,
22306 VkImageLayout dstImageLayout,
22307 const VkImageSubresourceLayers* pImageSubresources);
22308#endif
22309#endif
22310
22311
22312// VK_NV_memory_decompression is a preprocessor guard. Do not pass it to API calls.
22313#define VK_NV_memory_decompression 1
22314#define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1
22315#define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression"
22316
22317// Flag bits for VkMemoryDecompressionMethodFlagBitsEXT
22318typedef VkFlags64 VkMemoryDecompressionMethodFlagBitsEXT;
22319static const VkMemoryDecompressionMethodFlagBitsEXT VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT = 0x00000001ULL;
22320static const VkMemoryDecompressionMethodFlagBitsEXT VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL;
22321
22322typedef VkMemoryDecompressionMethodFlagBitsEXT VkMemoryDecompressionMethodFlagBitsNV;
22323
22324typedef VkFlags64 VkMemoryDecompressionMethodFlagsEXT;
22325typedef VkMemoryDecompressionMethodFlagsEXT VkMemoryDecompressionMethodFlagsNV;
22326
22327typedef struct VkDecompressMemoryRegionNV {
22328 VkDeviceAddress srcAddress;
22329 VkDeviceAddress dstAddress;
22330 VkDeviceSize compressedSize;
22331 VkDeviceSize decompressedSize;
22332 VkMemoryDecompressionMethodFlagsEXT decompressionMethod;
22333} VkDecompressMemoryRegionNV;
22334
22335typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesEXT {
22336 VkStructureType sType;
22337 void* pNext;
22338 VkBool32 memoryDecompression;
22339} VkPhysicalDeviceMemoryDecompressionFeaturesEXT;
22340
22341typedef VkPhysicalDeviceMemoryDecompressionFeaturesEXT VkPhysicalDeviceMemoryDecompressionFeaturesNV;
22342
22343typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesEXT {
22344 VkStructureType sType;
22345 void* pNext;
22346 VkMemoryDecompressionMethodFlagsEXT decompressionMethods;
22347 uint64_t maxDecompressionIndirectCount;
22348} VkPhysicalDeviceMemoryDecompressionPropertiesEXT;
22349
22350typedef VkPhysicalDeviceMemoryDecompressionPropertiesEXT VkPhysicalDeviceMemoryDecompressionPropertiesNV;
22351
22352typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryNV)(VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
22353typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride);
22354
22355#ifndef VK_NO_PROTOTYPES
22356#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22357VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryNV(
22358 VkCommandBuffer commandBuffer,
22359 uint32_t decompressRegionCount,
22360 const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
22361#endif
22362
22363#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22364VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountNV(
22365 VkCommandBuffer commandBuffer,
22366 VkDeviceAddress indirectCommandsAddress,
22367 VkDeviceAddress indirectCommandsCountAddress,
22368 uint32_t stride);
22369#endif
22370#endif
22371
22372
22373// VK_NV_device_generated_commands_compute is a preprocessor guard. Do not pass it to API calls.
22374#define VK_NV_device_generated_commands_compute 1
22375#define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION 2
22376#define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME "VK_NV_device_generated_commands_compute"
22377typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
22378 VkStructureType sType;
22379 void* pNext;
22380 VkBool32 deviceGeneratedCompute;
22381 VkBool32 deviceGeneratedComputePipelines;
22382 VkBool32 deviceGeneratedComputeCaptureReplay;
22383} VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
22384
22385typedef struct VkComputePipelineIndirectBufferInfoNV {
22386 VkStructureType sType;
22387 const void* pNext;
22388 VkDeviceAddress deviceAddress;
22389 VkDeviceSize size;
22390 VkDeviceAddress pipelineDeviceAddressCaptureReplay;
22391} VkComputePipelineIndirectBufferInfoNV;
22392
22393typedef struct VkPipelineIndirectDeviceAddressInfoNV {
22394 VkStructureType sType;
22395 const void* pNext;
22396 VkPipelineBindPoint pipelineBindPoint;
22397 VkPipeline pipeline;
22398} VkPipelineIndirectDeviceAddressInfoNV;
22399
22400typedef struct VkBindPipelineIndirectCommandNV {
22401 VkDeviceAddress pipelineAddress;
22402} VkBindPipelineIndirectCommandNV;
22403
22404typedef void (VKAPI_PTR *PFN_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements);
22405typedef void (VKAPI_PTR *PFN_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
22406typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetPipelineIndirectDeviceAddressNV)(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
22407
22408#ifndef VK_NO_PROTOTYPES
22409#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22410VKAPI_ATTR void VKAPI_CALL vkGetPipelineIndirectMemoryRequirementsNV(
22411 VkDevice device,
22412 const VkComputePipelineCreateInfo* pCreateInfo,
22413 VkMemoryRequirements2* pMemoryRequirements);
22414#endif
22415
22416#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22417VKAPI_ATTR void VKAPI_CALL vkCmdUpdatePipelineIndirectBufferNV(
22418 VkCommandBuffer commandBuffer,
22419 VkPipelineBindPoint pipelineBindPoint,
22420 VkPipeline pipeline);
22421#endif
22422
22423#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22424VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetPipelineIndirectDeviceAddressNV(
22425 VkDevice device,
22426 const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
22427#endif
22428#endif
22429
22430
22431// VK_NV_ray_tracing_linear_swept_spheres is a preprocessor guard. Do not pass it to API calls.
22432#define VK_NV_ray_tracing_linear_swept_spheres 1
22433#define VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION 1
22434#define VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME "VK_NV_ray_tracing_linear_swept_spheres"
22435
22436typedef enum VkRayTracingLssIndexingModeNV {
22437 VK_RAY_TRACING_LSS_INDEXING_MODE_LIST_NV = 0,
22438 VK_RAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NV = 1,
22439 VK_RAY_TRACING_LSS_INDEXING_MODE_MAX_ENUM_NV = 0x7FFFFFFF
22440} VkRayTracingLssIndexingModeNV;
22441
22442typedef enum VkRayTracingLssPrimitiveEndCapsModeNV {
22443 VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_NONE_NV = 0,
22444 VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_CHAINED_NV = 1,
22445 VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_MAX_ENUM_NV = 0x7FFFFFFF
22446} VkRayTracingLssPrimitiveEndCapsModeNV;
22447typedef struct VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
22448 VkStructureType sType;
22449 void* pNext;
22450 VkBool32 spheres;
22451 VkBool32 linearSweptSpheres;
22452} VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV;
22453
22454typedef struct VkAccelerationStructureGeometryLinearSweptSpheresDataNV {
22455 VkStructureType sType;
22456 const void* pNext;
22457 VkFormat vertexFormat;
22458 VkDeviceOrHostAddressConstKHR vertexData;
22459 VkDeviceSize vertexStride;
22460 VkFormat radiusFormat;
22461 VkDeviceOrHostAddressConstKHR radiusData;
22462 VkDeviceSize radiusStride;
22463 VkIndexType indexType;
22464 VkDeviceOrHostAddressConstKHR indexData;
22465 VkDeviceSize indexStride;
22466 VkRayTracingLssIndexingModeNV indexingMode;
22467 VkRayTracingLssPrimitiveEndCapsModeNV endCapsMode;
22468} VkAccelerationStructureGeometryLinearSweptSpheresDataNV;
22469
22470typedef struct VkAccelerationStructureGeometrySpheresDataNV {
22471 VkStructureType sType;
22472 const void* pNext;
22473 VkFormat vertexFormat;
22474 VkDeviceOrHostAddressConstKHR vertexData;
22475 VkDeviceSize vertexStride;
22476 VkFormat radiusFormat;
22477 VkDeviceOrHostAddressConstKHR radiusData;
22478 VkDeviceSize radiusStride;
22479 VkIndexType indexType;
22480 VkDeviceOrHostAddressConstKHR indexData;
22481 VkDeviceSize indexStride;
22482} VkAccelerationStructureGeometrySpheresDataNV;
22483
22484
22485
22486// VK_NV_linear_color_attachment is a preprocessor guard. Do not pass it to API calls.
22487#define VK_NV_linear_color_attachment 1
22488#define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
22489#define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
22490typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV {
22491 VkStructureType sType;
22492 void* pNext;
22493 VkBool32 linearColorAttachment;
22494} VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
22495
22496
22497
22498// VK_GOOGLE_surfaceless_query is a preprocessor guard. Do not pass it to API calls.
22499#define VK_GOOGLE_surfaceless_query 1
22500#define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2
22501#define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
22502
22503
22504// VK_EXT_image_compression_control_swapchain is a preprocessor guard. Do not pass it to API calls.
22505#define VK_EXT_image_compression_control_swapchain 1
22506#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
22507#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
22508typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
22509 VkStructureType sType;
22510 void* pNext;
22511 VkBool32 imageCompressionControlSwapchain;
22512} VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
22513
22514
22515
22516// VK_QCOM_image_processing is a preprocessor guard. Do not pass it to API calls.
22517#define VK_QCOM_image_processing 1
22518#define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1
22519#define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
22520typedef struct VkImageViewSampleWeightCreateInfoQCOM {
22521 VkStructureType sType;
22522 const void* pNext;
22523 VkOffset2D filterCenter;
22524 VkExtent2D filterSize;
22525 uint32_t numPhases;
22526} VkImageViewSampleWeightCreateInfoQCOM;
22527
22528typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM {
22529 VkStructureType sType;
22530 void* pNext;
22531 VkBool32 textureSampleWeighted;
22532 VkBool32 textureBoxFilter;
22533 VkBool32 textureBlockMatch;
22534} VkPhysicalDeviceImageProcessingFeaturesQCOM;
22535
22536typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM {
22537 VkStructureType sType;
22538 void* pNext;
22539 uint32_t maxWeightFilterPhases;
22540 VkExtent2D maxWeightFilterDimension;
22541 VkExtent2D maxBlockMatchRegion;
22542 VkExtent2D maxBoxFilterBlockSize;
22543} VkPhysicalDeviceImageProcessingPropertiesQCOM;
22544
22545
22546
22547// VK_EXT_nested_command_buffer is a preprocessor guard. Do not pass it to API calls.
22548#define VK_EXT_nested_command_buffer 1
22549#define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1
22550#define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer"
22551typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT {
22552 VkStructureType sType;
22553 void* pNext;
22554 VkBool32 nestedCommandBuffer;
22555 VkBool32 nestedCommandBufferRendering;
22556 VkBool32 nestedCommandBufferSimultaneousUse;
22557} VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
22558
22559typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT {
22560 VkStructureType sType;
22561 void* pNext;
22562 uint32_t maxCommandBufferNestingLevel;
22563} VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
22564
22565
22566
22567// VK_EXT_external_memory_acquire_unmodified is a preprocessor guard. Do not pass it to API calls.
22568#define VK_EXT_external_memory_acquire_unmodified 1
22569#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1
22570#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified"
22571typedef struct VkExternalMemoryAcquireUnmodifiedEXT {
22572 VkStructureType sType;
22573 const void* pNext;
22574 VkBool32 acquireUnmodifiedMemory;
22575} VkExternalMemoryAcquireUnmodifiedEXT;
22576
22577
22578
22579// VK_EXT_extended_dynamic_state3 is a preprocessor guard. Do not pass it to API calls.
22580#define VK_EXT_extended_dynamic_state3 1
22581#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2
22582#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3"
22583typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT {
22584 VkStructureType sType;
22585 void* pNext;
22586 VkBool32 extendedDynamicState3TessellationDomainOrigin;
22587 VkBool32 extendedDynamicState3DepthClampEnable;
22588 VkBool32 extendedDynamicState3PolygonMode;
22589 VkBool32 extendedDynamicState3RasterizationSamples;
22590 VkBool32 extendedDynamicState3SampleMask;
22591 VkBool32 extendedDynamicState3AlphaToCoverageEnable;
22592 VkBool32 extendedDynamicState3AlphaToOneEnable;
22593 VkBool32 extendedDynamicState3LogicOpEnable;
22594 VkBool32 extendedDynamicState3ColorBlendEnable;
22595 VkBool32 extendedDynamicState3ColorBlendEquation;
22596 VkBool32 extendedDynamicState3ColorWriteMask;
22597 VkBool32 extendedDynamicState3RasterizationStream;
22598 VkBool32 extendedDynamicState3ConservativeRasterizationMode;
22599 VkBool32 extendedDynamicState3ExtraPrimitiveOverestimationSize;
22600 VkBool32 extendedDynamicState3DepthClipEnable;
22601 VkBool32 extendedDynamicState3SampleLocationsEnable;
22602 VkBool32 extendedDynamicState3ColorBlendAdvanced;
22603 VkBool32 extendedDynamicState3ProvokingVertexMode;
22604 VkBool32 extendedDynamicState3LineRasterizationMode;
22605 VkBool32 extendedDynamicState3LineStippleEnable;
22606 VkBool32 extendedDynamicState3DepthClipNegativeOneToOne;
22607 VkBool32 extendedDynamicState3ViewportWScalingEnable;
22608 VkBool32 extendedDynamicState3ViewportSwizzle;
22609 VkBool32 extendedDynamicState3CoverageToColorEnable;
22610 VkBool32 extendedDynamicState3CoverageToColorLocation;
22611 VkBool32 extendedDynamicState3CoverageModulationMode;
22612 VkBool32 extendedDynamicState3CoverageModulationTableEnable;
22613 VkBool32 extendedDynamicState3CoverageModulationTable;
22614 VkBool32 extendedDynamicState3CoverageReductionMode;
22615 VkBool32 extendedDynamicState3RepresentativeFragmentTestEnable;
22616 VkBool32 extendedDynamicState3ShadingRateImageEnable;
22617} VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
22618
22619typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT {
22620 VkStructureType sType;
22621 void* pNext;
22622 VkBool32 dynamicPrimitiveTopologyUnrestricted;
22623} VkPhysicalDeviceExtendedDynamicState3PropertiesEXT;
22624
22625typedef struct VkColorBlendEquationEXT {
22626 VkBlendFactor srcColorBlendFactor;
22627 VkBlendFactor dstColorBlendFactor;
22628 VkBlendOp colorBlendOp;
22629 VkBlendFactor srcAlphaBlendFactor;
22630 VkBlendFactor dstAlphaBlendFactor;
22631 VkBlendOp alphaBlendOp;
22632} VkColorBlendEquationEXT;
22633
22634typedef struct VkColorBlendAdvancedEXT {
22635 VkBlendOp advancedBlendOp;
22636 VkBool32 srcPremultiplied;
22637 VkBool32 dstPremultiplied;
22638 VkBlendOverlapEXT blendOverlap;
22639 VkBool32 clampResults;
22640} VkColorBlendAdvancedEXT;
22641
22642typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable);
22643typedef void (VKAPI_PTR *PFN_vkCmdSetPolygonModeEXT)(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode);
22644typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples);
22645typedef void (VKAPI_PTR *PFN_vkCmdSetSampleMaskEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits samples, const VkSampleMask* pSampleMask);
22646typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable);
22647typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable);
22648typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 logicOpEnable);
22649typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables);
22650typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations);
22651typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks);
22652typedef void (VKAPI_PTR *PFN_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin);
22653typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer commandBuffer, uint32_t rasterizationStream);
22654typedef void (VKAPI_PTR *PFN_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode);
22655typedef void (VKAPI_PTR *PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize);
22656typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClipEnable);
22657typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable);
22658typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
22659typedef void (VKAPI_PTR *PFN_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode);
22660typedef void (VKAPI_PTR *PFN_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode);
22661typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable);
22662typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne);
22663typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable);
22664typedef void (VKAPI_PTR *PFN_vkCmdSetViewportSwizzleNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles);
22665typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable);
22666typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation);
22667typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode);
22668typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable);
22669typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const float* pCoverageModulationTable);
22670typedef void (VKAPI_PTR *PFN_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable);
22671typedef void (VKAPI_PTR *PFN_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable);
22672typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode);
22673
22674#ifndef VK_NO_PROTOTYPES
22675#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22676VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT(
22677 VkCommandBuffer commandBuffer,
22678 VkBool32 depthClampEnable);
22679#endif
22680
22681#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22682VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT(
22683 VkCommandBuffer commandBuffer,
22684 VkPolygonMode polygonMode);
22685#endif
22686
22687#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22688VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT(
22689 VkCommandBuffer commandBuffer,
22690 VkSampleCountFlagBits rasterizationSamples);
22691#endif
22692
22693#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22694VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT(
22695 VkCommandBuffer commandBuffer,
22696 VkSampleCountFlagBits samples,
22697 const VkSampleMask* pSampleMask);
22698#endif
22699
22700#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22701VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT(
22702 VkCommandBuffer commandBuffer,
22703 VkBool32 alphaToCoverageEnable);
22704#endif
22705
22706#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22707VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT(
22708 VkCommandBuffer commandBuffer,
22709 VkBool32 alphaToOneEnable);
22710#endif
22711
22712#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22713VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT(
22714 VkCommandBuffer commandBuffer,
22715 VkBool32 logicOpEnable);
22716#endif
22717
22718#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22719VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEnableEXT(
22720 VkCommandBuffer commandBuffer,
22721 uint32_t firstAttachment,
22722 uint32_t attachmentCount,
22723 const VkBool32* pColorBlendEnables);
22724#endif
22725
22726#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22727VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEquationEXT(
22728 VkCommandBuffer commandBuffer,
22729 uint32_t firstAttachment,
22730 uint32_t attachmentCount,
22731 const VkColorBlendEquationEXT* pColorBlendEquations);
22732#endif
22733
22734#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22735VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteMaskEXT(
22736 VkCommandBuffer commandBuffer,
22737 uint32_t firstAttachment,
22738 uint32_t attachmentCount,
22739 const VkColorComponentFlags* pColorWriteMasks);
22740#endif
22741
22742#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22743VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT(
22744 VkCommandBuffer commandBuffer,
22745 VkTessellationDomainOrigin domainOrigin);
22746#endif
22747
22748#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22749VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT(
22750 VkCommandBuffer commandBuffer,
22751 uint32_t rasterizationStream);
22752#endif
22753
22754#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22755VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT(
22756 VkCommandBuffer commandBuffer,
22757 VkConservativeRasterizationModeEXT conservativeRasterizationMode);
22758#endif
22759
22760#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22761VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT(
22762 VkCommandBuffer commandBuffer,
22763 float extraPrimitiveOverestimationSize);
22764#endif
22765
22766#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22767VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT(
22768 VkCommandBuffer commandBuffer,
22769 VkBool32 depthClipEnable);
22770#endif
22771
22772#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22773VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT(
22774 VkCommandBuffer commandBuffer,
22775 VkBool32 sampleLocationsEnable);
22776#endif
22777
22778#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22779VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT(
22780 VkCommandBuffer commandBuffer,
22781 uint32_t firstAttachment,
22782 uint32_t attachmentCount,
22783 const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
22784#endif
22785
22786#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22787VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT(
22788 VkCommandBuffer commandBuffer,
22789 VkProvokingVertexModeEXT provokingVertexMode);
22790#endif
22791
22792#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22793VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT(
22794 VkCommandBuffer commandBuffer,
22795 VkLineRasterizationModeEXT lineRasterizationMode);
22796#endif
22797
22798#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22799VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT(
22800 VkCommandBuffer commandBuffer,
22801 VkBool32 stippledLineEnable);
22802#endif
22803
22804#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22805VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT(
22806 VkCommandBuffer commandBuffer,
22807 VkBool32 negativeOneToOne);
22808#endif
22809
22810#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22811VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV(
22812 VkCommandBuffer commandBuffer,
22813 VkBool32 viewportWScalingEnable);
22814#endif
22815
22816#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22817VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV(
22818 VkCommandBuffer commandBuffer,
22819 uint32_t firstViewport,
22820 uint32_t viewportCount,
22821 const VkViewportSwizzleNV* pViewportSwizzles);
22822#endif
22823
22824#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22825VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV(
22826 VkCommandBuffer commandBuffer,
22827 VkBool32 coverageToColorEnable);
22828#endif
22829
22830#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22831VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV(
22832 VkCommandBuffer commandBuffer,
22833 uint32_t coverageToColorLocation);
22834#endif
22835
22836#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22837VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV(
22838 VkCommandBuffer commandBuffer,
22839 VkCoverageModulationModeNV coverageModulationMode);
22840#endif
22841
22842#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22843VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV(
22844 VkCommandBuffer commandBuffer,
22845 VkBool32 coverageModulationTableEnable);
22846#endif
22847
22848#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22849VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV(
22850 VkCommandBuffer commandBuffer,
22851 uint32_t coverageModulationTableCount,
22852 const float* pCoverageModulationTable);
22853#endif
22854
22855#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22856VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV(
22857 VkCommandBuffer commandBuffer,
22858 VkBool32 shadingRateImageEnable);
22859#endif
22860
22861#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22862VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV(
22863 VkCommandBuffer commandBuffer,
22864 VkBool32 representativeFragmentTestEnable);
22865#endif
22866
22867#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22868VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV(
22869 VkCommandBuffer commandBuffer,
22870 VkCoverageReductionModeNV coverageReductionMode);
22871#endif
22872#endif
22873
22874
22875// VK_EXT_subpass_merge_feedback is a preprocessor guard. Do not pass it to API calls.
22876#define VK_EXT_subpass_merge_feedback 1
22877#define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2
22878#define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
22879
22880typedef enum VkSubpassMergeStatusEXT {
22881 VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0,
22882 VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1,
22883 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2,
22884 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3,
22885 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4,
22886 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5,
22887 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6,
22888 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7,
22889 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8,
22890 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9,
22891 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10,
22892 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11,
22893 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12,
22894 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13,
22895 VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 0x7FFFFFFF
22896} VkSubpassMergeStatusEXT;
22897typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
22898 VkStructureType sType;
22899 void* pNext;
22900 VkBool32 subpassMergeFeedback;
22901} VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
22902
22903typedef struct VkRenderPassCreationControlEXT {
22904 VkStructureType sType;
22905 const void* pNext;
22906 VkBool32 disallowMerging;
22907} VkRenderPassCreationControlEXT;
22908
22909typedef struct VkRenderPassCreationFeedbackInfoEXT {
22910 uint32_t postMergeSubpassCount;
22911} VkRenderPassCreationFeedbackInfoEXT;
22912
22913typedef struct VkRenderPassCreationFeedbackCreateInfoEXT {
22914 VkStructureType sType;
22915 const void* pNext;
22916 VkRenderPassCreationFeedbackInfoEXT* pRenderPassFeedback;
22917} VkRenderPassCreationFeedbackCreateInfoEXT;
22918
22919typedef struct VkRenderPassSubpassFeedbackInfoEXT {
22920 VkSubpassMergeStatusEXT subpassMergeStatus;
22921 char description[VK_MAX_DESCRIPTION_SIZE];
22922 uint32_t postMergeIndex;
22923} VkRenderPassSubpassFeedbackInfoEXT;
22924
22925typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT {
22926 VkStructureType sType;
22927 const void* pNext;
22928 VkRenderPassSubpassFeedbackInfoEXT* pSubpassFeedback;
22929} VkRenderPassSubpassFeedbackCreateInfoEXT;
22930
22931
22932
22933// VK_LUNARG_direct_driver_loading is a preprocessor guard. Do not pass it to API calls.
22934#define VK_LUNARG_direct_driver_loading 1
22935#define VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION 1
22936#define VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME "VK_LUNARG_direct_driver_loading"
22937
22938typedef enum VkDirectDriverLoadingModeLUNARG {
22939 VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0,
22940 VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1,
22941 VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 0x7FFFFFFF
22942} VkDirectDriverLoadingModeLUNARG;
22943typedef VkFlags VkDirectDriverLoadingFlagsLUNARG;
22944typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddrLUNARG)(
22945 VkInstance instance,
22946 const char* pName);
22947
22948typedef struct VkDirectDriverLoadingInfoLUNARG {
22949 VkStructureType sType;
22950 void* pNext;
22951 VkDirectDriverLoadingFlagsLUNARG flags;
22952 PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr;
22953} VkDirectDriverLoadingInfoLUNARG;
22954
22955typedef struct VkDirectDriverLoadingListLUNARG {
22956 VkStructureType sType;
22957 const void* pNext;
22958 VkDirectDriverLoadingModeLUNARG mode;
22959 uint32_t driverCount;
22960 const VkDirectDriverLoadingInfoLUNARG* pDrivers;
22961} VkDirectDriverLoadingListLUNARG;
22962
22963
22964
22965// VK_ARM_tensors is a preprocessor guard. Do not pass it to API calls.
22966#define VK_ARM_tensors 1
22967VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorViewARM)
22968#define VK_ARM_TENSORS_SPEC_VERSION 2
22969#define VK_ARM_TENSORS_EXTENSION_NAME "VK_ARM_tensors"
22970
22971typedef enum VkTensorTilingARM {
22972 VK_TENSOR_TILING_OPTIMAL_ARM = 0,
22973 VK_TENSOR_TILING_LINEAR_ARM = 1,
22974 VK_TENSOR_TILING_BRICK_16_WIDE_ARM = 1000565000,
22975 VK_TENSOR_TILING_BRICK_8_WIDE_ARM = 1000565001,
22976 VK_TENSOR_TILING_BRICK_4_WIDE_ARM = 1000565002,
22977 VK_TENSOR_TILING_BLOCK_U_INTERLEAVED_ARM = 1000565003,
22978 VK_TENSOR_TILING_BLOCK_U_INTERLEAVED_64K_ARM = 1000565004,
22979 VK_TENSOR_TILING_MAX_ENUM_ARM = 0x7FFFFFFF
22980} VkTensorTilingARM;
22981typedef VkFlags64 VkTensorCreateFlagsARM;
22982
22983// Flag bits for VkTensorCreateFlagBitsARM
22984typedef VkFlags64 VkTensorCreateFlagBitsARM;
22985static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARM = 0x00000001ULL;
22986static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_PROTECTED_BIT_ARM = 0x00000002ULL;
22987static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_ARM = 0x00000008ULL;
22988static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM = 0x00000004ULL;
22989
22990typedef VkFlags64 VkTensorUsageFlagsARM;
22991
22992// Flag bits for VkTensorUsageFlagBitsARM
22993typedef VkFlags64 VkTensorUsageFlagBitsARM;
22994static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_SHADER_BIT_ARM = 0x00000002ULL;
22995static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_TRANSFER_SRC_BIT_ARM = 0x00000004ULL;
22996static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_TRANSFER_DST_BIT_ARM = 0x00000008ULL;
22997static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_IMAGE_ALIASING_BIT_ARM = 0x00000010ULL;
22998static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_DATA_GRAPH_BIT_ARM = 0x00000020ULL;
22999
23000typedef struct VkTensorDescriptionARM {
23001 VkStructureType sType;
23002 const void* pNext;
23003 VkTensorTilingARM tiling;
23004 VkFormat format;
23005 uint32_t dimensionCount;
23006 const int64_t* pDimensions;
23007 const int64_t* pStrides;
23008 VkTensorUsageFlagsARM usage;
23009} VkTensorDescriptionARM;
23010
23011typedef struct VkTensorCreateInfoARM {
23012 VkStructureType sType;
23013 const void* pNext;
23014 VkTensorCreateFlagsARM flags;
23015 const VkTensorDescriptionARM* pDescription;
23016 VkSharingMode sharingMode;
23017 uint32_t queueFamilyIndexCount;
23018 const uint32_t* pQueueFamilyIndices;
23019} VkTensorCreateInfoARM;
23020
23021typedef struct VkTensorMemoryRequirementsInfoARM {
23022 VkStructureType sType;
23023 const void* pNext;
23024 VkTensorARM tensor;
23025} VkTensorMemoryRequirementsInfoARM;
23026
23027typedef struct VkBindTensorMemoryInfoARM {
23028 VkStructureType sType;
23029 const void* pNext;
23030 VkTensorARM tensor;
23031 VkDeviceMemory memory;
23032 VkDeviceSize memoryOffset;
23033} VkBindTensorMemoryInfoARM;
23034
23035typedef struct VkWriteDescriptorSetTensorARM {
23036 VkStructureType sType;
23037 const void* pNext;
23038 uint32_t tensorViewCount;
23039 const VkTensorViewARM* pTensorViews;
23040} VkWriteDescriptorSetTensorARM;
23041
23042typedef struct VkTensorFormatPropertiesARM {
23043 VkStructureType sType;
23044 void* pNext;
23045 VkFormatFeatureFlags2 optimalTilingTensorFeatures;
23046 VkFormatFeatureFlags2 linearTilingTensorFeatures;
23047} VkTensorFormatPropertiesARM;
23048
23049typedef struct VkPhysicalDeviceTensorPropertiesARM {
23050 VkStructureType sType;
23051 void* pNext;
23052 uint32_t maxTensorDimensionCount;
23053 uint64_t maxTensorElements;
23054 uint64_t maxPerDimensionTensorElements;
23055 int64_t maxTensorStride;
23056 uint64_t maxTensorSize;
23057 uint32_t maxTensorShaderAccessArrayLength;
23058 uint32_t maxTensorShaderAccessSize;
23059 uint32_t maxDescriptorSetStorageTensors;
23060 uint32_t maxPerStageDescriptorSetStorageTensors;
23061 uint32_t maxDescriptorSetUpdateAfterBindStorageTensors;
23062 uint32_t maxPerStageDescriptorUpdateAfterBindStorageTensors;
23063 VkBool32 shaderStorageTensorArrayNonUniformIndexingNative;
23064 VkShaderStageFlags shaderTensorSupportedStages;
23065} VkPhysicalDeviceTensorPropertiesARM;
23066
23067typedef struct VkTensorMemoryBarrierARM {
23068 VkStructureType sType;
23069 const void* pNext;
23070 VkPipelineStageFlags2 srcStageMask;
23071 VkAccessFlags2 srcAccessMask;
23072 VkPipelineStageFlags2 dstStageMask;
23073 VkAccessFlags2 dstAccessMask;
23074 uint32_t srcQueueFamilyIndex;
23075 uint32_t dstQueueFamilyIndex;
23076 VkTensorARM tensor;
23077} VkTensorMemoryBarrierARM;
23078
23079typedef struct VkTensorDependencyInfoARM {
23080 VkStructureType sType;
23081 const void* pNext;
23082 uint32_t tensorMemoryBarrierCount;
23083 const VkTensorMemoryBarrierARM* pTensorMemoryBarriers;
23084} VkTensorDependencyInfoARM;
23085
23086typedef struct VkPhysicalDeviceTensorFeaturesARM {
23087 VkStructureType sType;
23088 void* pNext;
23089 VkBool32 tensorNonPacked;
23090 VkBool32 shaderTensorAccess;
23091 VkBool32 shaderStorageTensorArrayDynamicIndexing;
23092 VkBool32 shaderStorageTensorArrayNonUniformIndexing;
23093 VkBool32 descriptorBindingStorageTensorUpdateAfterBind;
23094 VkBool32 tensors;
23095} VkPhysicalDeviceTensorFeaturesARM;
23096
23097typedef struct VkDeviceTensorMemoryRequirementsARM {
23098 VkStructureType sType;
23099 const void* pNext;
23100 const VkTensorCreateInfoARM* pCreateInfo;
23101} VkDeviceTensorMemoryRequirementsARM;
23102
23103typedef struct VkTensorCopyARM {
23104 VkStructureType sType;
23105 const void* pNext;
23106 uint32_t dimensionCount;
23107 const uint64_t* pSrcOffset;
23108 const uint64_t* pDstOffset;
23109 const uint64_t* pExtent;
23110} VkTensorCopyARM;
23111
23112typedef struct VkCopyTensorInfoARM {
23113 VkStructureType sType;
23114 const void* pNext;
23115 VkTensorARM srcTensor;
23116 VkTensorARM dstTensor;
23117 uint32_t regionCount;
23118 const VkTensorCopyARM* pRegions;
23119} VkCopyTensorInfoARM;
23120
23121typedef struct VkMemoryDedicatedAllocateInfoTensorARM {
23122 VkStructureType sType;
23123 const void* pNext;
23124 VkTensorARM tensor;
23125} VkMemoryDedicatedAllocateInfoTensorARM;
23126
23127typedef struct VkPhysicalDeviceExternalTensorInfoARM {
23128 VkStructureType sType;
23129 const void* pNext;
23130 VkTensorCreateFlagsARM flags;
23131 const VkTensorDescriptionARM* pDescription;
23132 VkExternalMemoryHandleTypeFlagBits handleType;
23133} VkPhysicalDeviceExternalTensorInfoARM;
23134
23135typedef struct VkExternalTensorPropertiesARM {
23136 VkStructureType sType;
23137 const void* pNext;
23138 VkExternalMemoryProperties externalMemoryProperties;
23139} VkExternalTensorPropertiesARM;
23140
23141typedef struct VkExternalMemoryTensorCreateInfoARM {
23142 VkStructureType sType;
23143 const void* pNext;
23144 VkExternalMemoryHandleTypeFlags handleTypes;
23145} VkExternalMemoryTensorCreateInfoARM;
23146
23147typedef struct VkPhysicalDeviceDescriptorBufferTensorFeaturesARM {
23148 VkStructureType sType;
23149 void* pNext;
23150 VkBool32 descriptorBufferTensorDescriptors;
23151} VkPhysicalDeviceDescriptorBufferTensorFeaturesARM;
23152
23153typedef struct VkPhysicalDeviceDescriptorBufferTensorPropertiesARM {
23154 VkStructureType sType;
23155 void* pNext;
23156 size_t tensorCaptureReplayDescriptorDataSize;
23157 size_t tensorViewCaptureReplayDescriptorDataSize;
23158 size_t tensorDescriptorSize;
23159} VkPhysicalDeviceDescriptorBufferTensorPropertiesARM;
23160
23161typedef struct VkDescriptorGetTensorInfoARM {
23162 VkStructureType sType;
23163 const void* pNext;
23164 VkTensorViewARM tensorView;
23165} VkDescriptorGetTensorInfoARM;
23166
23167typedef struct VkTensorCaptureDescriptorDataInfoARM {
23168 VkStructureType sType;
23169 const void* pNext;
23170 VkTensorARM tensor;
23171} VkTensorCaptureDescriptorDataInfoARM;
23172
23173typedef struct VkTensorViewCaptureDescriptorDataInfoARM {
23174 VkStructureType sType;
23175 const void* pNext;
23176 VkTensorViewARM tensorView;
23177} VkTensorViewCaptureDescriptorDataInfoARM;
23178
23179typedef struct VkFrameBoundaryTensorsARM {
23180 VkStructureType sType;
23181 const void* pNext;
23182 uint32_t tensorCount;
23183 const VkTensorARM* pTensors;
23184} VkFrameBoundaryTensorsARM;
23185
23186typedef VkResult (VKAPI_PTR *PFN_vkCreateTensorARM)(VkDevice device, const VkTensorCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkTensorARM* pTensor);
23187typedef void (VKAPI_PTR *PFN_vkDestroyTensorARM)(VkDevice device, VkTensorARM tensor, const VkAllocationCallbacks* pAllocator);
23188typedef VkResult (VKAPI_PTR *PFN_vkCreateTensorViewARM)(VkDevice device, const VkTensorViewCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkTensorViewARM* pView);
23189typedef void (VKAPI_PTR *PFN_vkDestroyTensorViewARM)(VkDevice device, VkTensorViewARM tensorView, const VkAllocationCallbacks* pAllocator);
23190typedef void (VKAPI_PTR *PFN_vkGetTensorMemoryRequirementsARM)(VkDevice device, const VkTensorMemoryRequirementsInfoARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
23191typedef VkResult (VKAPI_PTR *PFN_vkBindTensorMemoryARM)(VkDevice device, uint32_t bindInfoCount, const VkBindTensorMemoryInfoARM* pBindInfos);
23192typedef void (VKAPI_PTR *PFN_vkGetDeviceTensorMemoryRequirementsARM)(VkDevice device, const VkDeviceTensorMemoryRequirementsARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
23193typedef void (VKAPI_PTR *PFN_vkCmdCopyTensorARM)(VkCommandBuffer commandBuffer, const VkCopyTensorInfoARM* pCopyTensorInfo);
23194typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo, VkExternalTensorPropertiesARM* pExternalTensorProperties);
23195typedef VkResult (VKAPI_PTR *PFN_vkGetTensorOpaqueCaptureDescriptorDataARM)(VkDevice device, const VkTensorCaptureDescriptorDataInfoARM* pInfo, void* pData);
23196typedef VkResult (VKAPI_PTR *PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM)(VkDevice device, const VkTensorViewCaptureDescriptorDataInfoARM* pInfo, void* pData);
23197
23198#ifndef VK_NO_PROTOTYPES
23199#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23200VKAPI_ATTR VkResult VKAPI_CALL vkCreateTensorARM(
23201 VkDevice device,
23202 const VkTensorCreateInfoARM* pCreateInfo,
23203 const VkAllocationCallbacks* pAllocator,
23204 VkTensorARM* pTensor);
23205#endif
23206
23207#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23208VKAPI_ATTR void VKAPI_CALL vkDestroyTensorARM(
23209 VkDevice device,
23210 VkTensorARM tensor,
23211 const VkAllocationCallbacks* pAllocator);
23212#endif
23213
23214#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23215VKAPI_ATTR VkResult VKAPI_CALL vkCreateTensorViewARM(
23216 VkDevice device,
23217 const VkTensorViewCreateInfoARM* pCreateInfo,
23218 const VkAllocationCallbacks* pAllocator,
23219 VkTensorViewARM* pView);
23220#endif
23221
23222#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23223VKAPI_ATTR void VKAPI_CALL vkDestroyTensorViewARM(
23224 VkDevice device,
23225 VkTensorViewARM tensorView,
23226 const VkAllocationCallbacks* pAllocator);
23227#endif
23228
23229#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23230VKAPI_ATTR void VKAPI_CALL vkGetTensorMemoryRequirementsARM(
23231 VkDevice device,
23232 const VkTensorMemoryRequirementsInfoARM* pInfo,
23233 VkMemoryRequirements2* pMemoryRequirements);
23234#endif
23235
23236#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23237VKAPI_ATTR VkResult VKAPI_CALL vkBindTensorMemoryARM(
23238 VkDevice device,
23239 uint32_t bindInfoCount,
23240 const VkBindTensorMemoryInfoARM* pBindInfos);
23241#endif
23242
23243#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23244VKAPI_ATTR void VKAPI_CALL vkGetDeviceTensorMemoryRequirementsARM(
23245 VkDevice device,
23246 const VkDeviceTensorMemoryRequirementsARM* pInfo,
23247 VkMemoryRequirements2* pMemoryRequirements);
23248#endif
23249
23250#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23251VKAPI_ATTR void VKAPI_CALL vkCmdCopyTensorARM(
23252 VkCommandBuffer commandBuffer,
23253 const VkCopyTensorInfoARM* pCopyTensorInfo);
23254#endif
23255
23256#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23257VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalTensorPropertiesARM(
23258 VkPhysicalDevice physicalDevice,
23259 const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo,
23260 VkExternalTensorPropertiesARM* pExternalTensorProperties);
23261#endif
23262
23263#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23264VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorOpaqueCaptureDescriptorDataARM(
23265 VkDevice device,
23266 const VkTensorCaptureDescriptorDataInfoARM* pInfo,
23267 void* pData);
23268#endif
23269
23270#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23271VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorViewOpaqueCaptureDescriptorDataARM(
23272 VkDevice device,
23273 const VkTensorViewCaptureDescriptorDataInfoARM* pInfo,
23274 void* pData);
23275#endif
23276#endif
23277
23278
23279// VK_EXT_shader_module_identifier is a preprocessor guard. Do not pass it to API calls.
23280#define VK_EXT_shader_module_identifier 1
23281#define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U
23282#define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1
23283#define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
23284typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT {
23285 VkStructureType sType;
23286 void* pNext;
23287 VkBool32 shaderModuleIdentifier;
23288} VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
23289
23290typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT {
23291 VkStructureType sType;
23292 void* pNext;
23293 uint8_t shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
23294} VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
23295
23296typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT {
23297 VkStructureType sType;
23298 const void* pNext;
23299 uint32_t identifierSize;
23300 const uint8_t* pIdentifier;
23301} VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
23302
23303typedef struct VkShaderModuleIdentifierEXT {
23304 VkStructureType sType;
23305 void* pNext;
23306 uint32_t identifierSize;
23307 uint8_t identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
23308} VkShaderModuleIdentifierEXT;
23309
23310typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier);
23311typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier);
23312
23313#ifndef VK_NO_PROTOTYPES
23314#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23315VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleIdentifierEXT(
23316 VkDevice device,
23317 VkShaderModule shaderModule,
23318 VkShaderModuleIdentifierEXT* pIdentifier);
23319#endif
23320
23321#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23322VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT(
23323 VkDevice device,
23324 const VkShaderModuleCreateInfo* pCreateInfo,
23325 VkShaderModuleIdentifierEXT* pIdentifier);
23326#endif
23327#endif
23328
23329
23330// VK_EXT_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
23331#define VK_EXT_rasterization_order_attachment_access 1
23332#define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
23333#define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access"
23334
23335
23336// VK_NV_optical_flow is a preprocessor guard. Do not pass it to API calls.
23337#define VK_NV_optical_flow 1
23338VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV)
23339#define VK_NV_OPTICAL_FLOW_SPEC_VERSION 1
23340#define VK_NV_OPTICAL_FLOW_EXTENSION_NAME "VK_NV_optical_flow"
23341
23342typedef enum VkOpticalFlowPerformanceLevelNV {
23343 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0,
23344 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1,
23345 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2,
23346 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3,
23347 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 0x7FFFFFFF
23348} VkOpticalFlowPerformanceLevelNV;
23349
23350typedef enum VkOpticalFlowSessionBindingPointNV {
23351 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0,
23352 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1,
23353 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2,
23354 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3,
23355 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4,
23356 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5,
23357 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6,
23358 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7,
23359 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8,
23360 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 0x7FFFFFFF
23361} VkOpticalFlowSessionBindingPointNV;
23362
23363typedef enum VkOpticalFlowGridSizeFlagBitsNV {
23364 VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0,
23365 VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0x00000001,
23366 VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0x00000002,
23367 VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0x00000004,
23368 VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0x00000008,
23369 VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
23370} VkOpticalFlowGridSizeFlagBitsNV;
23371typedef VkFlags VkOpticalFlowGridSizeFlagsNV;
23372
23373typedef enum VkOpticalFlowUsageFlagBitsNV {
23374 VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0,
23375 VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0x00000001,
23376 VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0x00000002,
23377 VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0x00000004,
23378 VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0x00000008,
23379 VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0x00000010,
23380 VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
23381} VkOpticalFlowUsageFlagBitsNV;
23382typedef VkFlags VkOpticalFlowUsageFlagsNV;
23383
23384typedef enum VkOpticalFlowSessionCreateFlagBitsNV {
23385 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0x00000001,
23386 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0x00000002,
23387 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0x00000004,
23388 VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0x00000008,
23389 VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0x00000010,
23390 VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
23391} VkOpticalFlowSessionCreateFlagBitsNV;
23392typedef VkFlags VkOpticalFlowSessionCreateFlagsNV;
23393
23394typedef enum VkOpticalFlowExecuteFlagBitsNV {
23395 VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0x00000001,
23396 VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
23397} VkOpticalFlowExecuteFlagBitsNV;
23398typedef VkFlags VkOpticalFlowExecuteFlagsNV;
23399typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV {
23400 VkStructureType sType;
23401 void* pNext;
23402 VkBool32 opticalFlow;
23403} VkPhysicalDeviceOpticalFlowFeaturesNV;
23404
23405typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV {
23406 VkStructureType sType;
23407 void* pNext;
23408 VkOpticalFlowGridSizeFlagsNV supportedOutputGridSizes;
23409 VkOpticalFlowGridSizeFlagsNV supportedHintGridSizes;
23410 VkBool32 hintSupported;
23411 VkBool32 costSupported;
23412 VkBool32 bidirectionalFlowSupported;
23413 VkBool32 globalFlowSupported;
23414 uint32_t minWidth;
23415 uint32_t minHeight;
23416 uint32_t maxWidth;
23417 uint32_t maxHeight;
23418 uint32_t maxNumRegionsOfInterest;
23419} VkPhysicalDeviceOpticalFlowPropertiesNV;
23420
23421typedef struct VkOpticalFlowImageFormatInfoNV {
23422 VkStructureType sType;
23423 const void* pNext;
23424 VkOpticalFlowUsageFlagsNV usage;
23425} VkOpticalFlowImageFormatInfoNV;
23426
23427typedef struct VkOpticalFlowImageFormatPropertiesNV {
23428 VkStructureType sType;
23429 void* pNext;
23430 VkFormat format;
23431} VkOpticalFlowImageFormatPropertiesNV;
23432
23433typedef struct VkOpticalFlowSessionCreateInfoNV {
23434 VkStructureType sType;
23435 void* pNext;
23436 uint32_t width;
23437 uint32_t height;
23438 VkFormat imageFormat;
23439 VkFormat flowVectorFormat;
23440 VkFormat costFormat;
23441 VkOpticalFlowGridSizeFlagsNV outputGridSize;
23442 VkOpticalFlowGridSizeFlagsNV hintGridSize;
23443 VkOpticalFlowPerformanceLevelNV performanceLevel;
23444 VkOpticalFlowSessionCreateFlagsNV flags;
23445} VkOpticalFlowSessionCreateInfoNV;
23446
23447typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV {
23448 VkStructureType sType;
23449 void* pNext;
23450 uint32_t id;
23451 uint32_t size;
23452 const void* pPrivateData;
23453} VkOpticalFlowSessionCreatePrivateDataInfoNV;
23454
23455typedef struct VkOpticalFlowExecuteInfoNV {
23456 VkStructureType sType;
23457 void* pNext;
23458 VkOpticalFlowExecuteFlagsNV flags;
23459 uint32_t regionCount;
23460 const VkRect2D* pRegions;
23461} VkOpticalFlowExecuteInfoNV;
23462
23463typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
23464typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice device, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession);
23465typedef void (VKAPI_PTR *PFN_vkDestroyOpticalFlowSessionNV)(VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator);
23466typedef VkResult (VKAPI_PTR *PFN_vkBindOpticalFlowSessionImageNV)(VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout);
23467typedef void (VKAPI_PTR *PFN_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
23468
23469#ifndef VK_NO_PROTOTYPES
23470#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23471VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
23472 VkPhysicalDevice physicalDevice,
23473 const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo,
23474 uint32_t* pFormatCount,
23475 VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
23476#endif
23477
23478#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23479VKAPI_ATTR VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV(
23480 VkDevice device,
23481 const VkOpticalFlowSessionCreateInfoNV* pCreateInfo,
23482 const VkAllocationCallbacks* pAllocator,
23483 VkOpticalFlowSessionNV* pSession);
23484#endif
23485
23486#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23487VKAPI_ATTR void VKAPI_CALL vkDestroyOpticalFlowSessionNV(
23488 VkDevice device,
23489 VkOpticalFlowSessionNV session,
23490 const VkAllocationCallbacks* pAllocator);
23491#endif
23492
23493#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23494VKAPI_ATTR VkResult VKAPI_CALL vkBindOpticalFlowSessionImageNV(
23495 VkDevice device,
23496 VkOpticalFlowSessionNV session,
23497 VkOpticalFlowSessionBindingPointNV bindingPoint,
23498 VkImageView view,
23499 VkImageLayout layout);
23500#endif
23501
23502#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23503VKAPI_ATTR void VKAPI_CALL vkCmdOpticalFlowExecuteNV(
23504 VkCommandBuffer commandBuffer,
23505 VkOpticalFlowSessionNV session,
23506 const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
23507#endif
23508#endif
23509
23510
23511// VK_EXT_legacy_dithering is a preprocessor guard. Do not pass it to API calls.
23512#define VK_EXT_legacy_dithering 1
23513#define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 2
23514#define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering"
23515typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT {
23516 VkStructureType sType;
23517 void* pNext;
23518 VkBool32 legacyDithering;
23519} VkPhysicalDeviceLegacyDitheringFeaturesEXT;
23520
23521
23522
23523// VK_EXT_pipeline_protected_access is a preprocessor guard. Do not pass it to API calls.
23524#define VK_EXT_pipeline_protected_access 1
23525#define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1
23526#define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access"
23527typedef VkPhysicalDevicePipelineProtectedAccessFeatures VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
23528
23529
23530
23531// VK_AMD_anti_lag is a preprocessor guard. Do not pass it to API calls.
23532#define VK_AMD_anti_lag 1
23533#define VK_AMD_ANTI_LAG_SPEC_VERSION 1
23534#define VK_AMD_ANTI_LAG_EXTENSION_NAME "VK_AMD_anti_lag"
23535
23536typedef enum VkAntiLagModeAMD {
23537 VK_ANTI_LAG_MODE_DRIVER_CONTROL_AMD = 0,
23538 VK_ANTI_LAG_MODE_ON_AMD = 1,
23539 VK_ANTI_LAG_MODE_OFF_AMD = 2,
23540 VK_ANTI_LAG_MODE_MAX_ENUM_AMD = 0x7FFFFFFF
23541} VkAntiLagModeAMD;
23542
23543typedef enum VkAntiLagStageAMD {
23544 VK_ANTI_LAG_STAGE_INPUT_AMD = 0,
23545 VK_ANTI_LAG_STAGE_PRESENT_AMD = 1,
23546 VK_ANTI_LAG_STAGE_MAX_ENUM_AMD = 0x7FFFFFFF
23547} VkAntiLagStageAMD;
23548typedef struct VkPhysicalDeviceAntiLagFeaturesAMD {
23549 VkStructureType sType;
23550 void* pNext;
23551 VkBool32 antiLag;
23552} VkPhysicalDeviceAntiLagFeaturesAMD;
23553
23554typedef struct VkAntiLagPresentationInfoAMD {
23555 VkStructureType sType;
23556 void* pNext;
23557 VkAntiLagStageAMD stage;
23558 uint64_t frameIndex;
23559} VkAntiLagPresentationInfoAMD;
23560
23561typedef struct VkAntiLagDataAMD {
23562 VkStructureType sType;
23563 const void* pNext;
23564 VkAntiLagModeAMD mode;
23565 uint32_t maxFPS;
23566 const VkAntiLagPresentationInfoAMD* pPresentationInfo;
23567} VkAntiLagDataAMD;
23568
23569typedef void (VKAPI_PTR *PFN_vkAntiLagUpdateAMD)(VkDevice device, const VkAntiLagDataAMD* pData);
23570
23571#ifndef VK_NO_PROTOTYPES
23572#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23573VKAPI_ATTR void VKAPI_CALL vkAntiLagUpdateAMD(
23574 VkDevice device,
23575 const VkAntiLagDataAMD* pData);
23576#endif
23577#endif
23578
23579
23580// VK_EXT_shader_object is a preprocessor guard. Do not pass it to API calls.
23581#define VK_EXT_shader_object 1
23582VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT)
23583#define VK_EXT_SHADER_OBJECT_SPEC_VERSION 1
23584#define VK_EXT_SHADER_OBJECT_EXTENSION_NAME "VK_EXT_shader_object"
23585
23586typedef enum VkShaderCodeTypeEXT {
23587 VK_SHADER_CODE_TYPE_BINARY_EXT = 0,
23588 VK_SHADER_CODE_TYPE_SPIRV_EXT = 1,
23589 VK_SHADER_CODE_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
23590} VkShaderCodeTypeEXT;
23591
23592typedef enum VkDepthClampModeEXT {
23593 VK_DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT = 0,
23594 VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT = 1,
23595 VK_DEPTH_CLAMP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
23596} VkDepthClampModeEXT;
23597
23598typedef enum VkShaderCreateFlagBitsEXT {
23599 VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001,
23600 VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT = 0x00000400,
23601 VK_SHADER_CREATE_INSTRUMENT_SHADER_BIT_ARM = 0x00000800,
23602 VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002,
23603 VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000004,
23604 VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = 0x00000008,
23605 VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010,
23606 VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020,
23607 VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040,
23608 VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT = 0x00000080,
23609 VK_SHADER_CREATE_OPACITY_MICROMAP_DISALLOW_MIXED_SPECIAL_INDEX_BIT_EXT = 0x00001000,
23610 VK_SHADER_CREATE_64_BIT_INDEXING_BIT_EXT = 0x00008000,
23611 VK_SHADER_CREATE_INDEPENDENT_SETS_BIT_KHR = 0x00040000,
23612 VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
23613} VkShaderCreateFlagBitsEXT;
23614typedef VkFlags VkShaderCreateFlagsEXT;
23615typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT {
23616 VkStructureType sType;
23617 void* pNext;
23618 VkBool32 shaderObject;
23619} VkPhysicalDeviceShaderObjectFeaturesEXT;
23620
23621typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT {
23622 VkStructureType sType;
23623 void* pNext;
23624 uint8_t shaderBinaryUUID[VK_UUID_SIZE];
23625 uint32_t shaderBinaryVersion;
23626} VkPhysicalDeviceShaderObjectPropertiesEXT;
23627
23628typedef struct VkShaderCreateInfoEXT {
23629 VkStructureType sType;
23630 const void* pNext;
23631 VkShaderCreateFlagsEXT flags;
23632 VkShaderStageFlagBits stage;
23633 VkShaderStageFlags nextStage;
23634 VkShaderCodeTypeEXT codeType;
23635 size_t codeSize;
23636 const void* pCode;
23637 const char* pName;
23638 uint32_t setLayoutCount;
23639 const VkDescriptorSetLayout* pSetLayouts;
23640 uint32_t pushConstantRangeCount;
23641 const VkPushConstantRange* pPushConstantRanges;
23642 const VkSpecializationInfo* pSpecializationInfo;
23643} VkShaderCreateInfoEXT;
23644
23645typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT;
23646
23647typedef struct VkDepthClampRangeEXT {
23648 float minDepthClamp;
23649 float maxDepthClamp;
23650} VkDepthClampRangeEXT;
23651
23652typedef VkResult (VKAPI_PTR *PFN_vkCreateShadersEXT)(VkDevice device, uint32_t createInfoCount, const VkShaderCreateInfoEXT* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders);
23653typedef void (VKAPI_PTR *PFN_vkDestroyShaderEXT)(VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks* pAllocator);
23654typedef VkResult (VKAPI_PTR *PFN_vkGetShaderBinaryDataEXT)(VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData);
23655typedef void (VKAPI_PTR *PFN_vkCmdBindShadersEXT)(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders);
23656typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampRangeEXT)(VkCommandBuffer commandBuffer, VkDepthClampModeEXT depthClampMode, const VkDepthClampRangeEXT* pDepthClampRange);
23657
23658#ifndef VK_NO_PROTOTYPES
23659#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23660VKAPI_ATTR VkResult VKAPI_CALL vkCreateShadersEXT(
23661 VkDevice device,
23662 uint32_t createInfoCount,
23663 const VkShaderCreateInfoEXT* pCreateInfos,
23664 const VkAllocationCallbacks* pAllocator,
23665 VkShaderEXT* pShaders);
23666#endif
23667
23668#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23669VKAPI_ATTR void VKAPI_CALL vkDestroyShaderEXT(
23670 VkDevice device,
23671 VkShaderEXT shader,
23672 const VkAllocationCallbacks* pAllocator);
23673#endif
23674
23675#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23676VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderBinaryDataEXT(
23677 VkDevice device,
23678 VkShaderEXT shader,
23679 size_t* pDataSize,
23680 void* pData);
23681#endif
23682
23683#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23684VKAPI_ATTR void VKAPI_CALL vkCmdBindShadersEXT(
23685 VkCommandBuffer commandBuffer,
23686 uint32_t stageCount,
23687 const VkShaderStageFlagBits* pStages,
23688 const VkShaderEXT* pShaders);
23689#endif
23690
23691#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23692VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampRangeEXT(
23693 VkCommandBuffer commandBuffer,
23694 VkDepthClampModeEXT depthClampMode,
23695 const VkDepthClampRangeEXT* pDepthClampRange);
23696#endif
23697#endif
23698
23699
23700// VK_QCOM_tile_properties is a preprocessor guard. Do not pass it to API calls.
23701#define VK_QCOM_tile_properties 1
23702#define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1
23703#define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
23704typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM {
23705 VkStructureType sType;
23706 void* pNext;
23707 VkBool32 tileProperties;
23708} VkPhysicalDeviceTilePropertiesFeaturesQCOM;
23709
23710typedef struct VkTilePropertiesQCOM {
23711 VkStructureType sType;
23712 void* pNext;
23713 VkExtent3D tileSize;
23714 VkExtent2D apronSize;
23715 VkOffset2D origin;
23716} VkTilePropertiesQCOM;
23717
23718typedef VkResult (VKAPI_PTR *PFN_vkGetFramebufferTilePropertiesQCOM)(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties);
23719typedef VkResult (VKAPI_PTR *PFN_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties);
23720
23721#ifndef VK_NO_PROTOTYPES
23722#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23723VKAPI_ATTR VkResult VKAPI_CALL vkGetFramebufferTilePropertiesQCOM(
23724 VkDevice device,
23725 VkFramebuffer framebuffer,
23726 uint32_t* pPropertiesCount,
23727 VkTilePropertiesQCOM* pProperties);
23728#endif
23729
23730#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23731VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM(
23732 VkDevice device,
23733 const VkRenderingInfo* pRenderingInfo,
23734 VkTilePropertiesQCOM* pProperties);
23735#endif
23736#endif
23737
23738
23739// VK_SEC_amigo_profiling is a preprocessor guard. Do not pass it to API calls.
23740#define VK_SEC_amigo_profiling 1
23741#define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1
23742#define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling"
23743typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC {
23744 VkStructureType sType;
23745 void* pNext;
23746 VkBool32 amigoProfiling;
23747} VkPhysicalDeviceAmigoProfilingFeaturesSEC;
23748
23749typedef struct VkAmigoProfilingSubmitInfoSEC {
23750 VkStructureType sType;
23751 const void* pNext;
23752 uint64_t firstDrawTimestamp;
23753 uint64_t swapBufferTimestamp;
23754} VkAmigoProfilingSubmitInfoSEC;
23755
23756
23757
23758// VK_QCOM_multiview_per_view_viewports is a preprocessor guard. Do not pass it to API calls.
23759#define VK_QCOM_multiview_per_view_viewports 1
23760#define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION 1
23761#define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports"
23762typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
23763 VkStructureType sType;
23764 void* pNext;
23765 VkBool32 multiviewPerViewViewports;
23766} VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
23767
23768
23769
23770// VK_NV_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
23771#define VK_NV_ray_tracing_invocation_reorder 1
23772#define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
23773#define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder"
23774
23775typedef enum VkRayTracingInvocationReorderModeEXT {
23776 VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_EXT = 0,
23777 VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_EXT = 1,
23778 VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_EXT,
23779 VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_EXT,
23780 VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
23781} VkRayTracingInvocationReorderModeEXT;
23782typedef VkRayTracingInvocationReorderModeEXT VkRayTracingInvocationReorderModeNV;
23783
23784typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV {
23785 VkStructureType sType;
23786 void* pNext;
23787 VkRayTracingInvocationReorderModeEXT rayTracingInvocationReorderReorderingHint;
23788} VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV;
23789
23790typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV {
23791 VkStructureType sType;
23792 void* pNext;
23793 VkBool32 rayTracingInvocationReorder;
23794} VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV;
23795
23796
23797
23798// VK_NV_cooperative_vector is a preprocessor guard. Do not pass it to API calls.
23799#define VK_NV_cooperative_vector 1
23800#define VK_NV_COOPERATIVE_VECTOR_SPEC_VERSION 4
23801#define VK_NV_COOPERATIVE_VECTOR_EXTENSION_NAME "VK_NV_cooperative_vector"
23802
23803typedef enum VkCooperativeVectorMatrixLayoutNV {
23804 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_ROW_MAJOR_NV = 0,
23805 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_COLUMN_MAJOR_NV = 1,
23806 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_INFERENCING_OPTIMAL_NV = 2,
23807 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_TRAINING_OPTIMAL_NV = 3,
23808 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_MAX_ENUM_NV = 0x7FFFFFFF
23809} VkCooperativeVectorMatrixLayoutNV;
23810typedef struct VkPhysicalDeviceCooperativeVectorPropertiesNV {
23811 VkStructureType sType;
23812 void* pNext;
23813 VkShaderStageFlags cooperativeVectorSupportedStages;
23814 VkBool32 cooperativeVectorTrainingFloat16Accumulation;
23815 VkBool32 cooperativeVectorTrainingFloat32Accumulation;
23816 uint32_t maxCooperativeVectorComponents;
23817} VkPhysicalDeviceCooperativeVectorPropertiesNV;
23818
23819typedef struct VkPhysicalDeviceCooperativeVectorFeaturesNV {
23820 VkStructureType sType;
23821 void* pNext;
23822 VkBool32 cooperativeVector;
23823 VkBool32 cooperativeVectorTraining;
23824} VkPhysicalDeviceCooperativeVectorFeaturesNV;
23825
23826typedef struct VkCooperativeVectorPropertiesNV {
23827 VkStructureType sType;
23828 void* pNext;
23829 VkComponentTypeKHR inputType;
23830 VkComponentTypeKHR inputInterpretation;
23831 VkComponentTypeKHR matrixInterpretation;
23832 VkComponentTypeKHR biasInterpretation;
23833 VkComponentTypeKHR resultType;
23834 VkBool32 transpose;
23835} VkCooperativeVectorPropertiesNV;
23836
23837typedef struct VkConvertCooperativeVectorMatrixInfoNV {
23838 VkStructureType sType;
23839 const void* pNext;
23840 size_t srcSize;
23841 VkDeviceOrHostAddressConstKHR srcData;
23842 size_t* pDstSize;
23843 VkDeviceOrHostAddressKHR dstData;
23844 VkComponentTypeKHR srcComponentType;
23845 VkComponentTypeKHR dstComponentType;
23846 uint32_t numRows;
23847 uint32_t numColumns;
23848 VkCooperativeVectorMatrixLayoutNV srcLayout;
23849 size_t srcStride;
23850 VkCooperativeVectorMatrixLayoutNV dstLayout;
23851 size_t dstStride;
23852} VkConvertCooperativeVectorMatrixInfoNV;
23853
23854typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeVectorPropertiesNV* pProperties);
23855typedef VkResult (VKAPI_PTR *PFN_vkConvertCooperativeVectorMatrixNV)(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo);
23856typedef void (VKAPI_PTR *PFN_vkCmdConvertCooperativeVectorMatrixNV)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkConvertCooperativeVectorMatrixInfoNV* pInfos);
23857
23858#ifndef VK_NO_PROTOTYPES
23859#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23860VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeVectorPropertiesNV(
23861 VkPhysicalDevice physicalDevice,
23862 uint32_t* pPropertyCount,
23863 VkCooperativeVectorPropertiesNV* pProperties);
23864#endif
23865
23866#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23867VKAPI_ATTR VkResult VKAPI_CALL vkConvertCooperativeVectorMatrixNV(
23868 VkDevice device,
23869 const VkConvertCooperativeVectorMatrixInfoNV* pInfo);
23870#endif
23871
23872#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23873VKAPI_ATTR void VKAPI_CALL vkCmdConvertCooperativeVectorMatrixNV(
23874 VkCommandBuffer commandBuffer,
23875 uint32_t infoCount,
23876 const VkConvertCooperativeVectorMatrixInfoNV* pInfos);
23877#endif
23878#endif
23879
23880
23881// VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls.
23882#define VK_NV_extended_sparse_address_space 1
23883#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1
23884#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space"
23885typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
23886 VkStructureType sType;
23887 void* pNext;
23888 VkBool32 extendedSparseAddressSpace;
23889} VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
23890
23891typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
23892 VkStructureType sType;
23893 void* pNext;
23894 VkDeviceSize extendedSparseAddressSpaceSize;
23895 VkImageUsageFlags extendedSparseImageUsageFlags;
23896 VkBufferUsageFlags extendedSparseBufferUsageFlags;
23897} VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
23898
23899
23900
23901// VK_EXT_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
23902#define VK_EXT_mutable_descriptor_type 1
23903#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
23904#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
23905
23906
23907// VK_EXT_legacy_vertex_attributes is a preprocessor guard. Do not pass it to API calls.
23908#define VK_EXT_legacy_vertex_attributes 1
23909#define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION 1
23910#define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME "VK_EXT_legacy_vertex_attributes"
23911typedef struct VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT {
23912 VkStructureType sType;
23913 void* pNext;
23914 VkBool32 legacyVertexAttributes;
23915} VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT;
23916
23917typedef struct VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT {
23918 VkStructureType sType;
23919 void* pNext;
23920 VkBool32 nativeUnalignedPerformance;
23921} VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT;
23922
23923
23924
23925// VK_EXT_layer_settings is a preprocessor guard. Do not pass it to API calls.
23926#define VK_EXT_layer_settings 1
23927#define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 2
23928#define VK_EXT_LAYER_SETTINGS_EXTENSION_NAME "VK_EXT_layer_settings"
23929
23930typedef enum VkLayerSettingTypeEXT {
23931 VK_LAYER_SETTING_TYPE_BOOL32_EXT = 0,
23932 VK_LAYER_SETTING_TYPE_INT32_EXT = 1,
23933 VK_LAYER_SETTING_TYPE_INT64_EXT = 2,
23934 VK_LAYER_SETTING_TYPE_UINT32_EXT = 3,
23935 VK_LAYER_SETTING_TYPE_UINT64_EXT = 4,
23936 VK_LAYER_SETTING_TYPE_FLOAT32_EXT = 5,
23937 VK_LAYER_SETTING_TYPE_FLOAT64_EXT = 6,
23938 VK_LAYER_SETTING_TYPE_STRING_EXT = 7,
23939 VK_LAYER_SETTING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
23940} VkLayerSettingTypeEXT;
23941typedef struct VkLayerSettingEXT {
23942 const char* pLayerName;
23943 const char* pSettingName;
23944 VkLayerSettingTypeEXT type;
23945 uint32_t valueCount;
23946 const void* pValues;
23947} VkLayerSettingEXT;
23948
23949typedef struct VkLayerSettingsCreateInfoEXT {
23950 VkStructureType sType;
23951 const void* pNext;
23952 uint32_t settingCount;
23953 const VkLayerSettingEXT* pSettings;
23954} VkLayerSettingsCreateInfoEXT;
23955
23956
23957
23958// VK_ARM_shader_core_builtins is a preprocessor guard. Do not pass it to API calls.
23959#define VK_ARM_shader_core_builtins 1
23960#define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2
23961#define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins"
23962typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM {
23963 VkStructureType sType;
23964 void* pNext;
23965 VkBool32 shaderCoreBuiltins;
23966} VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
23967
23968typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM {
23969 VkStructureType sType;
23970 void* pNext;
23971 uint64_t shaderCoreMask;
23972 uint32_t shaderCoreCount;
23973 uint32_t shaderWarpsPerCore;
23974} VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM;
23975
23976
23977
23978// VK_EXT_pipeline_library_group_handles is a preprocessor guard. Do not pass it to API calls.
23979#define VK_EXT_pipeline_library_group_handles 1
23980#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION 1
23981#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles"
23982typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
23983 VkStructureType sType;
23984 void* pNext;
23985 VkBool32 pipelineLibraryGroupHandles;
23986} VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
23987
23988
23989
23990// VK_EXT_dynamic_rendering_unused_attachments is a preprocessor guard. Do not pass it to API calls.
23991#define VK_EXT_dynamic_rendering_unused_attachments 1
23992#define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION 1
23993#define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME "VK_EXT_dynamic_rendering_unused_attachments"
23994typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
23995 VkStructureType sType;
23996 void* pNext;
23997 VkBool32 dynamicRenderingUnusedAttachments;
23998} VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
23999
24000
24001
24002// VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls.
24003#define VK_NV_low_latency2 1
24004#define VK_NV_LOW_LATENCY_2_SPEC_VERSION 2
24005#define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2"
24006
24007typedef enum VkLatencyMarkerNV {
24008 VK_LATENCY_MARKER_SIMULATION_START_NV = 0,
24009 VK_LATENCY_MARKER_SIMULATION_END_NV = 1,
24010 VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2,
24011 VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3,
24012 VK_LATENCY_MARKER_PRESENT_START_NV = 4,
24013 VK_LATENCY_MARKER_PRESENT_END_NV = 5,
24014 VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6,
24015 VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7,
24016 VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8,
24017 VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9,
24018 VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10,
24019 VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11,
24020 VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF
24021} VkLatencyMarkerNV;
24022
24023typedef enum VkOutOfBandQueueTypeNV {
24024 VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0,
24025 VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1,
24026 VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
24027} VkOutOfBandQueueTypeNV;
24028typedef struct VkLatencySleepModeInfoNV {
24029 VkStructureType sType;
24030 const void* pNext;
24031 VkBool32 lowLatencyMode;
24032 VkBool32 lowLatencyBoost;
24033 uint32_t minimumIntervalUs;
24034} VkLatencySleepModeInfoNV;
24035
24036typedef struct VkLatencySleepInfoNV {
24037 VkStructureType sType;
24038 const void* pNext;
24039 VkSemaphore signalSemaphore;
24040 uint64_t value;
24041} VkLatencySleepInfoNV;
24042
24043typedef struct VkSetLatencyMarkerInfoNV {
24044 VkStructureType sType;
24045 const void* pNext;
24046 uint64_t presentID;
24047 VkLatencyMarkerNV marker;
24048} VkSetLatencyMarkerInfoNV;
24049
24050typedef struct VkLatencyTimingsFrameReportNV {
24051 VkStructureType sType;
24052 void* pNext;
24053 uint64_t presentID;
24054 uint64_t inputSampleTimeUs;
24055 uint64_t simStartTimeUs;
24056 uint64_t simEndTimeUs;
24057 uint64_t renderSubmitStartTimeUs;
24058 uint64_t renderSubmitEndTimeUs;
24059 uint64_t presentStartTimeUs;
24060 uint64_t presentEndTimeUs;
24061 uint64_t driverStartTimeUs;
24062 uint64_t driverEndTimeUs;
24063 uint64_t osRenderQueueStartTimeUs;
24064 uint64_t osRenderQueueEndTimeUs;
24065 uint64_t gpuRenderStartTimeUs;
24066 uint64_t gpuRenderEndTimeUs;
24067} VkLatencyTimingsFrameReportNV;
24068
24069typedef struct VkGetLatencyMarkerInfoNV {
24070 VkStructureType sType;
24071 const void* pNext;
24072 uint32_t timingCount;
24073 VkLatencyTimingsFrameReportNV* pTimings;
24074} VkGetLatencyMarkerInfoNV;
24075
24076typedef struct VkLatencySubmissionPresentIdNV {
24077 VkStructureType sType;
24078 const void* pNext;
24079 uint64_t presentID;
24080} VkLatencySubmissionPresentIdNV;
24081
24082typedef struct VkSwapchainLatencyCreateInfoNV {
24083 VkStructureType sType;
24084 const void* pNext;
24085 VkBool32 latencyModeEnable;
24086} VkSwapchainLatencyCreateInfoNV;
24087
24088typedef struct VkOutOfBandQueueTypeInfoNV {
24089 VkStructureType sType;
24090 const void* pNext;
24091 VkOutOfBandQueueTypeNV queueType;
24092} VkOutOfBandQueueTypeInfoNV;
24093
24094typedef struct VkLatencySurfaceCapabilitiesNV {
24095 VkStructureType sType;
24096 const void* pNext;
24097 uint32_t presentModeCount;
24098 VkPresentModeKHR* pPresentModes;
24099} VkLatencySurfaceCapabilitiesNV;
24100
24101typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo);
24102typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo);
24103typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
24104typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
24105typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
24106
24107#ifndef VK_NO_PROTOTYPES
24108#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24109VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV(
24110 VkDevice device,
24111 VkSwapchainKHR swapchain,
24112 const VkLatencySleepModeInfoNV* pSleepModeInfo);
24113#endif
24114
24115#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24116VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV(
24117 VkDevice device,
24118 VkSwapchainKHR swapchain,
24119 const VkLatencySleepInfoNV* pSleepInfo);
24120#endif
24121
24122#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24123VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV(
24124 VkDevice device,
24125 VkSwapchainKHR swapchain,
24126 const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
24127#endif
24128
24129#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24130VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV(
24131 VkDevice device,
24132 VkSwapchainKHR swapchain,
24133 VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
24134#endif
24135
24136#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24137VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV(
24138 VkQueue queue,
24139 const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
24140#endif
24141#endif
24142
24143
24144// VK_ARM_data_graph is a preprocessor guard. Do not pass it to API calls.
24145#define VK_ARM_data_graph 1
24146VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDataGraphPipelineSessionARM)
24147#define VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM 128U
24148#define VK_ARM_DATA_GRAPH_SPEC_VERSION 1
24149#define VK_ARM_DATA_GRAPH_EXTENSION_NAME "VK_ARM_data_graph"
24150
24151typedef enum VkDataGraphPipelineSessionBindPointARM {
24152 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TRANSIENT_ARM = 0,
24153 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_OPTICAL_FLOW_CACHE_ARM = 1000631001,
24154 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_NEURAL_ACCELERATOR_STATISTICS_ARM = 1000676000,
24155 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_MAX_ENUM_ARM = 0x7FFFFFFF
24156} VkDataGraphPipelineSessionBindPointARM;
24157
24158typedef enum VkDataGraphPipelineSessionBindPointTypeARM {
24159 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TYPE_MEMORY_ARM = 0,
24160 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
24161} VkDataGraphPipelineSessionBindPointTypeARM;
24162
24163typedef enum VkDataGraphPipelinePropertyARM {
24164 VK_DATA_GRAPH_PIPELINE_PROPERTY_CREATION_LOG_ARM = 0,
24165 VK_DATA_GRAPH_PIPELINE_PROPERTY_IDENTIFIER_ARM = 1,
24166 VK_DATA_GRAPH_PIPELINE_PROPERTY_NEURAL_ACCELERATOR_DEBUG_DATABASE_ARM = 1000676000,
24167 VK_DATA_GRAPH_PIPELINE_PROPERTY_NEURAL_ACCELERATOR_STATISTICS_INFO_ARM = 1000676001,
24168 VK_DATA_GRAPH_PIPELINE_PROPERTY_MAX_ENUM_ARM = 0x7FFFFFFF
24169} VkDataGraphPipelinePropertyARM;
24170
24171typedef enum VkPhysicalDeviceDataGraphProcessingEngineTypeARM {
24172 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_DEFAULT_ARM = 0,
24173 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_NEURAL_QCOM = 1000629000,
24174 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_COMPUTE_QCOM = 1000629001,
24175 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
24176} VkPhysicalDeviceDataGraphProcessingEngineTypeARM;
24177
24178typedef enum VkPhysicalDeviceDataGraphOperationTypeARM {
24179 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_SPIRV_EXTENDED_INSTRUCTION_SET_ARM = 0,
24180 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_NEURAL_MODEL_QCOM = 1000629000,
24181 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_BUILTIN_MODEL_QCOM = 1000629001,
24182 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_OPTICAL_FLOW_ARM = 1000631000,
24183 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
24184} VkPhysicalDeviceDataGraphOperationTypeARM;
24185typedef VkFlags64 VkDataGraphPipelineSessionCreateFlagsARM;
24186
24187// Flag bits for VkDataGraphPipelineSessionCreateFlagBitsARM
24188typedef VkFlags64 VkDataGraphPipelineSessionCreateFlagBitsARM;
24189static const VkDataGraphPipelineSessionCreateFlagBitsARM VK_DATA_GRAPH_PIPELINE_SESSION_CREATE_PROTECTED_BIT_ARM = 0x00000001ULL;
24190static const VkDataGraphPipelineSessionCreateFlagBitsARM VK_DATA_GRAPH_PIPELINE_SESSION_CREATE_OPTICAL_FLOW_CACHE_BIT_ARM = 0x00000002ULL;
24191
24192typedef VkFlags64 VkDataGraphPipelineDispatchFlagsARM;
24193
24194// Flag bits for VkDataGraphPipelineDispatchFlagBitsARM
24195typedef VkFlags64 VkDataGraphPipelineDispatchFlagBitsARM;
24196
24197typedef struct VkPhysicalDeviceDataGraphFeaturesARM {
24198 VkStructureType sType;
24199 void* pNext;
24200 VkBool32 dataGraph;
24201 VkBool32 dataGraphUpdateAfterBind;
24202 VkBool32 dataGraphSpecializationConstants;
24203 VkBool32 dataGraphDescriptorBuffer;
24204 VkBool32 dataGraphShaderModule;
24205} VkPhysicalDeviceDataGraphFeaturesARM;
24206
24207typedef struct VkDataGraphPipelineConstantARM {
24208 VkStructureType sType;
24209 const void* pNext;
24210 uint32_t id;
24211 const void* pConstantData;
24212} VkDataGraphPipelineConstantARM;
24213
24214typedef struct VkDataGraphPipelineResourceInfoARM {
24215 VkStructureType sType;
24216 const void* pNext;
24217 uint32_t descriptorSet;
24218 uint32_t binding;
24219 uint32_t arrayElement;
24220} VkDataGraphPipelineResourceInfoARM;
24221
24222typedef struct VkDataGraphPipelineCompilerControlCreateInfoARM {
24223 VkStructureType sType;
24224 const void* pNext;
24225 const char* pVendorOptions;
24226} VkDataGraphPipelineCompilerControlCreateInfoARM;
24227
24228typedef struct VkDataGraphPipelineCreateInfoARM {
24229 VkStructureType sType;
24230 const void* pNext;
24231 VkPipelineCreateFlags2 flags;
24232 VkPipelineLayout layout;
24233 uint32_t resourceInfoCount;
24234 const VkDataGraphPipelineResourceInfoARM* pResourceInfos;
24235} VkDataGraphPipelineCreateInfoARM;
24236
24237typedef struct VkDataGraphPipelineShaderModuleCreateInfoARM {
24238 VkStructureType sType;
24239 const void* pNext;
24240 VkShaderModule module;
24241 const char* pName;
24242 const VkSpecializationInfo* pSpecializationInfo;
24243 uint32_t constantCount;
24244 const VkDataGraphPipelineConstantARM* pConstants;
24245} VkDataGraphPipelineShaderModuleCreateInfoARM;
24246
24247typedef struct VkDataGraphPipelineSessionCreateInfoARM {
24248 VkStructureType sType;
24249 const void* pNext;
24250 VkDataGraphPipelineSessionCreateFlagsARM flags;
24251 VkPipeline dataGraphPipeline;
24252} VkDataGraphPipelineSessionCreateInfoARM;
24253
24254typedef struct VkDataGraphPipelineSessionBindPointRequirementsInfoARM {
24255 VkStructureType sType;
24256 const void* pNext;
24257 VkDataGraphPipelineSessionARM session;
24258} VkDataGraphPipelineSessionBindPointRequirementsInfoARM;
24259
24260typedef struct VkDataGraphPipelineSessionBindPointRequirementARM {
24261 VkStructureType sType;
24262 void* pNext;
24263 VkDataGraphPipelineSessionBindPointARM bindPoint;
24264 VkDataGraphPipelineSessionBindPointTypeARM bindPointType;
24265 uint32_t numObjects;
24266} VkDataGraphPipelineSessionBindPointRequirementARM;
24267
24268typedef struct VkDataGraphPipelineSessionMemoryRequirementsInfoARM {
24269 VkStructureType sType;
24270 const void* pNext;
24271 VkDataGraphPipelineSessionARM session;
24272 VkDataGraphPipelineSessionBindPointARM bindPoint;
24273 uint32_t objectIndex;
24274} VkDataGraphPipelineSessionMemoryRequirementsInfoARM;
24275
24276typedef struct VkBindDataGraphPipelineSessionMemoryInfoARM {
24277 VkStructureType sType;
24278 const void* pNext;
24279 VkDataGraphPipelineSessionARM session;
24280 VkDataGraphPipelineSessionBindPointARM bindPoint;
24281 uint32_t objectIndex;
24282 VkDeviceMemory memory;
24283 VkDeviceSize memoryOffset;
24284} VkBindDataGraphPipelineSessionMemoryInfoARM;
24285
24286typedef struct VkDataGraphPipelineInfoARM {
24287 VkStructureType sType;
24288 const void* pNext;
24289 VkPipeline dataGraphPipeline;
24290} VkDataGraphPipelineInfoARM;
24291
24292typedef struct VkDataGraphPipelinePropertyQueryResultARM {
24293 VkStructureType sType;
24294 void* pNext;
24295 VkDataGraphPipelinePropertyARM property;
24296 VkBool32 isText;
24297 size_t dataSize;
24298 void* pData;
24299} VkDataGraphPipelinePropertyQueryResultARM;
24300
24301typedef struct VkDataGraphPipelineIdentifierCreateInfoARM {
24302 VkStructureType sType;
24303 const void* pNext;
24304 uint32_t identifierSize;
24305 const uint8_t* pIdentifier;
24306} VkDataGraphPipelineIdentifierCreateInfoARM;
24307
24308typedef struct VkDataGraphPipelineDispatchInfoARM {
24309 VkStructureType sType;
24310 void* pNext;
24311 VkDataGraphPipelineDispatchFlagsARM flags;
24312} VkDataGraphPipelineDispatchInfoARM;
24313
24314typedef struct VkPhysicalDeviceDataGraphProcessingEngineARM {
24315 VkPhysicalDeviceDataGraphProcessingEngineTypeARM type;
24316 VkBool32 isForeign;
24317} VkPhysicalDeviceDataGraphProcessingEngineARM;
24318
24319typedef struct VkPhysicalDeviceDataGraphOperationSupportARM {
24320 VkPhysicalDeviceDataGraphOperationTypeARM operationType;
24321 char name[VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM];
24322 uint32_t version;
24323} VkPhysicalDeviceDataGraphOperationSupportARM;
24324
24325typedef struct VkQueueFamilyDataGraphPropertiesARM {
24326 VkStructureType sType;
24327 void* pNext;
24328 VkPhysicalDeviceDataGraphProcessingEngineARM engine;
24329 VkPhysicalDeviceDataGraphOperationSupportARM operation;
24330} VkQueueFamilyDataGraphPropertiesARM;
24331
24332typedef struct VkDataGraphProcessingEngineCreateInfoARM {
24333 VkStructureType sType;
24334 const void* pNext;
24335 uint32_t processingEngineCount;
24336 VkPhysicalDeviceDataGraphProcessingEngineARM* pProcessingEngines;
24337} VkDataGraphProcessingEngineCreateInfoARM;
24338
24339typedef struct VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM {
24340 VkStructureType sType;
24341 const void* pNext;
24342 uint32_t queueFamilyIndex;
24343 VkPhysicalDeviceDataGraphProcessingEngineTypeARM engineType;
24344} VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM;
24345
24346typedef struct VkQueueFamilyDataGraphProcessingEnginePropertiesARM {
24347 VkStructureType sType;
24348 void* pNext;
24349 VkExternalSemaphoreHandleTypeFlags foreignSemaphoreHandleTypes;
24350 VkExternalMemoryHandleTypeFlags foreignMemoryHandleTypes;
24351} VkQueueFamilyDataGraphProcessingEnginePropertiesARM;
24352
24353typedef struct VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {
24354 VkStructureType sType;
24355 const void* pNext;
24356 uint32_t dimension;
24357 uint32_t zeroCount;
24358 uint32_t groupSize;
24359} VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM;
24360
24361typedef VkResult (VKAPI_PTR *PFN_vkCreateDataGraphPipelinesARM)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkDataGraphPipelineCreateInfoARM* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
24362typedef VkResult (VKAPI_PTR *PFN_vkCreateDataGraphPipelineSessionARM)(VkDevice device, const VkDataGraphPipelineSessionCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDataGraphPipelineSessionARM* pSession);
24363typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM)(VkDevice device, const VkDataGraphPipelineSessionBindPointRequirementsInfoARM* pInfo, uint32_t* pBindPointRequirementCount, VkDataGraphPipelineSessionBindPointRequirementARM* pBindPointRequirements);
24364typedef void (VKAPI_PTR *PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM)(VkDevice device, const VkDataGraphPipelineSessionMemoryRequirementsInfoARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
24365typedef VkResult (VKAPI_PTR *PFN_vkBindDataGraphPipelineSessionMemoryARM)(VkDevice device, uint32_t bindInfoCount, const VkBindDataGraphPipelineSessionMemoryInfoARM* pBindInfos);
24366typedef void (VKAPI_PTR *PFN_vkDestroyDataGraphPipelineSessionARM)(VkDevice device, VkDataGraphPipelineSessionARM session, const VkAllocationCallbacks* pAllocator);
24367typedef void (VKAPI_PTR *PFN_vkCmdDispatchDataGraphARM)(VkCommandBuffer commandBuffer, VkDataGraphPipelineSessionARM session, const VkDataGraphPipelineDispatchInfoARM* pInfo);
24368typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelineAvailablePropertiesARM)(VkDevice device, const VkDataGraphPipelineInfoARM* pPipelineInfo, uint32_t* pPropertiesCount, VkDataGraphPipelinePropertyARM* pProperties);
24369typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelinePropertiesARM)(VkDevice device, const VkDataGraphPipelineInfoARM* pPipelineInfo, uint32_t propertiesCount, VkDataGraphPipelinePropertyQueryResultARM* pProperties);
24370typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pQueueFamilyDataGraphPropertyCount, VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties);
24371typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo, VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties);
24372
24373#ifndef VK_NO_PROTOTYPES
24374#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24375VKAPI_ATTR VkResult VKAPI_CALL vkCreateDataGraphPipelinesARM(
24376 VkDevice device,
24377 VkDeferredOperationKHR deferredOperation,
24378 VkPipelineCache pipelineCache,
24379 uint32_t createInfoCount,
24380 const VkDataGraphPipelineCreateInfoARM* pCreateInfos,
24381 const VkAllocationCallbacks* pAllocator,
24382 VkPipeline* pPipelines);
24383#endif
24384
24385#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24386VKAPI_ATTR VkResult VKAPI_CALL vkCreateDataGraphPipelineSessionARM(
24387 VkDevice device,
24388 const VkDataGraphPipelineSessionCreateInfoARM* pCreateInfo,
24389 const VkAllocationCallbacks* pAllocator,
24390 VkDataGraphPipelineSessionARM* pSession);
24391#endif
24392
24393#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24394VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelineSessionBindPointRequirementsARM(
24395 VkDevice device,
24396 const VkDataGraphPipelineSessionBindPointRequirementsInfoARM* pInfo,
24397 uint32_t* pBindPointRequirementCount,
24398 VkDataGraphPipelineSessionBindPointRequirementARM* pBindPointRequirements);
24399#endif
24400
24401#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24402VKAPI_ATTR void VKAPI_CALL vkGetDataGraphPipelineSessionMemoryRequirementsARM(
24403 VkDevice device,
24404 const VkDataGraphPipelineSessionMemoryRequirementsInfoARM* pInfo,
24405 VkMemoryRequirements2* pMemoryRequirements);
24406#endif
24407
24408#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24409VKAPI_ATTR VkResult VKAPI_CALL vkBindDataGraphPipelineSessionMemoryARM(
24410 VkDevice device,
24411 uint32_t bindInfoCount,
24412 const VkBindDataGraphPipelineSessionMemoryInfoARM* pBindInfos);
24413#endif
24414
24415#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24416VKAPI_ATTR void VKAPI_CALL vkDestroyDataGraphPipelineSessionARM(
24417 VkDevice device,
24418 VkDataGraphPipelineSessionARM session,
24419 const VkAllocationCallbacks* pAllocator);
24420#endif
24421
24422#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24423VKAPI_ATTR void VKAPI_CALL vkCmdDispatchDataGraphARM(
24424 VkCommandBuffer commandBuffer,
24425 VkDataGraphPipelineSessionARM session,
24426 const VkDataGraphPipelineDispatchInfoARM* pInfo);
24427#endif
24428
24429#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24430VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelineAvailablePropertiesARM(
24431 VkDevice device,
24432 const VkDataGraphPipelineInfoARM* pPipelineInfo,
24433 uint32_t* pPropertiesCount,
24434 VkDataGraphPipelinePropertyARM* pProperties);
24435#endif
24436
24437#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24438VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelinePropertiesARM(
24439 VkDevice device,
24440 const VkDataGraphPipelineInfoARM* pPipelineInfo,
24441 uint32_t propertiesCount,
24442 VkDataGraphPipelinePropertyQueryResultARM* pProperties);
24443#endif
24444
24445#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24446VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(
24447 VkPhysicalDevice physicalDevice,
24448 uint32_t queueFamilyIndex,
24449 uint32_t* pQueueFamilyDataGraphPropertyCount,
24450 VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties);
24451#endif
24452
24453#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24454VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(
24455 VkPhysicalDevice physicalDevice,
24456 const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo,
24457 VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties);
24458#endif
24459#endif
24460
24461
24462// VK_ARM_data_graph_instruction_set_tosa is a preprocessor guard. Do not pass it to API calls.
24463#define VK_ARM_data_graph_instruction_set_tosa 1
24464#define VK_MAX_DATA_GRAPH_TOSA_NAME_SIZE_ARM 128U
24465#define VK_ARM_DATA_GRAPH_INSTRUCTION_SET_TOSA_SPEC_VERSION 1
24466#define VK_ARM_DATA_GRAPH_INSTRUCTION_SET_TOSA_EXTENSION_NAME "VK_ARM_data_graph_instruction_set_tosa"
24467
24468typedef enum VkDataGraphTOSALevelARM {
24469 VK_DATA_GRAPH_TOSA_LEVEL_NONE_ARM = 0,
24470 VK_DATA_GRAPH_TOSA_LEVEL_8K_ARM = 1,
24471 VK_DATA_GRAPH_TOSALEVEL_MAX_ENUM_ARM = 0x7FFFFFFF
24472} VkDataGraphTOSALevelARM;
24473
24474typedef enum VkDataGraphTOSAQualityFlagBitsARM {
24475 VK_DATA_GRAPH_TOSA_QUALITY_ACCELERATED_ARM = 0x00000001,
24476 VK_DATA_GRAPH_TOSA_QUALITY_CONFORMANT_ARM = 0x00000002,
24477 VK_DATA_GRAPH_TOSA_QUALITY_EXPERIMENTAL_ARM = 0x00000004,
24478 VK_DATA_GRAPH_TOSA_QUALITY_DEPRECATED_ARM = 0x00000008,
24479 VK_DATA_GRAPH_TOSAQUALITY_FLAG_BITS_MAX_ENUM_ARM = 0x7FFFFFFF
24480} VkDataGraphTOSAQualityFlagBitsARM;
24481typedef VkFlags VkDataGraphTOSAQualityFlagsARM;
24482typedef struct VkDataGraphTOSANameQualityARM {
24483 char name[VK_MAX_DATA_GRAPH_TOSA_NAME_SIZE_ARM];
24484 VkDataGraphTOSAQualityFlagsARM qualityFlags;
24485} VkDataGraphTOSANameQualityARM;
24486
24487typedef struct VkQueueFamilyDataGraphTOSAPropertiesARM {
24488 VkStructureType sType;
24489 void* pNext;
24490 uint32_t profileCount;
24491 const VkDataGraphTOSANameQualityARM* pProfiles;
24492 uint32_t extensionCount;
24493 const VkDataGraphTOSANameQualityARM* pExtensions;
24494 VkDataGraphTOSALevelARM level;
24495} VkQueueFamilyDataGraphTOSAPropertiesARM;
24496
24497typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphEngineOperationPropertiesARM)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, const VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties, VkBaseOutStructure* pProperties);
24498
24499#ifndef VK_NO_PROTOTYPES
24500#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24501VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphEngineOperationPropertiesARM(
24502 VkPhysicalDevice physicalDevice,
24503 uint32_t queueFamilyIndex,
24504 const VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties,
24505 VkBaseOutStructure* pProperties);
24506#endif
24507#endif
24508
24509
24510// VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls.
24511#define VK_QCOM_multiview_per_view_render_areas 1
24512#define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1
24513#define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME "VK_QCOM_multiview_per_view_render_areas"
24514typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
24515 VkStructureType sType;
24516 void* pNext;
24517 VkBool32 multiviewPerViewRenderAreas;
24518} VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
24519
24520typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
24521 VkStructureType sType;
24522 const void* pNext;
24523 uint32_t perViewRenderAreaCount;
24524 const VkRect2D* pPerViewRenderAreas;
24525} VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
24526
24527
24528
24529// VK_NV_per_stage_descriptor_set is a preprocessor guard. Do not pass it to API calls.
24530#define VK_NV_per_stage_descriptor_set 1
24531#define VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION 1
24532#define VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME "VK_NV_per_stage_descriptor_set"
24533typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV {
24534 VkStructureType sType;
24535 void* pNext;
24536 VkBool32 perStageDescriptorSet;
24537 VkBool32 dynamicPipelineLayout;
24538} VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
24539
24540
24541
24542// VK_QCOM_image_processing2 is a preprocessor guard. Do not pass it to API calls.
24543#define VK_QCOM_image_processing2 1
24544#define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1
24545#define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2"
24546
24547typedef enum VkBlockMatchWindowCompareModeQCOM {
24548 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0,
24549 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1,
24550 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM = 0x7FFFFFFF
24551} VkBlockMatchWindowCompareModeQCOM;
24552typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM {
24553 VkStructureType sType;
24554 void* pNext;
24555 VkBool32 textureBlockMatch2;
24556} VkPhysicalDeviceImageProcessing2FeaturesQCOM;
24557
24558typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM {
24559 VkStructureType sType;
24560 void* pNext;
24561 VkExtent2D maxBlockMatchWindow;
24562} VkPhysicalDeviceImageProcessing2PropertiesQCOM;
24563
24564typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM {
24565 VkStructureType sType;
24566 const void* pNext;
24567 VkExtent2D windowExtent;
24568 VkBlockMatchWindowCompareModeQCOM windowCompareMode;
24569} VkSamplerBlockMatchWindowCreateInfoQCOM;
24570
24571
24572
24573// VK_QCOM_filter_cubic_weights is a preprocessor guard. Do not pass it to API calls.
24574#define VK_QCOM_filter_cubic_weights 1
24575#define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1
24576#define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights"
24577
24578typedef enum VkCubicFilterWeightsQCOM {
24579 VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0,
24580 VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1,
24581 VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2,
24582 VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3,
24583 VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM = 0x7FFFFFFF
24584} VkCubicFilterWeightsQCOM;
24585typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM {
24586 VkStructureType sType;
24587 void* pNext;
24588 VkBool32 selectableCubicWeights;
24589} VkPhysicalDeviceCubicWeightsFeaturesQCOM;
24590
24591typedef struct VkSamplerCubicWeightsCreateInfoQCOM {
24592 VkStructureType sType;
24593 const void* pNext;
24594 VkCubicFilterWeightsQCOM cubicWeights;
24595} VkSamplerCubicWeightsCreateInfoQCOM;
24596
24597typedef struct VkBlitImageCubicWeightsInfoQCOM {
24598 VkStructureType sType;
24599 const void* pNext;
24600 VkCubicFilterWeightsQCOM cubicWeights;
24601} VkBlitImageCubicWeightsInfoQCOM;
24602
24603
24604
24605// VK_QCOM_ycbcr_degamma is a preprocessor guard. Do not pass it to API calls.
24606#define VK_QCOM_ycbcr_degamma 1
24607#define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1
24608#define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma"
24609typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM {
24610 VkStructureType sType;
24611 void* pNext;
24612 VkBool32 ycbcrDegamma;
24613} VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
24614
24615typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
24616 VkStructureType sType;
24617 void* pNext;
24618 VkBool32 enableYDegamma;
24619 VkBool32 enableCbCrDegamma;
24620} VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
24621
24622
24623
24624// VK_QCOM_filter_cubic_clamp is a preprocessor guard. Do not pass it to API calls.
24625#define VK_QCOM_filter_cubic_clamp 1
24626#define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1
24627#define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp"
24628typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM {
24629 VkStructureType sType;
24630 void* pNext;
24631 VkBool32 cubicRangeClamp;
24632} VkPhysicalDeviceCubicClampFeaturesQCOM;
24633
24634
24635
24636// VK_EXT_attachment_feedback_loop_dynamic_state is a preprocessor guard. Do not pass it to API calls.
24637#define VK_EXT_attachment_feedback_loop_dynamic_state 1
24638#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1
24639#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state"
24640typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
24641 VkStructureType sType;
24642 void* pNext;
24643 VkBool32 attachmentFeedbackLoopDynamicState;
24644} VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
24645
24646typedef void (VKAPI_PTR *PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask);
24647
24648#ifndef VK_NO_PROTOTYPES
24649#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24650VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT(
24651 VkCommandBuffer commandBuffer,
24652 VkImageAspectFlags aspectMask);
24653#endif
24654#endif
24655
24656
24657// VK_MSFT_layered_driver is a preprocessor guard. Do not pass it to API calls.
24658#define VK_MSFT_layered_driver 1
24659#define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1
24660#define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver"
24661
24662typedef enum VkLayeredDriverUnderlyingApiMSFT {
24663 VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0,
24664 VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1,
24665 VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT = 0x7FFFFFFF
24666} VkLayeredDriverUnderlyingApiMSFT;
24667typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT {
24668 VkStructureType sType;
24669 void* pNext;
24670 VkLayeredDriverUnderlyingApiMSFT underlyingAPI;
24671} VkPhysicalDeviceLayeredDriverPropertiesMSFT;
24672
24673
24674
24675// VK_NV_descriptor_pool_overallocation is a preprocessor guard. Do not pass it to API calls.
24676#define VK_NV_descriptor_pool_overallocation 1
24677#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1
24678#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation"
24679typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
24680 VkStructureType sType;
24681 void* pNext;
24682 VkBool32 descriptorPoolOverallocation;
24683} VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
24684
24685
24686
24687// VK_QCOM_tile_memory_heap is a preprocessor guard. Do not pass it to API calls.
24688#define VK_QCOM_tile_memory_heap 1
24689#define VK_QCOM_TILE_MEMORY_HEAP_SPEC_VERSION 1
24690#define VK_QCOM_TILE_MEMORY_HEAP_EXTENSION_NAME "VK_QCOM_tile_memory_heap"
24691typedef struct VkPhysicalDeviceTileMemoryHeapFeaturesQCOM {
24692 VkStructureType sType;
24693 void* pNext;
24694 VkBool32 tileMemoryHeap;
24695} VkPhysicalDeviceTileMemoryHeapFeaturesQCOM;
24696
24697typedef struct VkPhysicalDeviceTileMemoryHeapPropertiesQCOM {
24698 VkStructureType sType;
24699 void* pNext;
24700 VkBool32 queueSubmitBoundary;
24701 VkBool32 tileBufferTransfers;
24702} VkPhysicalDeviceTileMemoryHeapPropertiesQCOM;
24703
24704typedef struct VkTileMemoryRequirementsQCOM {
24705 VkStructureType sType;
24706 void* pNext;
24707 VkDeviceSize size;
24708 VkDeviceSize alignment;
24709} VkTileMemoryRequirementsQCOM;
24710
24711typedef struct VkTileMemoryBindInfoQCOM {
24712 VkStructureType sType;
24713 const void* pNext;
24714 VkDeviceMemory memory;
24715} VkTileMemoryBindInfoQCOM;
24716
24717typedef struct VkTileMemorySizeInfoQCOM {
24718 VkStructureType sType;
24719 const void* pNext;
24720 VkDeviceSize size;
24721} VkTileMemorySizeInfoQCOM;
24722
24723typedef void (VKAPI_PTR *PFN_vkCmdBindTileMemoryQCOM)(VkCommandBuffer commandBuffer, const VkTileMemoryBindInfoQCOM* pTileMemoryBindInfo);
24724
24725#ifndef VK_NO_PROTOTYPES
24726#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24727VKAPI_ATTR void VKAPI_CALL vkCmdBindTileMemoryQCOM(
24728 VkCommandBuffer commandBuffer,
24729 const VkTileMemoryBindInfoQCOM* pTileMemoryBindInfo);
24730#endif
24731#endif
24732
24733
24734// VK_EXT_memory_decompression is a preprocessor guard. Do not pass it to API calls.
24735#define VK_EXT_memory_decompression 1
24736#define VK_EXT_MEMORY_DECOMPRESSION_SPEC_VERSION 1
24737#define VK_EXT_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_EXT_memory_decompression"
24738typedef struct VkDecompressMemoryRegionEXT {
24739 VkDeviceAddress srcAddress;
24740 VkDeviceAddress dstAddress;
24741 VkDeviceSize compressedSize;
24742 VkDeviceSize decompressedSize;
24743} VkDecompressMemoryRegionEXT;
24744
24745typedef struct VkDecompressMemoryInfoEXT {
24746 VkStructureType sType;
24747 const void* pNext;
24748 VkMemoryDecompressionMethodFlagsEXT decompressionMethod;
24749 uint32_t regionCount;
24750 const VkDecompressMemoryRegionEXT* pRegions;
24751} VkDecompressMemoryInfoEXT;
24752
24753typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryEXT)(VkCommandBuffer commandBuffer, const VkDecompressMemoryInfoEXT* pDecompressMemoryInfoEXT);
24754typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountEXT)(VkCommandBuffer commandBuffer, VkMemoryDecompressionMethodFlagsEXT decompressionMethod, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t maxDecompressionCount, uint32_t stride);
24755
24756#ifndef VK_NO_PROTOTYPES
24757#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24758VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryEXT(
24759 VkCommandBuffer commandBuffer,
24760 const VkDecompressMemoryInfoEXT* pDecompressMemoryInfoEXT);
24761#endif
24762
24763#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24764VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountEXT(
24765 VkCommandBuffer commandBuffer,
24766 VkMemoryDecompressionMethodFlagsEXT decompressionMethod,
24767 VkDeviceAddress indirectCommandsAddress,
24768 VkDeviceAddress indirectCommandsCountAddress,
24769 uint32_t maxDecompressionCount,
24770 uint32_t stride);
24771#endif
24772#endif
24773
24774
24775// VK_NV_display_stereo is a preprocessor guard. Do not pass it to API calls.
24776#define VK_NV_display_stereo 1
24777#define VK_NV_DISPLAY_STEREO_SPEC_VERSION 1
24778#define VK_NV_DISPLAY_STEREO_EXTENSION_NAME "VK_NV_display_stereo"
24779
24780typedef enum VkDisplaySurfaceStereoTypeNV {
24781 VK_DISPLAY_SURFACE_STEREO_TYPE_NONE_NV = 0,
24782 VK_DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV = 1,
24783 VK_DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV = 2,
24784 VK_DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV = 3,
24785 VK_DISPLAY_SURFACE_STEREO_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
24786} VkDisplaySurfaceStereoTypeNV;
24787typedef struct VkDisplaySurfaceStereoCreateInfoNV {
24788 VkStructureType sType;
24789 const void* pNext;
24790 VkDisplaySurfaceStereoTypeNV stereoType;
24791} VkDisplaySurfaceStereoCreateInfoNV;
24792
24793typedef struct VkDisplayModeStereoPropertiesNV {
24794 VkStructureType sType;
24795 void* pNext;
24796 VkBool32 hdmi3DSupported;
24797} VkDisplayModeStereoPropertiesNV;
24798
24799
24800
24801// VK_NV_raw_access_chains is a preprocessor guard. Do not pass it to API calls.
24802#define VK_NV_raw_access_chains 1
24803#define VK_NV_RAW_ACCESS_CHAINS_SPEC_VERSION 1
24804#define VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME "VK_NV_raw_access_chains"
24805typedef struct VkPhysicalDeviceRawAccessChainsFeaturesNV {
24806 VkStructureType sType;
24807 void* pNext;
24808 VkBool32 shaderRawAccessChains;
24809} VkPhysicalDeviceRawAccessChainsFeaturesNV;
24810
24811
24812
24813// VK_NV_external_compute_queue is a preprocessor guard. Do not pass it to API calls.
24814#define VK_NV_external_compute_queue 1
24815VK_DEFINE_HANDLE(VkExternalComputeQueueNV)
24816#define VK_NV_EXTERNAL_COMPUTE_QUEUE_SPEC_VERSION 1
24817#define VK_NV_EXTERNAL_COMPUTE_QUEUE_EXTENSION_NAME "VK_NV_external_compute_queue"
24818typedef struct VkExternalComputeQueueDeviceCreateInfoNV {
24819 VkStructureType sType;
24820 const void* pNext;
24821 uint32_t reservedExternalQueues;
24822} VkExternalComputeQueueDeviceCreateInfoNV;
24823
24824typedef struct VkExternalComputeQueueCreateInfoNV {
24825 VkStructureType sType;
24826 const void* pNext;
24827 VkQueue preferredQueue;
24828} VkExternalComputeQueueCreateInfoNV;
24829
24830typedef struct VkExternalComputeQueueDataParamsNV {
24831 VkStructureType sType;
24832 const void* pNext;
24833 uint32_t deviceIndex;
24834} VkExternalComputeQueueDataParamsNV;
24835
24836typedef struct VkPhysicalDeviceExternalComputeQueuePropertiesNV {
24837 VkStructureType sType;
24838 void* pNext;
24839 uint32_t externalDataSize;
24840 uint32_t maxExternalQueues;
24841} VkPhysicalDeviceExternalComputeQueuePropertiesNV;
24842
24843typedef VkResult (VKAPI_PTR *PFN_vkCreateExternalComputeQueueNV)(VkDevice device, const VkExternalComputeQueueCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkExternalComputeQueueNV* pExternalQueue);
24844typedef void (VKAPI_PTR *PFN_vkDestroyExternalComputeQueueNV)(VkDevice device, VkExternalComputeQueueNV externalQueue, const VkAllocationCallbacks* pAllocator);
24845typedef void (VKAPI_PTR *PFN_vkGetExternalComputeQueueDataNV)(VkExternalComputeQueueNV externalQueue, VkExternalComputeQueueDataParamsNV* params, void* pData);
24846
24847#ifndef VK_NO_PROTOTYPES
24848#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24849VKAPI_ATTR VkResult VKAPI_CALL vkCreateExternalComputeQueueNV(
24850 VkDevice device,
24851 const VkExternalComputeQueueCreateInfoNV* pCreateInfo,
24852 const VkAllocationCallbacks* pAllocator,
24853 VkExternalComputeQueueNV* pExternalQueue);
24854#endif
24855
24856#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24857VKAPI_ATTR void VKAPI_CALL vkDestroyExternalComputeQueueNV(
24858 VkDevice device,
24859 VkExternalComputeQueueNV externalQueue,
24860 const VkAllocationCallbacks* pAllocator);
24861#endif
24862
24863#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24864VKAPI_ATTR void VKAPI_CALL vkGetExternalComputeQueueDataNV(
24865 VkExternalComputeQueueNV externalQueue,
24866 VkExternalComputeQueueDataParamsNV* params,
24867 void* pData);
24868#endif
24869#endif
24870
24871
24872// VK_NV_command_buffer_inheritance is a preprocessor guard. Do not pass it to API calls.
24873#define VK_NV_command_buffer_inheritance 1
24874#define VK_NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION 1
24875#define VK_NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME "VK_NV_command_buffer_inheritance"
24876typedef struct VkPhysicalDeviceCommandBufferInheritanceFeaturesNV {
24877 VkStructureType sType;
24878 void* pNext;
24879 VkBool32 commandBufferInheritance;
24880} VkPhysicalDeviceCommandBufferInheritanceFeaturesNV;
24881
24882
24883
24884// VK_NV_shader_atomic_float16_vector is a preprocessor guard. Do not pass it to API calls.
24885#define VK_NV_shader_atomic_float16_vector 1
24886#define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION 1
24887#define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME "VK_NV_shader_atomic_float16_vector"
24888typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
24889 VkStructureType sType;
24890 void* pNext;
24891 VkBool32 shaderFloat16VectorAtomics;
24892} VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV;
24893
24894
24895
24896// VK_EXT_shader_replicated_composites is a preprocessor guard. Do not pass it to API calls.
24897#define VK_EXT_shader_replicated_composites 1
24898#define VK_EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION 1
24899#define VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME "VK_EXT_shader_replicated_composites"
24900typedef struct VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
24901 VkStructureType sType;
24902 void* pNext;
24903 VkBool32 shaderReplicatedComposites;
24904} VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT;
24905
24906
24907
24908// VK_ARM_tensor_controls is a preprocessor guard. Do not pass it to API calls.
24909#define VK_ARM_tensor_controls 1
24910#define VK_MAX_TENSOR_CREATE_INFO_ROLLING_BACKING_WRAP_COUNT_ARM 4U
24911#define VK_ARM_TENSOR_CONTROLS_SPEC_VERSION 1
24912#define VK_ARM_TENSOR_CONTROLS_EXTENSION_NAME "VK_ARM_tensor_controls"
24913typedef struct VkTensorRollingBackingCreateInfoARM {
24914 VkStructureType sType;
24915 const void* pNext;
24916 uint32_t wraps[VK_MAX_TENSOR_CREATE_INFO_ROLLING_BACKING_WRAP_COUNT_ARM];
24917} VkTensorRollingBackingCreateInfoARM;
24918
24919typedef struct VkTensorExplicitTilingFormatPropertiesARM {
24920 VkStructureType sType;
24921 void* pNext;
24922 VkFormatFeatureFlags2 brick16TilingTensorFeatures;
24923 VkFormatFeatureFlags2 brick8TilingTensorFeatures;
24924 VkFormatFeatureFlags2 brick4TilingTensorFeatures;
24925 VkFormatFeatureFlags2 blockUTilingTensorFeatures;
24926 VkFormatFeatureFlags2 blockU64kTilingTensorFeatures;
24927} VkTensorExplicitTilingFormatPropertiesARM;
24928
24929
24930
24931// VK_EXT_shader_float8 is a preprocessor guard. Do not pass it to API calls.
24932#define VK_EXT_shader_float8 1
24933#define VK_EXT_SHADER_FLOAT8_SPEC_VERSION 1
24934#define VK_EXT_SHADER_FLOAT8_EXTENSION_NAME "VK_EXT_shader_float8"
24935typedef struct VkPhysicalDeviceShaderFloat8FeaturesEXT {
24936 VkStructureType sType;
24937 void* pNext;
24938 VkBool32 shaderFloat8;
24939 VkBool32 shaderFloat8CooperativeMatrix;
24940} VkPhysicalDeviceShaderFloat8FeaturesEXT;
24941
24942
24943
24944// VK_NV_ray_tracing_validation is a preprocessor guard. Do not pass it to API calls.
24945#define VK_NV_ray_tracing_validation 1
24946#define VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION 1
24947#define VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME "VK_NV_ray_tracing_validation"
24948typedef struct VkPhysicalDeviceRayTracingValidationFeaturesNV {
24949 VkStructureType sType;
24950 void* pNext;
24951 VkBool32 rayTracingValidation;
24952} VkPhysicalDeviceRayTracingValidationFeaturesNV;
24953
24954
24955
24956// VK_NV_cluster_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
24957#define VK_NV_cluster_acceleration_structure 1
24958#define VK_NV_CLUSTER_ACCELERATION_STRUCTURE_SPEC_VERSION 4
24959#define VK_NV_CLUSTER_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_NV_cluster_acceleration_structure"
24960
24961typedef enum VkClusterAccelerationStructureTypeNV {
24962 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_CLUSTERS_BOTTOM_LEVEL_NV = 0,
24963 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_NV = 1,
24964 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_TEMPLATE_NV = 2,
24965 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
24966} VkClusterAccelerationStructureTypeNV;
24967
24968typedef enum VkClusterAccelerationStructureOpTypeNV {
24969 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV = 0,
24970 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_CLUSTERS_BOTTOM_LEVEL_NV = 1,
24971 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_NV = 2,
24972 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_TEMPLATE_NV = 3,
24973 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_INSTANTIATE_TRIANGLE_CLUSTER_NV = 4,
24974 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_GET_CLUSTER_TEMPLATE_INDICES_NV = 5,
24975 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
24976} VkClusterAccelerationStructureOpTypeNV;
24977
24978typedef enum VkClusterAccelerationStructureOpModeNV {
24979 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_IMPLICIT_DESTINATIONS_NV = 0,
24980 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_EXPLICIT_DESTINATIONS_NV = 1,
24981 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_COMPUTE_SIZES_NV = 2,
24982 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_MAX_ENUM_NV = 0x7FFFFFFF
24983} VkClusterAccelerationStructureOpModeNV;
24984
24985typedef enum VkClusterAccelerationStructureAddressResolutionFlagBitsNV {
24986 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_NONE_NV = 0,
24987 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_IMPLICIT_DATA_BIT_NV = 0x00000001,
24988 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SCRATCH_DATA_BIT_NV = 0x00000002,
24989 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_ADDRESS_ARRAY_BIT_NV = 0x00000004,
24990 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_SIZES_ARRAY_BIT_NV = 0x00000008,
24991 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_ARRAY_BIT_NV = 0x00000010,
24992 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_COUNT_BIT_NV = 0x00000020,
24993 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
24994} VkClusterAccelerationStructureAddressResolutionFlagBitsNV;
24995typedef VkFlags VkClusterAccelerationStructureAddressResolutionFlagsNV;
24996
24997typedef enum VkClusterAccelerationStructureClusterFlagBitsNV {
24998 VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_ALLOW_DISABLE_OPACITY_MICROMAPS_NV = 0x00000001,
24999 VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
25000} VkClusterAccelerationStructureClusterFlagBitsNV;
25001typedef VkFlags VkClusterAccelerationStructureClusterFlagsNV;
25002
25003typedef enum VkClusterAccelerationStructureGeometryFlagBitsNV {
25004 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_CULL_DISABLE_BIT_NV = 0x00000001,
25005 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_NO_DUPLICATE_ANYHIT_INVOCATION_BIT_NV = 0x00000002,
25006 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_OPAQUE_BIT_NV = 0x00000004,
25007 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
25008} VkClusterAccelerationStructureGeometryFlagBitsNV;
25009typedef VkFlags VkClusterAccelerationStructureGeometryFlagsNV;
25010
25011typedef enum VkClusterAccelerationStructureIndexFormatFlagBitsNV {
25012 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_8BIT_NV = 0x00000001,
25013 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_16BIT_NV = 0x00000002,
25014 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_32BIT_NV = 0x00000004,
25015 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
25016} VkClusterAccelerationStructureIndexFormatFlagBitsNV;
25017typedef VkFlags VkClusterAccelerationStructureIndexFormatFlagsNV;
25018typedef struct VkPhysicalDeviceClusterAccelerationStructureFeaturesNV {
25019 VkStructureType sType;
25020 void* pNext;
25021 VkBool32 clusterAccelerationStructure;
25022} VkPhysicalDeviceClusterAccelerationStructureFeaturesNV;
25023
25024typedef struct VkPhysicalDeviceClusterAccelerationStructurePropertiesNV {
25025 VkStructureType sType;
25026 void* pNext;
25027 uint32_t maxVerticesPerCluster;
25028 uint32_t maxTrianglesPerCluster;
25029 uint32_t clusterScratchByteAlignment;
25030 uint32_t clusterByteAlignment;
25031 uint32_t clusterTemplateByteAlignment;
25032 uint32_t clusterBottomLevelByteAlignment;
25033 uint32_t clusterTemplateBoundsByteAlignment;
25034 uint32_t maxClusterGeometryIndex;
25035} VkPhysicalDeviceClusterAccelerationStructurePropertiesNV;
25036
25037typedef struct VkClusterAccelerationStructureClustersBottomLevelInputNV {
25038 VkStructureType sType;
25039 void* pNext;
25040 uint32_t maxTotalClusterCount;
25041 uint32_t maxClusterCountPerAccelerationStructure;
25042} VkClusterAccelerationStructureClustersBottomLevelInputNV;
25043
25044typedef struct VkClusterAccelerationStructureTriangleClusterInputNV {
25045 VkStructureType sType;
25046 void* pNext;
25047 VkFormat vertexFormat;
25048 uint32_t maxGeometryIndexValue;
25049 uint32_t maxClusterUniqueGeometryCount;
25050 uint32_t maxClusterTriangleCount;
25051 uint32_t maxClusterVertexCount;
25052 uint32_t maxTotalTriangleCount;
25053 uint32_t maxTotalVertexCount;
25054 uint32_t minPositionTruncateBitCount;
25055} VkClusterAccelerationStructureTriangleClusterInputNV;
25056
25057typedef struct VkClusterAccelerationStructureMoveObjectsInputNV {
25058 VkStructureType sType;
25059 void* pNext;
25060 VkClusterAccelerationStructureTypeNV type;
25061 VkBool32 noMoveOverlap;
25062 VkDeviceSize maxMovedBytes;
25063} VkClusterAccelerationStructureMoveObjectsInputNV;
25064
25065typedef union VkClusterAccelerationStructureOpInputNV {
25066 VkClusterAccelerationStructureClustersBottomLevelInputNV* pClustersBottomLevel;
25067 VkClusterAccelerationStructureTriangleClusterInputNV* pTriangleClusters;
25068 VkClusterAccelerationStructureMoveObjectsInputNV* pMoveObjects;
25069} VkClusterAccelerationStructureOpInputNV;
25070
25071typedef struct VkClusterAccelerationStructureInputInfoNV {
25072 VkStructureType sType;
25073 void* pNext;
25074 uint32_t maxAccelerationStructureCount;
25075 VkBuildAccelerationStructureFlagsKHR flags;
25076 VkClusterAccelerationStructureOpTypeNV opType;
25077 VkClusterAccelerationStructureOpModeNV opMode;
25078 VkClusterAccelerationStructureOpInputNV opInput;
25079} VkClusterAccelerationStructureInputInfoNV;
25080
25081typedef struct VkStridedDeviceAddressRegionKHR {
25082 VkDeviceAddress deviceAddress;
25083 VkDeviceSize stride;
25084 VkDeviceSize size;
25085} VkStridedDeviceAddressRegionKHR;
25086
25087typedef struct VkClusterAccelerationStructureCommandsInfoNV {
25088 VkStructureType sType;
25089 void* pNext;
25090 VkClusterAccelerationStructureInputInfoNV input;
25091 VkDeviceAddress dstImplicitData;
25092 VkDeviceAddress scratchData;
25093 VkStridedDeviceAddressRegionKHR dstAddressesArray;
25094 VkStridedDeviceAddressRegionKHR dstSizesArray;
25095 VkStridedDeviceAddressRegionKHR srcInfosArray;
25096 VkDeviceAddress srcInfosCount;
25097 VkClusterAccelerationStructureAddressResolutionFlagsNV addressResolutionFlags;
25098} VkClusterAccelerationStructureCommandsInfoNV;
25099
25100typedef struct VkStridedDeviceAddressNV {
25101 VkDeviceAddress startAddress;
25102 VkDeviceSize strideInBytes;
25103} VkStridedDeviceAddressNV;
25104
25105typedef struct VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV {
25106 uint32_t geometryIndex:24;
25107 uint32_t reserved:5;
25108 uint32_t geometryFlags:3;
25109} VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV;
25110
25111typedef struct VkClusterAccelerationStructureMoveObjectsInfoNV {
25112 VkDeviceAddress srcAccelerationStructure;
25113} VkClusterAccelerationStructureMoveObjectsInfoNV;
25114
25115typedef struct VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV {
25116 uint32_t clusterReferencesCount;
25117 uint32_t clusterReferencesStride;
25118 VkDeviceAddress clusterReferences;
25119} VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV;
25120
25121typedef struct VkClusterAccelerationStructureBuildTriangleClusterInfoNV {
25122 uint32_t clusterID;
25123 VkClusterAccelerationStructureClusterFlagsNV clusterFlags;
25124 uint32_t triangleCount:9;
25125 uint32_t vertexCount:9;
25126 uint32_t positionTruncateBitCount:6;
25127 uint32_t indexType:4;
25128 uint32_t opacityMicromapIndexType:4;
25129 VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags;
25130 uint16_t indexBufferStride;
25131 uint16_t vertexBufferStride;
25132 uint16_t geometryIndexAndFlagsBufferStride;
25133 uint16_t opacityMicromapIndexBufferStride;
25134 VkDeviceAddress indexBuffer;
25135 VkDeviceAddress vertexBuffer;
25136 VkDeviceAddress geometryIndexAndFlagsBuffer;
25137 VkDeviceAddress opacityMicromapArray;
25138 VkDeviceAddress opacityMicromapIndexBuffer;
25139} VkClusterAccelerationStructureBuildTriangleClusterInfoNV;
25140
25141typedef struct VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV {
25142 uint32_t clusterID;
25143 VkClusterAccelerationStructureClusterFlagsNV clusterFlags;
25144 uint32_t triangleCount:9;
25145 uint32_t vertexCount:9;
25146 uint32_t positionTruncateBitCount:6;
25147 uint32_t indexType:4;
25148 uint32_t opacityMicromapIndexType:4;
25149 VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags;
25150 uint16_t indexBufferStride;
25151 uint16_t vertexBufferStride;
25152 uint16_t geometryIndexAndFlagsBufferStride;
25153 uint16_t opacityMicromapIndexBufferStride;
25154 VkDeviceAddress indexBuffer;
25155 VkDeviceAddress vertexBuffer;
25156 VkDeviceAddress geometryIndexAndFlagsBuffer;
25157 VkDeviceAddress opacityMicromapArray;
25158 VkDeviceAddress opacityMicromapIndexBuffer;
25159 VkDeviceAddress instantiationBoundingBoxLimit;
25160} VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV;
25161
25162typedef struct VkClusterAccelerationStructureInstantiateClusterInfoNV {
25163 uint32_t clusterIdOffset;
25164 uint32_t geometryIndexOffset:24;
25165 uint32_t reserved:8;
25166 VkDeviceAddress clusterTemplateAddress;
25167 VkStridedDeviceAddressNV vertexBuffer;
25168} VkClusterAccelerationStructureInstantiateClusterInfoNV;
25169
25170typedef struct VkClusterAccelerationStructureGetTemplateIndicesInfoNV {
25171 VkDeviceAddress clusterTemplateAddress;
25172} VkClusterAccelerationStructureGetTemplateIndicesInfoNV;
25173
25174typedef struct VkAccelerationStructureBuildSizesInfoKHR {
25175 VkStructureType sType;
25176 void* pNext;
25177 VkDeviceSize accelerationStructureSize;
25178 VkDeviceSize updateScratchSize;
25179 VkDeviceSize buildScratchSize;
25180} VkAccelerationStructureBuildSizesInfoKHR;
25181
25182typedef struct VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV {
25183 VkStructureType sType;
25184 void* pNext;
25185 VkBool32 allowClusterAccelerationStructure;
25186} VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV;
25187
25188typedef void (VKAPI_PTR *PFN_vkGetClusterAccelerationStructureBuildSizesNV)(VkDevice device, const VkClusterAccelerationStructureInputInfoNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
25189typedef void (VKAPI_PTR *PFN_vkCmdBuildClusterAccelerationStructureIndirectNV)(VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos);
25190
25191#ifndef VK_NO_PROTOTYPES
25192#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25193VKAPI_ATTR void VKAPI_CALL vkGetClusterAccelerationStructureBuildSizesNV(
25194 VkDevice device,
25195 const VkClusterAccelerationStructureInputInfoNV* pInfo,
25196 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
25197#endif
25198
25199#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25200VKAPI_ATTR void VKAPI_CALL vkCmdBuildClusterAccelerationStructureIndirectNV(
25201 VkCommandBuffer commandBuffer,
25202 const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos);
25203#endif
25204#endif
25205
25206
25207// VK_NV_partitioned_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
25208#define VK_NV_partitioned_acceleration_structure 1
25209#define VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_SPEC_VERSION 1
25210#define VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_NV_partitioned_acceleration_structure"
25211#define VK_PARTITIONED_ACCELERATION_STRUCTURE_PARTITION_INDEX_GLOBAL_NV (~0U)
25212
25213typedef enum VkPartitionedAccelerationStructureOpTypeNV {
25214 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_INSTANCE_NV = 0,
25215 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_UPDATE_INSTANCE_NV = 1,
25216 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_PARTITION_TRANSLATION_NV = 2,
25217 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
25218} VkPartitionedAccelerationStructureOpTypeNV;
25219
25220typedef enum VkPartitionedAccelerationStructureInstanceFlagBitsNV {
25221 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FACING_CULL_DISABLE_BIT_NV = 0x00000001,
25222 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FLIP_FACING_BIT_NV = 0x00000002,
25223 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_OPAQUE_BIT_NV = 0x00000004,
25224 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
25225 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_ENABLE_EXPLICIT_BOUNDING_BOX_NV = 0x00000010,
25226 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
25227} VkPartitionedAccelerationStructureInstanceFlagBitsNV;
25228typedef VkFlags VkPartitionedAccelerationStructureInstanceFlagsNV;
25229typedef struct VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV {
25230 VkStructureType sType;
25231 void* pNext;
25232 VkBool32 partitionedAccelerationStructure;
25233} VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV;
25234
25235typedef struct VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV {
25236 VkStructureType sType;
25237 void* pNext;
25238 uint32_t maxPartitionCount;
25239} VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV;
25240
25241typedef struct VkPartitionedAccelerationStructureFlagsNV {
25242 VkStructureType sType;
25243 void* pNext;
25244 VkBool32 enablePartitionTranslation;
25245} VkPartitionedAccelerationStructureFlagsNV;
25246
25247typedef struct VkBuildPartitionedAccelerationStructureIndirectCommandNV {
25248 VkPartitionedAccelerationStructureOpTypeNV opType;
25249 uint32_t argCount;
25250 VkStridedDeviceAddressNV argData;
25251} VkBuildPartitionedAccelerationStructureIndirectCommandNV;
25252
25253typedef struct VkPartitionedAccelerationStructureWriteInstanceDataNV {
25254 VkTransformMatrixKHR transform;
25255 float explicitAABB[6];
25256 uint32_t instanceID;
25257 uint32_t instanceMask;
25258 uint32_t instanceContributionToHitGroupIndex;
25259 VkPartitionedAccelerationStructureInstanceFlagsNV instanceFlags;
25260 uint32_t instanceIndex;
25261 uint32_t partitionIndex;
25262 VkDeviceAddress accelerationStructure;
25263} VkPartitionedAccelerationStructureWriteInstanceDataNV;
25264
25265typedef struct VkPartitionedAccelerationStructureUpdateInstanceDataNV {
25266 uint32_t instanceIndex;
25267 uint32_t instanceContributionToHitGroupIndex;
25268 VkDeviceAddress accelerationStructure;
25269} VkPartitionedAccelerationStructureUpdateInstanceDataNV;
25270
25271typedef struct VkPartitionedAccelerationStructureWritePartitionTranslationDataNV {
25272 uint32_t partitionIndex;
25273 float partitionTranslation[3];
25274} VkPartitionedAccelerationStructureWritePartitionTranslationDataNV;
25275
25276typedef struct VkWriteDescriptorSetPartitionedAccelerationStructureNV {
25277 VkStructureType sType;
25278 void* pNext;
25279 uint32_t accelerationStructureCount;
25280 const VkDeviceAddress* pAccelerationStructures;
25281} VkWriteDescriptorSetPartitionedAccelerationStructureNV;
25282
25283typedef struct VkPartitionedAccelerationStructureInstancesInputNV {
25284 VkStructureType sType;
25285 void* pNext;
25286 VkBuildAccelerationStructureFlagsKHR flags;
25287 uint32_t instanceCount;
25288 uint32_t maxInstancePerPartitionCount;
25289 uint32_t partitionCount;
25290 uint32_t maxInstanceInGlobalPartitionCount;
25291} VkPartitionedAccelerationStructureInstancesInputNV;
25292
25293typedef struct VkBuildPartitionedAccelerationStructureInfoNV {
25294 VkStructureType sType;
25295 void* pNext;
25296 VkPartitionedAccelerationStructureInstancesInputNV input;
25297 VkDeviceAddress srcAccelerationStructureData;
25298 VkDeviceAddress dstAccelerationStructureData;
25299 VkDeviceAddress scratchData;
25300 VkDeviceAddress srcInfos;
25301 VkDeviceAddress srcInfosCount;
25302} VkBuildPartitionedAccelerationStructureInfoNV;
25303
25304typedef void (VKAPI_PTR *PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV)(VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
25305typedef void (VKAPI_PTR *PFN_vkCmdBuildPartitionedAccelerationStructuresNV)(VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo);
25306
25307#ifndef VK_NO_PROTOTYPES
25308#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25309VKAPI_ATTR void VKAPI_CALL vkGetPartitionedAccelerationStructuresBuildSizesNV(
25310 VkDevice device,
25311 const VkPartitionedAccelerationStructureInstancesInputNV* pInfo,
25312 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
25313#endif
25314
25315#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25316VKAPI_ATTR void VKAPI_CALL vkCmdBuildPartitionedAccelerationStructuresNV(
25317 VkCommandBuffer commandBuffer,
25318 const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo);
25319#endif
25320#endif
25321
25322
25323// VK_EXT_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
25324#define VK_EXT_device_generated_commands 1
25325VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectExecutionSetEXT)
25326VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutEXT)
25327#define VK_EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
25328#define VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_EXT_device_generated_commands"
25329
25330typedef enum VkIndirectExecutionSetInfoTypeEXT {
25331 VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT = 0,
25332 VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT = 1,
25333 VK_INDIRECT_EXECUTION_SET_INFO_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
25334} VkIndirectExecutionSetInfoTypeEXT;
25335
25336typedef enum VkIndirectCommandsTokenTypeEXT {
25337 VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT = 0,
25338 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT = 1,
25339 VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT = 2,
25340 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT = 3,
25341 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT = 4,
25342 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT = 5,
25343 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT = 6,
25344 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT = 7,
25345 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT = 8,
25346 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT = 9,
25347 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_EXT = 1000135000,
25348 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_SEQUENCE_INDEX_EXT = 1000135001,
25349 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT = 1000202002,
25350 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT = 1000202003,
25351 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT = 1000328000,
25352 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT = 1000328001,
25353 VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT = 1000386004,
25354 VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
25355} VkIndirectCommandsTokenTypeEXT;
25356
25357typedef enum VkIndirectCommandsInputModeFlagBitsEXT {
25358 VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT = 0x00000001,
25359 VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT = 0x00000002,
25360 VK_INDIRECT_COMMANDS_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
25361} VkIndirectCommandsInputModeFlagBitsEXT;
25362typedef VkFlags VkIndirectCommandsInputModeFlagsEXT;
25363
25364typedef enum VkIndirectCommandsLayoutUsageFlagBitsEXT {
25365 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT = 0x00000001,
25366 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT = 0x00000002,
25367 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
25368} VkIndirectCommandsLayoutUsageFlagBitsEXT;
25369typedef VkFlags VkIndirectCommandsLayoutUsageFlagsEXT;
25370typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
25371 VkStructureType sType;
25372 void* pNext;
25373 VkBool32 deviceGeneratedCommands;
25374 VkBool32 dynamicGeneratedPipelineLayout;
25375} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;
25376
25377typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
25378 VkStructureType sType;
25379 void* pNext;
25380 uint32_t maxIndirectPipelineCount;
25381 uint32_t maxIndirectShaderObjectCount;
25382 uint32_t maxIndirectSequenceCount;
25383 uint32_t maxIndirectCommandsTokenCount;
25384 uint32_t maxIndirectCommandsTokenOffset;
25385 uint32_t maxIndirectCommandsIndirectStride;
25386 VkIndirectCommandsInputModeFlagsEXT supportedIndirectCommandsInputModes;
25387 VkShaderStageFlags supportedIndirectCommandsShaderStages;
25388 VkShaderStageFlags supportedIndirectCommandsShaderStagesPipelineBinding;
25389 VkShaderStageFlags supportedIndirectCommandsShaderStagesShaderBinding;
25390 VkBool32 deviceGeneratedCommandsTransformFeedback;
25391 VkBool32 deviceGeneratedCommandsMultiDrawIndirectCount;
25392} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;
25393
25394typedef struct VkGeneratedCommandsMemoryRequirementsInfoEXT {
25395 VkStructureType sType;
25396 const void* pNext;
25397 VkIndirectExecutionSetEXT indirectExecutionSet;
25398 VkIndirectCommandsLayoutEXT indirectCommandsLayout;
25399 uint32_t maxSequenceCount;
25400 uint32_t maxDrawCount;
25401} VkGeneratedCommandsMemoryRequirementsInfoEXT;
25402
25403typedef struct VkIndirectExecutionSetPipelineInfoEXT {
25404 VkStructureType sType;
25405 const void* pNext;
25406 VkPipeline initialPipeline;
25407 uint32_t maxPipelineCount;
25408} VkIndirectExecutionSetPipelineInfoEXT;
25409
25410typedef struct VkIndirectExecutionSetShaderLayoutInfoEXT {
25411 VkStructureType sType;
25412 const void* pNext;
25413 uint32_t setLayoutCount;
25414 const VkDescriptorSetLayout* pSetLayouts;
25415} VkIndirectExecutionSetShaderLayoutInfoEXT;
25416
25417typedef struct VkIndirectExecutionSetShaderInfoEXT {
25418 VkStructureType sType;
25419 const void* pNext;
25420 uint32_t shaderCount;
25421 const VkShaderEXT* pInitialShaders;
25422 const VkIndirectExecutionSetShaderLayoutInfoEXT* pSetLayoutInfos;
25423 uint32_t maxShaderCount;
25424 uint32_t pushConstantRangeCount;
25425 const VkPushConstantRange* pPushConstantRanges;
25426} VkIndirectExecutionSetShaderInfoEXT;
25427
25428typedef union VkIndirectExecutionSetInfoEXT {
25429 const VkIndirectExecutionSetPipelineInfoEXT* pPipelineInfo;
25430 const VkIndirectExecutionSetShaderInfoEXT* pShaderInfo;
25431} VkIndirectExecutionSetInfoEXT;
25432
25433typedef struct VkIndirectExecutionSetCreateInfoEXT {
25434 VkStructureType sType;
25435 const void* pNext;
25436 VkIndirectExecutionSetInfoTypeEXT type;
25437 VkIndirectExecutionSetInfoEXT info;
25438} VkIndirectExecutionSetCreateInfoEXT;
25439
25440typedef struct VkGeneratedCommandsInfoEXT {
25441 VkStructureType sType;
25442 const void* pNext;
25443 VkShaderStageFlags shaderStages;
25444 VkIndirectExecutionSetEXT indirectExecutionSet;
25445 VkIndirectCommandsLayoutEXT indirectCommandsLayout;
25446 VkDeviceAddress indirectAddress;
25447 VkDeviceSize indirectAddressSize;
25448 VkDeviceAddress preprocessAddress;
25449 VkDeviceSize preprocessSize;
25450 uint32_t maxSequenceCount;
25451 VkDeviceAddress sequenceCountAddress;
25452 uint32_t maxDrawCount;
25453} VkGeneratedCommandsInfoEXT;
25454
25455typedef struct VkWriteIndirectExecutionSetPipelineEXT {
25456 VkStructureType sType;
25457 const void* pNext;
25458 uint32_t index;
25459 VkPipeline pipeline;
25460} VkWriteIndirectExecutionSetPipelineEXT;
25461
25462typedef struct VkIndirectCommandsPushConstantTokenEXT {
25463 VkPushConstantRange updateRange;
25464} VkIndirectCommandsPushConstantTokenEXT;
25465
25466typedef struct VkIndirectCommandsVertexBufferTokenEXT {
25467 uint32_t vertexBindingUnit;
25468} VkIndirectCommandsVertexBufferTokenEXT;
25469
25470typedef struct VkIndirectCommandsIndexBufferTokenEXT {
25471 VkIndirectCommandsInputModeFlagBitsEXT mode;
25472} VkIndirectCommandsIndexBufferTokenEXT;
25473
25474typedef struct VkIndirectCommandsExecutionSetTokenEXT {
25475 VkIndirectExecutionSetInfoTypeEXT type;
25476 VkShaderStageFlags shaderStages;
25477} VkIndirectCommandsExecutionSetTokenEXT;
25478
25479typedef union VkIndirectCommandsTokenDataEXT {
25480 const VkIndirectCommandsPushConstantTokenEXT* pPushConstant;
25481 const VkIndirectCommandsVertexBufferTokenEXT* pVertexBuffer;
25482 const VkIndirectCommandsIndexBufferTokenEXT* pIndexBuffer;
25483 const VkIndirectCommandsExecutionSetTokenEXT* pExecutionSet;
25484} VkIndirectCommandsTokenDataEXT;
25485
25486typedef struct VkIndirectCommandsLayoutTokenEXT {
25487 VkStructureType sType;
25488 const void* pNext;
25489 VkIndirectCommandsTokenTypeEXT type;
25490 VkIndirectCommandsTokenDataEXT data;
25491 uint32_t offset;
25492} VkIndirectCommandsLayoutTokenEXT;
25493
25494typedef struct VkIndirectCommandsLayoutCreateInfoEXT {
25495 VkStructureType sType;
25496 const void* pNext;
25497 VkIndirectCommandsLayoutUsageFlagsEXT flags;
25498 VkShaderStageFlags shaderStages;
25499 uint32_t indirectStride;
25500 VkPipelineLayout pipelineLayout;
25501 uint32_t tokenCount;
25502 const VkIndirectCommandsLayoutTokenEXT* pTokens;
25503} VkIndirectCommandsLayoutCreateInfoEXT;
25504
25505typedef struct VkDrawIndirectCountIndirectCommandEXT {
25506 VkDeviceAddress bufferAddress;
25507 uint32_t stride;
25508 uint32_t commandCount;
25509} VkDrawIndirectCountIndirectCommandEXT;
25510
25511typedef struct VkBindVertexBufferIndirectCommandEXT {
25512 VkDeviceAddress bufferAddress;
25513 uint32_t size;
25514 uint32_t stride;
25515} VkBindVertexBufferIndirectCommandEXT;
25516
25517typedef struct VkBindIndexBufferIndirectCommandEXT {
25518 VkDeviceAddress bufferAddress;
25519 uint32_t size;
25520 VkIndexType indexType;
25521} VkBindIndexBufferIndirectCommandEXT;
25522
25523typedef struct VkGeneratedCommandsPipelineInfoEXT {
25524 VkStructureType sType;
25525 void* pNext;
25526 VkPipeline pipeline;
25527} VkGeneratedCommandsPipelineInfoEXT;
25528
25529typedef struct VkGeneratedCommandsShaderInfoEXT {
25530 VkStructureType sType;
25531 void* pNext;
25532 uint32_t shaderCount;
25533 const VkShaderEXT* pShaders;
25534} VkGeneratedCommandsShaderInfoEXT;
25535
25536typedef struct VkWriteIndirectExecutionSetShaderEXT {
25537 VkStructureType sType;
25538 const void* pNext;
25539 uint32_t index;
25540 VkShaderEXT shader;
25541} VkWriteIndirectExecutionSetShaderEXT;
25542
25543typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements);
25544typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo, VkCommandBuffer stateCommandBuffer);
25545typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);
25546typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutEXT)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout);
25547typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutEXT)(VkDevice device, VkIndirectCommandsLayoutEXT indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
25548typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectExecutionSetEXT)(VkDevice device, const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectExecutionSetEXT* pIndirectExecutionSet);
25549typedef void (VKAPI_PTR *PFN_vkDestroyIndirectExecutionSetEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, const VkAllocationCallbacks* pAllocator);
25550typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetPipelineEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
25551typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetShaderEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
25552
25553#ifndef VK_NO_PROTOTYPES
25554#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25555VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsEXT(
25556 VkDevice device,
25557 const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo,
25558 VkMemoryRequirements2* pMemoryRequirements);
25559#endif
25560
25561#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25562VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsEXT(
25563 VkCommandBuffer commandBuffer,
25564 const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo,
25565 VkCommandBuffer stateCommandBuffer);
25566#endif
25567
25568#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25569VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsEXT(
25570 VkCommandBuffer commandBuffer,
25571 VkBool32 isPreprocessed,
25572 const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);
25573#endif
25574
25575#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25576VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutEXT(
25577 VkDevice device,
25578 const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo,
25579 const VkAllocationCallbacks* pAllocator,
25580 VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout);
25581#endif
25582
25583#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25584VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutEXT(
25585 VkDevice device,
25586 VkIndirectCommandsLayoutEXT indirectCommandsLayout,
25587 const VkAllocationCallbacks* pAllocator);
25588#endif
25589
25590#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25591VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectExecutionSetEXT(
25592 VkDevice device,
25593 const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo,
25594 const VkAllocationCallbacks* pAllocator,
25595 VkIndirectExecutionSetEXT* pIndirectExecutionSet);
25596#endif
25597
25598#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25599VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectExecutionSetEXT(
25600 VkDevice device,
25601 VkIndirectExecutionSetEXT indirectExecutionSet,
25602 const VkAllocationCallbacks* pAllocator);
25603#endif
25604
25605#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25606VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetPipelineEXT(
25607 VkDevice device,
25608 VkIndirectExecutionSetEXT indirectExecutionSet,
25609 uint32_t executionSetWriteCount,
25610 const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
25611#endif
25612
25613#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25614VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetShaderEXT(
25615 VkDevice device,
25616 VkIndirectExecutionSetEXT indirectExecutionSet,
25617 uint32_t executionSetWriteCount,
25618 const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
25619#endif
25620#endif
25621
25622
25623// VK_MESA_image_alignment_control is a preprocessor guard. Do not pass it to API calls.
25624#define VK_MESA_image_alignment_control 1
25625#define VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION 1
25626#define VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME "VK_MESA_image_alignment_control"
25627typedef struct VkPhysicalDeviceImageAlignmentControlFeaturesMESA {
25628 VkStructureType sType;
25629 void* pNext;
25630 VkBool32 imageAlignmentControl;
25631} VkPhysicalDeviceImageAlignmentControlFeaturesMESA;
25632
25633typedef struct VkPhysicalDeviceImageAlignmentControlPropertiesMESA {
25634 VkStructureType sType;
25635 void* pNext;
25636 uint32_t supportedImageAlignmentMask;
25637} VkPhysicalDeviceImageAlignmentControlPropertiesMESA;
25638
25639typedef struct VkImageAlignmentControlCreateInfoMESA {
25640 VkStructureType sType;
25641 const void* pNext;
25642 uint32_t maximumRequestedAlignment;
25643} VkImageAlignmentControlCreateInfoMESA;
25644
25645
25646
25647// VK_NV_push_constant_bank is a preprocessor guard. Do not pass it to API calls.
25648#define VK_NV_push_constant_bank 1
25649#define VK_NV_PUSH_CONSTANT_BANK_SPEC_VERSION 1
25650#define VK_NV_PUSH_CONSTANT_BANK_EXTENSION_NAME "VK_NV_push_constant_bank"
25651typedef struct VkPushConstantBankInfoNV {
25652 VkStructureType sType;
25653 const void* pNext;
25654 uint32_t bank;
25655} VkPushConstantBankInfoNV;
25656
25657typedef struct VkPhysicalDevicePushConstantBankFeaturesNV {
25658 VkStructureType sType;
25659 void* pNext;
25660 VkBool32 pushConstantBank;
25661} VkPhysicalDevicePushConstantBankFeaturesNV;
25662
25663typedef struct VkPhysicalDevicePushConstantBankPropertiesNV {
25664 VkStructureType sType;
25665 void* pNext;
25666 uint32_t maxGraphicsPushConstantBanks;
25667 uint32_t maxComputePushConstantBanks;
25668 uint32_t maxGraphicsPushDataBanks;
25669 uint32_t maxComputePushDataBanks;
25670} VkPhysicalDevicePushConstantBankPropertiesNV;
25671
25672
25673
25674// VK_EXT_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
25675#define VK_EXT_ray_tracing_invocation_reorder 1
25676#define VK_EXT_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 2
25677#define VK_EXT_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_EXT_ray_tracing_invocation_reorder"
25678typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT {
25679 VkStructureType sType;
25680 void* pNext;
25681 VkRayTracingInvocationReorderModeEXT rayTracingInvocationReorderReorderingHint;
25682 uint32_t maxShaderBindingTableRecordIndex;
25683} VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT;
25684
25685typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT {
25686 VkStructureType sType;
25687 void* pNext;
25688 VkBool32 rayTracingInvocationReorder;
25689} VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT;
25690
25691
25692
25693// VK_EXT_depth_clamp_control is a preprocessor guard. Do not pass it to API calls.
25694#define VK_EXT_depth_clamp_control 1
25695#define VK_EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION 1
25696#define VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clamp_control"
25697typedef struct VkPhysicalDeviceDepthClampControlFeaturesEXT {
25698 VkStructureType sType;
25699 void* pNext;
25700 VkBool32 depthClampControl;
25701} VkPhysicalDeviceDepthClampControlFeaturesEXT;
25702
25703typedef struct VkPipelineViewportDepthClampControlCreateInfoEXT {
25704 VkStructureType sType;
25705 const void* pNext;
25706 VkDepthClampModeEXT depthClampMode;
25707 const VkDepthClampRangeEXT* pDepthClampRange;
25708} VkPipelineViewportDepthClampControlCreateInfoEXT;
25709
25710
25711
25712// VK_HUAWEI_hdr_vivid is a preprocessor guard. Do not pass it to API calls.
25713#define VK_HUAWEI_hdr_vivid 1
25714#define VK_HUAWEI_HDR_VIVID_SPEC_VERSION 1
25715#define VK_HUAWEI_HDR_VIVID_EXTENSION_NAME "VK_HUAWEI_hdr_vivid"
25716typedef struct VkPhysicalDeviceHdrVividFeaturesHUAWEI {
25717 VkStructureType sType;
25718 void* pNext;
25719 VkBool32 hdrVivid;
25720} VkPhysicalDeviceHdrVividFeaturesHUAWEI;
25721
25722typedef struct VkHdrVividDynamicMetadataHUAWEI {
25723 VkStructureType sType;
25724 const void* pNext;
25725 size_t dynamicMetadataSize;
25726 const void* pDynamicMetadata;
25727} VkHdrVividDynamicMetadataHUAWEI;
25728
25729
25730
25731// VK_NV_cooperative_matrix2 is a preprocessor guard. Do not pass it to API calls.
25732#define VK_NV_cooperative_matrix2 1
25733#define VK_NV_COOPERATIVE_MATRIX_2_SPEC_VERSION 1
25734#define VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME "VK_NV_cooperative_matrix2"
25735typedef struct VkCooperativeMatrixFlexibleDimensionsPropertiesNV {
25736 VkStructureType sType;
25737 void* pNext;
25738 uint32_t MGranularity;
25739 uint32_t NGranularity;
25740 uint32_t KGranularity;
25741 VkComponentTypeKHR AType;
25742 VkComponentTypeKHR BType;
25743 VkComponentTypeKHR CType;
25744 VkComponentTypeKHR ResultType;
25745 VkBool32 saturatingAccumulation;
25746 VkScopeKHR scope;
25747 uint32_t workgroupInvocations;
25748} VkCooperativeMatrixFlexibleDimensionsPropertiesNV;
25749
25750typedef struct VkPhysicalDeviceCooperativeMatrix2FeaturesNV {
25751 VkStructureType sType;
25752 void* pNext;
25753 VkBool32 cooperativeMatrixWorkgroupScope;
25754 VkBool32 cooperativeMatrixFlexibleDimensions;
25755 VkBool32 cooperativeMatrixReductions;
25756 VkBool32 cooperativeMatrixConversions;
25757 VkBool32 cooperativeMatrixPerElementOperations;
25758 VkBool32 cooperativeMatrixTensorAddressing;
25759 VkBool32 cooperativeMatrixBlockLoads;
25760} VkPhysicalDeviceCooperativeMatrix2FeaturesNV;
25761
25762typedef struct VkPhysicalDeviceCooperativeMatrix2PropertiesNV {
25763 VkStructureType sType;
25764 void* pNext;
25765 uint32_t cooperativeMatrixWorkgroupScopeMaxWorkgroupSize;
25766 uint32_t cooperativeMatrixFlexibleDimensionsMaxDimension;
25767 uint32_t cooperativeMatrixWorkgroupScopeReservedSharedMemory;
25768} VkPhysicalDeviceCooperativeMatrix2PropertiesNV;
25769
25770typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
25771
25772#ifndef VK_NO_PROTOTYPES
25773#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25774VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
25775 VkPhysicalDevice physicalDevice,
25776 uint32_t* pPropertyCount,
25777 VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
25778#endif
25779#endif
25780
25781
25782// VK_ARM_pipeline_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
25783#define VK_ARM_pipeline_opacity_micromap 1
25784#define VK_ARM_PIPELINE_OPACITY_MICROMAP_SPEC_VERSION 1
25785#define VK_ARM_PIPELINE_OPACITY_MICROMAP_EXTENSION_NAME "VK_ARM_pipeline_opacity_micromap"
25786typedef struct VkPhysicalDevicePipelineOpacityMicromapFeaturesARM {
25787 VkStructureType sType;
25788 void* pNext;
25789 VkBool32 pipelineOpacityMicromap;
25790} VkPhysicalDevicePipelineOpacityMicromapFeaturesARM;
25791
25792
25793
25794// VK_IMG_filter_linear_2d is a preprocessor guard. Do not pass it to API calls.
25795#define VK_IMG_filter_linear_2d 1
25796#define VK_IMG_FILTER_LINEAR_2D_SPEC_VERSION 1
25797#define VK_IMG_FILTER_LINEAR_2D_EXTENSION_NAME "VK_IMG_filter_linear_2d"
25798
25799
25800// VK_ARM_performance_counters_by_region is a preprocessor guard. Do not pass it to API calls.
25801#define VK_ARM_performance_counters_by_region 1
25802#define VK_ARM_PERFORMANCE_COUNTERS_BY_REGION_SPEC_VERSION 1
25803#define VK_ARM_PERFORMANCE_COUNTERS_BY_REGION_EXTENSION_NAME "VK_ARM_performance_counters_by_region"
25804typedef VkFlags VkPerformanceCounterDescriptionFlagsARM;
25805typedef struct VkPhysicalDevicePerformanceCountersByRegionFeaturesARM {
25806 VkStructureType sType;
25807 void* pNext;
25808 VkBool32 performanceCountersByRegion;
25809} VkPhysicalDevicePerformanceCountersByRegionFeaturesARM;
25810
25811typedef struct VkPhysicalDevicePerformanceCountersByRegionPropertiesARM {
25812 VkStructureType sType;
25813 void* pNext;
25814 uint32_t maxPerRegionPerformanceCounters;
25815 VkExtent2D performanceCounterRegionSize;
25816 uint32_t rowStrideAlignment;
25817 uint32_t regionAlignment;
25818 VkBool32 identityTransformOrder;
25819} VkPhysicalDevicePerformanceCountersByRegionPropertiesARM;
25820
25821typedef struct VkPerformanceCounterARM {
25822 VkStructureType sType;
25823 void* pNext;
25824 uint32_t counterID;
25825} VkPerformanceCounterARM;
25826
25827typedef struct VkPerformanceCounterDescriptionARM {
25828 VkStructureType sType;
25829 void* pNext;
25830 VkPerformanceCounterDescriptionFlagsARM flags;
25831 char name[VK_MAX_DESCRIPTION_SIZE];
25832} VkPerformanceCounterDescriptionARM;
25833
25834typedef struct VkRenderPassPerformanceCountersByRegionBeginInfoARM {
25835 VkStructureType sType;
25836 void* pNext;
25837 uint32_t counterAddressCount;
25838 const VkDeviceAddress* pCounterAddresses;
25839 VkBool32 serializeRegions;
25840 uint32_t counterIndexCount;
25841 uint32_t* pCounterIndices;
25842} VkRenderPassPerformanceCountersByRegionBeginInfoARM;
25843
25844typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterARM* pCounters, VkPerformanceCounterDescriptionARM* pCounterDescriptions);
25845
25846#ifndef VK_NO_PROTOTYPES
25847#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25848VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(
25849 VkPhysicalDevice physicalDevice,
25850 uint32_t queueFamilyIndex,
25851 uint32_t* pCounterCount,
25852 VkPerformanceCounterARM* pCounters,
25853 VkPerformanceCounterDescriptionARM* pCounterDescriptions);
25854#endif
25855#endif
25856
25857
25858// VK_ARM_shader_instrumentation is a preprocessor guard. Do not pass it to API calls.
25859#define VK_ARM_shader_instrumentation 1
25860VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderInstrumentationARM)
25861#define VK_ARM_SHADER_INSTRUMENTATION_SPEC_VERSION 1
25862#define VK_ARM_SHADER_INSTRUMENTATION_EXTENSION_NAME "VK_ARM_shader_instrumentation"
25863typedef VkFlags VkShaderInstrumentationValuesFlagsARM;
25864typedef struct VkPhysicalDeviceShaderInstrumentationFeaturesARM {
25865 VkStructureType sType;
25866 void* pNext;
25867 VkBool32 shaderInstrumentation;
25868} VkPhysicalDeviceShaderInstrumentationFeaturesARM;
25869
25870typedef struct VkPhysicalDeviceShaderInstrumentationPropertiesARM {
25871 VkStructureType sType;
25872 void* pNext;
25873 uint32_t numMetrics;
25874 VkBool32 perBasicBlockGranularity;
25875} VkPhysicalDeviceShaderInstrumentationPropertiesARM;
25876
25877typedef struct VkShaderInstrumentationCreateInfoARM {
25878 VkStructureType sType;
25879 void* pNext;
25880} VkShaderInstrumentationCreateInfoARM;
25881
25882typedef struct VkShaderInstrumentationMetricDescriptionARM {
25883 VkStructureType sType;
25884 void* pNext;
25885 char name[VK_MAX_DESCRIPTION_SIZE];
25886 char description[VK_MAX_DESCRIPTION_SIZE];
25887} VkShaderInstrumentationMetricDescriptionARM;
25888
25889typedef struct VkShaderInstrumentationMetricDataHeaderARM {
25890 uint32_t resultIndex;
25891 uint32_t resultSubIndex;
25892 VkShaderStageFlags stages;
25893 uint32_t basicBlockIndex;
25894} VkShaderInstrumentationMetricDataHeaderARM;
25895
25896typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM)(VkPhysicalDevice physicalDevice, uint32_t* pDescriptionCount, VkShaderInstrumentationMetricDescriptionARM* pDescriptions);
25897typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderInstrumentationARM)(VkDevice device, const VkShaderInstrumentationCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderInstrumentationARM* pInstrumentation);
25898typedef void (VKAPI_PTR *PFN_vkDestroyShaderInstrumentationARM)(VkDevice device, VkShaderInstrumentationARM instrumentation, const VkAllocationCallbacks* pAllocator);
25899typedef void (VKAPI_PTR *PFN_vkCmdBeginShaderInstrumentationARM)(VkCommandBuffer commandBuffer, VkShaderInstrumentationARM instrumentation);
25900typedef void (VKAPI_PTR *PFN_vkCmdEndShaderInstrumentationARM)(VkCommandBuffer commandBuffer);
25901typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInstrumentationValuesARM)(VkDevice device, VkShaderInstrumentationARM instrumentation, uint32_t* pMetricBlockCount, void* pMetricValues, VkShaderInstrumentationValuesFlagsARM flags);
25902typedef void (VKAPI_PTR *PFN_vkClearShaderInstrumentationMetricsARM)(VkDevice device, VkShaderInstrumentationARM instrumentation);
25903
25904#ifndef VK_NO_PROTOTYPES
25905#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25906VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM(
25907 VkPhysicalDevice physicalDevice,
25908 uint32_t* pDescriptionCount,
25909 VkShaderInstrumentationMetricDescriptionARM* pDescriptions);
25910#endif
25911
25912#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25913VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderInstrumentationARM(
25914 VkDevice device,
25915 const VkShaderInstrumentationCreateInfoARM* pCreateInfo,
25916 const VkAllocationCallbacks* pAllocator,
25917 VkShaderInstrumentationARM* pInstrumentation);
25918#endif
25919
25920#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25921VKAPI_ATTR void VKAPI_CALL vkDestroyShaderInstrumentationARM(
25922 VkDevice device,
25923 VkShaderInstrumentationARM instrumentation,
25924 const VkAllocationCallbacks* pAllocator);
25925#endif
25926
25927#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25928VKAPI_ATTR void VKAPI_CALL vkCmdBeginShaderInstrumentationARM(
25929 VkCommandBuffer commandBuffer,
25930 VkShaderInstrumentationARM instrumentation);
25931#endif
25932
25933#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25934VKAPI_ATTR void VKAPI_CALL vkCmdEndShaderInstrumentationARM(
25935 VkCommandBuffer commandBuffer);
25936#endif
25937
25938#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25939VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInstrumentationValuesARM(
25940 VkDevice device,
25941 VkShaderInstrumentationARM instrumentation,
25942 uint32_t* pMetricBlockCount,
25943 void* pMetricValues,
25944 VkShaderInstrumentationValuesFlagsARM flags);
25945#endif
25946
25947#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25948VKAPI_ATTR void VKAPI_CALL vkClearShaderInstrumentationMetricsARM(
25949 VkDevice device,
25950 VkShaderInstrumentationARM instrumentation);
25951#endif
25952#endif
25953
25954
25955// VK_EXT_vertex_attribute_robustness is a preprocessor guard. Do not pass it to API calls.
25956#define VK_EXT_vertex_attribute_robustness 1
25957#define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION 1
25958#define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_vertex_attribute_robustness"
25959typedef struct VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
25960 VkStructureType sType;
25961 void* pNext;
25962 VkBool32 vertexAttributeRobustness;
25963} VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT;
25964
25965
25966
25967// VK_ARM_format_pack is a preprocessor guard. Do not pass it to API calls.
25968#define VK_ARM_format_pack 1
25969#define VK_ARM_FORMAT_PACK_SPEC_VERSION 1
25970#define VK_ARM_FORMAT_PACK_EXTENSION_NAME "VK_ARM_format_pack"
25971typedef struct VkPhysicalDeviceFormatPackFeaturesARM {
25972 VkStructureType sType;
25973 void* pNext;
25974 VkBool32 formatPack;
25975} VkPhysicalDeviceFormatPackFeaturesARM;
25976
25977
25978
25979// VK_VALVE_fragment_density_map_layered is a preprocessor guard. Do not pass it to API calls.
25980#define VK_VALVE_fragment_density_map_layered 1
25981#define VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_SPEC_VERSION 1
25982#define VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_EXTENSION_NAME "VK_VALVE_fragment_density_map_layered"
25983typedef struct VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
25984 VkStructureType sType;
25985 void* pNext;
25986 VkBool32 fragmentDensityMapLayered;
25987} VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE;
25988
25989typedef struct VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
25990 VkStructureType sType;
25991 void* pNext;
25992 uint32_t maxFragmentDensityMapLayers;
25993} VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE;
25994
25995typedef struct VkPipelineFragmentDensityMapLayeredCreateInfoVALVE {
25996 VkStructureType sType;
25997 const void* pNext;
25998 uint32_t maxFragmentDensityMapLayers;
25999} VkPipelineFragmentDensityMapLayeredCreateInfoVALVE;
26000
26001
26002
26003// VK_NV_present_metering is a preprocessor guard. Do not pass it to API calls.
26004#define VK_NV_present_metering 1
26005#define VK_NV_PRESENT_METERING_SPEC_VERSION 1
26006#define VK_NV_PRESENT_METERING_EXTENSION_NAME "VK_NV_present_metering"
26007typedef struct VkSetPresentConfigNV {
26008 VkStructureType sType;
26009 const void* pNext;
26010 uint32_t numFramesPerBatch;
26011 uint32_t presentConfigFeedback;
26012} VkSetPresentConfigNV;
26013
26014typedef struct VkPhysicalDevicePresentMeteringFeaturesNV {
26015 VkStructureType sType;
26016 void* pNext;
26017 VkBool32 presentMetering;
26018} VkPhysicalDevicePresentMeteringFeaturesNV;
26019
26020
26021
26022// VK_EXT_multisampled_render_to_swapchain is a preprocessor guard. Do not pass it to API calls.
26023#define VK_EXT_multisampled_render_to_swapchain 1
26024#define VK_EXT_MULTISAMPLED_RENDER_TO_SWAPCHAIN_SPEC_VERSION 1
26025#define VK_EXT_MULTISAMPLED_RENDER_TO_SWAPCHAIN_EXTENSION_NAME "VK_EXT_multisampled_render_to_swapchain"
26026typedef struct VkPhysicalDeviceMultisampledRenderToSwapchainFeaturesEXT {
26027 VkStructureType sType;
26028 void* pNext;
26029 VkBool32 multisampledRenderToSwapchain;
26030} VkPhysicalDeviceMultisampledRenderToSwapchainFeaturesEXT;
26031
26032typedef struct VkSwapchainFlagsSurfaceCapabilitiesEXT {
26033 VkStructureType sType;
26034 void* pNext;
26035 VkSwapchainCreateFlagsKHR swapchainSupportedFlags;
26036} VkSwapchainFlagsSurfaceCapabilitiesEXT;
26037
26038
26039
26040// VK_EXT_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
26041#define VK_EXT_fragment_density_map_offset 1
26042#define VK_EXT_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1
26043#define VK_EXT_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_EXT_fragment_density_map_offset"
26044typedef VkRenderingEndInfoKHR VkRenderingEndInfoEXT;
26045
26046typedef void (VKAPI_PTR *PFN_vkCmdEndRendering2EXT)(VkCommandBuffer commandBuffer, const VkRenderingEndInfoKHR* pRenderingEndInfo);
26047
26048#ifndef VK_NO_PROTOTYPES
26049#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26050VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering2EXT(
26051 VkCommandBuffer commandBuffer,
26052 const VkRenderingEndInfoKHR* pRenderingEndInfo);
26053#endif
26054#endif
26055
26056
26057// VK_EXT_zero_initialize_device_memory is a preprocessor guard. Do not pass it to API calls.
26058#define VK_EXT_zero_initialize_device_memory 1
26059#define VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_SPEC_VERSION 1
26060#define VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_EXTENSION_NAME "VK_EXT_zero_initialize_device_memory"
26061typedef struct VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {
26062 VkStructureType sType;
26063 void* pNext;
26064 VkBool32 zeroInitializeDeviceMemory;
26065} VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT;
26066
26067
26068
26069// VK_EXT_shader_64bit_indexing is a preprocessor guard. Do not pass it to API calls.
26070#define VK_EXT_shader_64bit_indexing 1
26071#define VK_EXT_SHADER_64BIT_INDEXING_SPEC_VERSION 1
26072#define VK_EXT_SHADER_64BIT_INDEXING_EXTENSION_NAME "VK_EXT_shader_64bit_indexing"
26073typedef struct VkPhysicalDeviceShader64BitIndexingFeaturesEXT {
26074 VkStructureType sType;
26075 void* pNext;
26076 VkBool32 shader64BitIndexing;
26077} VkPhysicalDeviceShader64BitIndexingFeaturesEXT;
26078
26079
26080
26081// VK_EXT_custom_resolve is a preprocessor guard. Do not pass it to API calls.
26082#define VK_EXT_custom_resolve 1
26083#define VK_EXT_CUSTOM_RESOLVE_SPEC_VERSION 1
26084#define VK_EXT_CUSTOM_RESOLVE_EXTENSION_NAME "VK_EXT_custom_resolve"
26085typedef struct VkPhysicalDeviceCustomResolveFeaturesEXT {
26086 VkStructureType sType;
26087 void* pNext;
26088 VkBool32 customResolve;
26089} VkPhysicalDeviceCustomResolveFeaturesEXT;
26090
26091typedef struct VkBeginCustomResolveInfoEXT {
26092 VkStructureType sType;
26093 void* pNext;
26094} VkBeginCustomResolveInfoEXT;
26095
26096typedef struct VkCustomResolveCreateInfoEXT {
26097 VkStructureType sType;
26098 const void* pNext;
26099 VkBool32 customResolve;
26100 uint32_t colorAttachmentCount;
26101 const VkFormat* pColorAttachmentFormats;
26102 VkFormat depthAttachmentFormat;
26103 VkFormat stencilAttachmentFormat;
26104} VkCustomResolveCreateInfoEXT;
26105
26106typedef void (VKAPI_PTR *PFN_vkCmdBeginCustomResolveEXT)(VkCommandBuffer commandBuffer, const VkBeginCustomResolveInfoEXT* pBeginCustomResolveInfo);
26107
26108#ifndef VK_NO_PROTOTYPES
26109#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26110VKAPI_ATTR void VKAPI_CALL vkCmdBeginCustomResolveEXT(
26111 VkCommandBuffer commandBuffer,
26112 const VkBeginCustomResolveInfoEXT* pBeginCustomResolveInfo);
26113#endif
26114#endif
26115
26116
26117// VK_QCOM_data_graph_model is a preprocessor guard. Do not pass it to API calls.
26118#define VK_QCOM_data_graph_model 1
26119#define VK_DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM 3U
26120#define VK_QCOM_DATA_GRAPH_MODEL_SPEC_VERSION 1
26121#define VK_QCOM_DATA_GRAPH_MODEL_EXTENSION_NAME "VK_QCOM_data_graph_model"
26122
26123typedef enum VkDataGraphModelCacheTypeQCOM {
26124 VK_DATA_GRAPH_MODEL_CACHE_TYPE_GENERIC_BINARY_QCOM = 0,
26125 VK_DATA_GRAPH_MODEL_CACHE_TYPE_MAX_ENUM_QCOM = 0x7FFFFFFF
26126} VkDataGraphModelCacheTypeQCOM;
26127typedef struct VkPipelineCacheHeaderVersionDataGraphQCOM {
26128 uint32_t headerSize;
26129 VkPipelineCacheHeaderVersion headerVersion;
26130 VkDataGraphModelCacheTypeQCOM cacheType;
26131 uint32_t cacheVersion;
26132 uint32_t toolchainVersion[VK_DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM];
26133} VkPipelineCacheHeaderVersionDataGraphQCOM;
26134
26135typedef struct VkDataGraphPipelineBuiltinModelCreateInfoQCOM {
26136 VkStructureType sType;
26137 const void* pNext;
26138 const VkPhysicalDeviceDataGraphOperationSupportARM* pOperation;
26139} VkDataGraphPipelineBuiltinModelCreateInfoQCOM;
26140
26141typedef struct VkPhysicalDeviceDataGraphModelFeaturesQCOM {
26142 VkStructureType sType;
26143 void* pNext;
26144 VkBool32 dataGraphModel;
26145} VkPhysicalDeviceDataGraphModelFeaturesQCOM;
26146
26147
26148
26149// VK_ARM_data_graph_optical_flow is a preprocessor guard. Do not pass it to API calls.
26150#define VK_ARM_data_graph_optical_flow 1
26151#define VK_ARM_DATA_GRAPH_OPTICAL_FLOW_SPEC_VERSION 1
26152#define VK_ARM_DATA_GRAPH_OPTICAL_FLOW_EXTENSION_NAME "VK_ARM_data_graph_optical_flow"
26153
26154typedef enum VkDataGraphOpticalFlowPerformanceLevelARM {
26155 VK_DATA_GRAPH_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_ARM = 0,
26156 VK_DATA_GRAPH_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_ARM = 1,
26157 VK_DATA_GRAPH_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_ARM = 2,
26158 VK_DATA_GRAPH_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_ARM = 3,
26159 VK_DATA_GRAPH_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_ARM = 0x7FFFFFFF
26160} VkDataGraphOpticalFlowPerformanceLevelARM;
26161
26162typedef enum VkDataGraphPipelineNodeTypeARM {
26163 VK_DATA_GRAPH_PIPELINE_NODE_TYPE_OPTICAL_FLOW_ARM = 1000631000,
26164 VK_DATA_GRAPH_PIPELINE_NODE_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
26165} VkDataGraphPipelineNodeTypeARM;
26166
26167typedef enum VkDataGraphPipelineNodeConnectionTypeARM {
26168 VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_OPTICAL_FLOW_INPUT_ARM = 1000631000,
26169 VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_OPTICAL_FLOW_REFERENCE_ARM = 1000631001,
26170 VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_OPTICAL_FLOW_HINT_ARM = 1000631002,
26171 VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_OPTICAL_FLOW_FLOW_VECTOR_ARM = 1000631003,
26172 VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_OPTICAL_FLOW_COST_ARM = 1000631004,
26173 VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
26174} VkDataGraphPipelineNodeConnectionTypeARM;
26175
26176typedef enum VkDataGraphOpticalFlowGridSizeFlagBitsARM {
26177 VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_ARM = 0,
26178 VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_ARM = 0x00000001,
26179 VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_ARM = 0x00000002,
26180 VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_ARM = 0x00000004,
26181 VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_ARM = 0x00000008,
26182 VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_ARM = 0x7FFFFFFF
26183} VkDataGraphOpticalFlowGridSizeFlagBitsARM;
26184typedef VkFlags VkDataGraphOpticalFlowGridSizeFlagsARM;
26185
26186typedef enum VkDataGraphOpticalFlowCreateFlagBitsARM {
26187 VK_DATA_GRAPH_OPTICAL_FLOW_CREATE_ENABLE_HINT_BIT_ARM = 0x00000001,
26188 VK_DATA_GRAPH_OPTICAL_FLOW_CREATE_ENABLE_COST_BIT_ARM = 0x00000002,
26189 VK_DATA_GRAPH_OPTICAL_FLOW_CREATE_RESERVED_30_BIT_ARM = 0x40000000,
26190 VK_DATA_GRAPH_OPTICAL_FLOW_CREATE_FLAG_BITS_MAX_ENUM_ARM = 0x7FFFFFFF
26191} VkDataGraphOpticalFlowCreateFlagBitsARM;
26192typedef VkFlags VkDataGraphOpticalFlowCreateFlagsARM;
26193
26194typedef enum VkDataGraphOpticalFlowImageUsageFlagBitsARM {
26195 VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_UNKNOWN_ARM = 0,
26196 VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_INPUT_BIT_ARM = 0x00000001,
26197 VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_OUTPUT_BIT_ARM = 0x00000002,
26198 VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_HINT_BIT_ARM = 0x00000004,
26199 VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_COST_BIT_ARM = 0x00000008,
26200 VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_FLAG_BITS_MAX_ENUM_ARM = 0x7FFFFFFF
26201} VkDataGraphOpticalFlowImageUsageFlagBitsARM;
26202typedef VkFlags VkDataGraphOpticalFlowImageUsageFlagsARM;
26203
26204typedef enum VkDataGraphOpticalFlowExecuteFlagBitsARM {
26205 VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_ARM = 0x00000001,
26206 VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_INPUT_UNCHANGED_BIT_ARM = 0x00000002,
26207 VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_REFERENCE_UNCHANGED_BIT_ARM = 0x00000004,
26208 VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_INPUT_IS_PREVIOUS_REFERENCE_BIT_ARM = 0x00000008,
26209 VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_REFERENCE_IS_PREVIOUS_INPUT_BIT_ARM = 0x00000010,
26210 VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_ARM = 0x7FFFFFFF
26211} VkDataGraphOpticalFlowExecuteFlagBitsARM;
26212typedef VkFlags VkDataGraphOpticalFlowExecuteFlagsARM;
26213typedef struct VkPhysicalDeviceDataGraphOpticalFlowFeaturesARM {
26214 VkStructureType sType;
26215 void* pNext;
26216 VkBool32 dataGraphOpticalFlow;
26217} VkPhysicalDeviceDataGraphOpticalFlowFeaturesARM;
26218
26219typedef struct VkQueueFamilyDataGraphOpticalFlowPropertiesARM {
26220 VkStructureType sType;
26221 void* pNext;
26222 VkDataGraphOpticalFlowGridSizeFlagsARM supportedOutputGridSizes;
26223 VkDataGraphOpticalFlowGridSizeFlagsARM supportedHintGridSizes;
26224 VkBool32 hintSupported;
26225 VkBool32 costSupported;
26226 uint32_t minWidth;
26227 uint32_t minHeight;
26228 uint32_t maxWidth;
26229 uint32_t maxHeight;
26230} VkQueueFamilyDataGraphOpticalFlowPropertiesARM;
26231
26232typedef struct VkDataGraphPipelineOpticalFlowCreateInfoARM {
26233 VkStructureType sType;
26234 void* pNext;
26235 uint32_t width;
26236 uint32_t height;
26237 VkFormat imageFormat;
26238 VkFormat flowVectorFormat;
26239 VkFormat costFormat;
26240 VkDataGraphOpticalFlowGridSizeFlagsARM outputGridSize;
26241 VkDataGraphOpticalFlowGridSizeFlagsARM hintGridSize;
26242 VkDataGraphOpticalFlowPerformanceLevelARM performanceLevel;
26243 VkDataGraphOpticalFlowCreateFlagsARM flags;
26244} VkDataGraphPipelineOpticalFlowCreateInfoARM;
26245
26246typedef struct VkDataGraphOpticalFlowImageFormatPropertiesARM {
26247 VkStructureType sType;
26248 void* pNext;
26249 VkFormat format;
26250} VkDataGraphOpticalFlowImageFormatPropertiesARM;
26251
26252typedef struct VkDataGraphOpticalFlowImageFormatInfoARM {
26253 VkStructureType sType;
26254 const void* pNext;
26255 VkDataGraphOpticalFlowImageUsageFlagsARM usage;
26256} VkDataGraphOpticalFlowImageFormatInfoARM;
26257
26258typedef struct VkDataGraphPipelineOpticalFlowDispatchInfoARM {
26259 VkStructureType sType;
26260 void* pNext;
26261 VkDataGraphOpticalFlowExecuteFlagsARM flags;
26262 uint32_t meanFlowL1NormHint;
26263} VkDataGraphPipelineOpticalFlowDispatchInfoARM;
26264
26265typedef struct VkDataGraphPipelineResourceInfoImageLayoutARM {
26266 VkStructureType sType;
26267 const void* pNext;
26268 VkImageLayout layout;
26269} VkDataGraphPipelineResourceInfoImageLayoutARM;
26270
26271typedef struct VkDataGraphPipelineSingleNodeConnectionARM {
26272 VkStructureType sType;
26273 void* pNext;
26274 uint32_t set;
26275 uint32_t binding;
26276 VkDataGraphPipelineNodeConnectionTypeARM connection;
26277} VkDataGraphPipelineSingleNodeConnectionARM;
26278
26279typedef struct VkDataGraphPipelineSingleNodeCreateInfoARM {
26280 VkStructureType sType;
26281 void* pNext;
26282 VkDataGraphPipelineNodeTypeARM nodeType;
26283 uint32_t connectionCount;
26284 const VkDataGraphPipelineSingleNodeConnectionARM* pConnections;
26285} VkDataGraphPipelineSingleNodeCreateInfoARM;
26286
26287typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, const VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties, const VkDataGraphOpticalFlowImageFormatInfoARM* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkDataGraphOpticalFlowImageFormatPropertiesARM* pImageFormatProperties);
26288
26289#ifndef VK_NO_PROTOTYPES
26290#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26291VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM(
26292 VkPhysicalDevice physicalDevice,
26293 uint32_t queueFamilyIndex,
26294 const VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties,
26295 const VkDataGraphOpticalFlowImageFormatInfoARM* pOpticalFlowImageFormatInfo,
26296 uint32_t* pFormatCount,
26297 VkDataGraphOpticalFlowImageFormatPropertiesARM* pImageFormatProperties);
26298#endif
26299#endif
26300
26301
26302// VK_EXT_shader_long_vector is a preprocessor guard. Do not pass it to API calls.
26303#define VK_EXT_shader_long_vector 1
26304#define VK_EXT_SHADER_LONG_VECTOR_SPEC_VERSION 1
26305#define VK_EXT_SHADER_LONG_VECTOR_EXTENSION_NAME "VK_EXT_shader_long_vector"
26306typedef struct VkPhysicalDeviceShaderLongVectorFeaturesEXT {
26307 VkStructureType sType;
26308 void* pNext;
26309 VkBool32 longVector;
26310} VkPhysicalDeviceShaderLongVectorFeaturesEXT;
26311
26312typedef struct VkPhysicalDeviceShaderLongVectorPropertiesEXT {
26313 VkStructureType sType;
26314 void* pNext;
26315 uint32_t maxVectorComponents;
26316} VkPhysicalDeviceShaderLongVectorPropertiesEXT;
26317
26318
26319
26320// VK_SEC_pipeline_cache_incremental_mode is a preprocessor guard. Do not pass it to API calls.
26321#define VK_SEC_pipeline_cache_incremental_mode 1
26322#define VK_SEC_PIPELINE_CACHE_INCREMENTAL_MODE_SPEC_VERSION 1
26323#define VK_SEC_PIPELINE_CACHE_INCREMENTAL_MODE_EXTENSION_NAME "VK_SEC_pipeline_cache_incremental_mode"
26324typedef struct VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {
26325 VkStructureType sType;
26326 void* pNext;
26327 VkBool32 pipelineCacheIncrementalMode;
26328} VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC;
26329
26330
26331
26332// VK_EXT_shader_uniform_buffer_unsized_array is a preprocessor guard. Do not pass it to API calls.
26333#define VK_EXT_shader_uniform_buffer_unsized_array 1
26334#define VK_EXT_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_SPEC_VERSION 1
26335#define VK_EXT_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_EXTENSION_NAME "VK_EXT_shader_uniform_buffer_unsized_array"
26336typedef struct VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {
26337 VkStructureType sType;
26338 void* pNext;
26339 VkBool32 shaderUniformBufferUnsizedArray;
26340} VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT;
26341
26342
26343
26344// VK_NV_compute_occupancy_priority is a preprocessor guard. Do not pass it to API calls.
26345#define VK_NV_compute_occupancy_priority 1
26346#define VK_NV_COMPUTE_OCCUPANCY_PRIORITY_SPEC_VERSION 1
26347#define VK_NV_COMPUTE_OCCUPANCY_PRIORITY_EXTENSION_NAME "VK_NV_compute_occupancy_priority"
26348#define VK_COMPUTE_OCCUPANCY_PRIORITY_LOW_NV 0.25f
26349#define VK_COMPUTE_OCCUPANCY_PRIORITY_NORMAL_NV 0.50f
26350#define VK_COMPUTE_OCCUPANCY_PRIORITY_HIGH_NV 0.75f
26351typedef struct VkComputeOccupancyPriorityParametersNV {
26352 VkStructureType sType;
26353 const void* pNext;
26354 float occupancyPriority;
26355 float occupancyThrottling;
26356} VkComputeOccupancyPriorityParametersNV;
26357
26358typedef struct VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV {
26359 VkStructureType sType;
26360 void* pNext;
26361 VkBool32 computeOccupancyPriority;
26362} VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV;
26363
26364typedef void (VKAPI_PTR *PFN_vkCmdSetComputeOccupancyPriorityNV)(VkCommandBuffer commandBuffer, const VkComputeOccupancyPriorityParametersNV* pParameters);
26365
26366#ifndef VK_NO_PROTOTYPES
26367#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26368VKAPI_ATTR void VKAPI_CALL vkCmdSetComputeOccupancyPriorityNV(
26369 VkCommandBuffer commandBuffer,
26370 const VkComputeOccupancyPriorityParametersNV* pParameters);
26371#endif
26372#endif
26373
26374
26375// VK_EXT_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
26376#define VK_EXT_shader_subgroup_partitioned 1
26377#define VK_EXT_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
26378#define VK_EXT_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_EXT_shader_subgroup_partitioned"
26379typedef struct VkPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {
26380 VkStructureType sType;
26381 void* pNext;
26382 VkBool32 shaderSubgroupPartitioned;
26383} VkPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT;
26384
26385
26386
26387// VK_EXT_shader_ocp_microscaling_types is a preprocessor guard. Do not pass it to API calls.
26388#define VK_EXT_shader_ocp_microscaling_types 1
26389#define VK_EXT_SHADER_OCP_MICROSCALING_TYPES_SPEC_VERSION 1
26390#define VK_EXT_SHADER_OCP_MICROSCALING_TYPES_EXTENSION_NAME "VK_EXT_shader_ocp_microscaling_types"
26391typedef struct VkPhysicalDeviceShaderOCPMicroscalingTypesFeaturesEXT {
26392 VkStructureType sType;
26393 void* pNext;
26394 VkBool32 shaderFloat4;
26395 VkBool32 shaderFloat6;
26396 VkBool32 shaderFloat8UnsignedE8M0;
26397 VkBool32 shaderMXInt8;
26398} VkPhysicalDeviceShaderOCPMicroscalingTypesFeaturesEXT;
26399
26400
26401
26402// VK_VALVE_shader_mixed_float_dot_product is a preprocessor guard. Do not pass it to API calls.
26403#define VK_VALVE_shader_mixed_float_dot_product 1
26404#define VK_VALVE_SHADER_MIXED_FLOAT_DOT_PRODUCT_SPEC_VERSION 1
26405#define VK_VALVE_SHADER_MIXED_FLOAT_DOT_PRODUCT_EXTENSION_NAME "VK_VALVE_shader_mixed_float_dot_product"
26406typedef struct VkPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE {
26407 VkStructureType sType;
26408 void* pNext;
26409 VkBool32 shaderMixedFloatDotProductFloat16AccFloat32;
26410 VkBool32 shaderMixedFloatDotProductFloat16AccFloat16;
26411 VkBool32 shaderMixedFloatDotProductBFloat16Acc;
26412 VkBool32 shaderMixedFloatDotProductFloat8AccFloat32;
26413} VkPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE;
26414
26415
26416
26417// VK_SEC_throttle_hint is a preprocessor guard. Do not pass it to API calls.
26418#define VK_SEC_throttle_hint 1
26419#define VK_SEC_THROTTLE_HINT_SPEC_VERSION 1
26420#define VK_SEC_THROTTLE_HINT_EXTENSION_NAME "VK_SEC_throttle_hint"
26421
26422typedef enum VkThrottleHintTypeSEC {
26423 VK_THROTTLE_HINT_TYPE_DEFAULT_SEC = 0,
26424 VK_THROTTLE_HINT_TYPE_LOW_SEC = 1,
26425 VK_THROTTLE_HINT_TYPE_HIGH_SEC = 2,
26426 VK_THROTTLE_HINT_TYPE_MAX_ENUM_SEC = 0x7FFFFFFF
26427} VkThrottleHintTypeSEC;
26428typedef struct VkThrottleHintSubmitInfoSEC {
26429 VkStructureType sType;
26430 const void* pNext;
26431 VkThrottleHintTypeSEC throttleHint;
26432} VkThrottleHintSubmitInfoSEC;
26433
26434typedef struct VkPhysicalDeviceThrottleHintFeaturesSEC {
26435 VkStructureType sType;
26436 void* pNext;
26437 VkBool32 throttleHint;
26438} VkPhysicalDeviceThrottleHintFeaturesSEC;
26439
26440
26441
26442// VK_ARM_data_graph_neural_accelerator_statistics is a preprocessor guard. Do not pass it to API calls.
26443#define VK_ARM_data_graph_neural_accelerator_statistics 1
26444#define VK_ARM_DATA_GRAPH_NEURAL_ACCELERATOR_STATISTICS_SPEC_VERSION 1
26445#define VK_ARM_DATA_GRAPH_NEURAL_ACCELERATOR_STATISTICS_EXTENSION_NAME "VK_ARM_data_graph_neural_accelerator_statistics"
26446
26447typedef enum VkNeuralAcceleratorStatisticsModeARM {
26448 VK_NEURAL_ACCELERATOR_STATISTICS_MODE_DISABLED_ARM = 0,
26449 VK_NEURAL_ACCELERATOR_STATISTICS_MODE_STATISTICS0_ARM = 1,
26450 VK_NEURAL_ACCELERATOR_STATISTICS_MODE_STATISTICS1_ARM = 2,
26451 VK_NEURAL_ACCELERATOR_STATISTICS_MODE_MAX_ENUM_ARM = 0x7FFFFFFF
26452} VkNeuralAcceleratorStatisticsModeARM;
26453typedef struct VkPhysicalDeviceDataGraphNeuralAcceleratorStatisticsFeaturesARM {
26454 VkStructureType sType;
26455 void* pNext;
26456 VkBool32 dataGraphNeuralAcceleratorStatistics;
26457} VkPhysicalDeviceDataGraphNeuralAcceleratorStatisticsFeaturesARM;
26458
26459typedef struct VkDataGraphPipelineNeuralStatisticsCreateInfoARM {
26460 VkStructureType sType;
26461 const void* pNext;
26462 VkBool32 allowNeuralStatistics;
26463} VkDataGraphPipelineNeuralStatisticsCreateInfoARM;
26464
26465typedef struct VkDataGraphPipelineSessionNeuralStatisticsCreateInfoARM {
26466 VkStructureType sType;
26467 const void* pNext;
26468 VkNeuralAcceleratorStatisticsModeARM mode;
26469} VkDataGraphPipelineSessionNeuralStatisticsCreateInfoARM;
26470
26471
26472
26473// VK_EXT_primitive_restart_index is a preprocessor guard. Do not pass it to API calls.
26474#define VK_EXT_primitive_restart_index 1
26475#define VK_EXT_PRIMITIVE_RESTART_INDEX_SPEC_VERSION 1
26476#define VK_EXT_PRIMITIVE_RESTART_INDEX_EXTENSION_NAME "VK_EXT_primitive_restart_index"
26477typedef struct VkPhysicalDevicePrimitiveRestartIndexFeaturesEXT {
26478 VkStructureType sType;
26479 void* pNext;
26480 VkBool32 primitiveRestartIndex;
26481} VkPhysicalDevicePrimitiveRestartIndexFeaturesEXT;
26482
26483typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartIndexEXT)(VkCommandBuffer commandBuffer, uint32_t primitiveRestartIndex);
26484
26485#ifndef VK_NO_PROTOTYPES
26486#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26487VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartIndexEXT(
26488 VkCommandBuffer commandBuffer,
26489 uint32_t primitiveRestartIndex);
26490#endif
26491#endif
26492
26493
26494// VK_NV_cooperative_matrix_decode_vector is a preprocessor guard. Do not pass it to API calls.
26495#define VK_NV_cooperative_matrix_decode_vector 1
26496#define VK_NV_COOPERATIVE_MATRIX_DECODE_VECTOR_SPEC_VERSION 1
26497#define VK_NV_COOPERATIVE_MATRIX_DECODE_VECTOR_EXTENSION_NAME "VK_NV_cooperative_matrix_decode_vector"
26498typedef struct VkPhysicalDeviceCooperativeMatrixDecodeVectorFeaturesNV {
26499 VkStructureType sType;
26500 void* pNext;
26501 VkBool32 cooperativeMatrixDecodeVector;
26502} VkPhysicalDeviceCooperativeMatrixDecodeVectorFeaturesNV;
26503
26504
26505
26506// VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
26507#define VK_KHR_acceleration_structure 1
26508#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
26509#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
26510
26511typedef enum VkBuildAccelerationStructureModeKHR {
26512 VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
26513 VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
26514 VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
26515} VkBuildAccelerationStructureModeKHR;
26516typedef struct VkAccelerationStructureBuildRangeInfoKHR {
26517 uint32_t primitiveCount;
26518 uint32_t primitiveOffset;
26519 uint32_t firstVertex;
26520 uint32_t transformOffset;
26521} VkAccelerationStructureBuildRangeInfoKHR;
26522
26523typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
26524 VkStructureType sType;
26525 const void* pNext;
26526 VkFormat vertexFormat;
26527 VkDeviceOrHostAddressConstKHR vertexData;
26528 VkDeviceSize vertexStride;
26529 uint32_t maxVertex;
26530 VkIndexType indexType;
26531 VkDeviceOrHostAddressConstKHR indexData;
26532 VkDeviceOrHostAddressConstKHR transformData;
26533} VkAccelerationStructureGeometryTrianglesDataKHR;
26534
26535typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
26536 VkStructureType sType;
26537 const void* pNext;
26538 VkDeviceOrHostAddressConstKHR data;
26539 VkDeviceSize stride;
26540} VkAccelerationStructureGeometryAabbsDataKHR;
26541
26542typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
26543 VkStructureType sType;
26544 const void* pNext;
26545 VkBool32 arrayOfPointers;
26546 VkDeviceOrHostAddressConstKHR data;
26547} VkAccelerationStructureGeometryInstancesDataKHR;
26548
26549typedef union VkAccelerationStructureGeometryDataKHR {
26550 VkAccelerationStructureGeometryTrianglesDataKHR triangles;
26551 VkAccelerationStructureGeometryAabbsDataKHR aabbs;
26552 VkAccelerationStructureGeometryInstancesDataKHR instances;
26553} VkAccelerationStructureGeometryDataKHR;
26554
26555typedef struct VkAccelerationStructureGeometryKHR {
26556 VkStructureType sType;
26557 const void* pNext;
26558 VkGeometryTypeKHR geometryType;
26559 VkAccelerationStructureGeometryDataKHR geometry;
26560 VkGeometryFlagsKHR flags;
26561} VkAccelerationStructureGeometryKHR;
26562
26563typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
26564 VkStructureType sType;
26565 const void* pNext;
26566 VkAccelerationStructureTypeKHR type;
26567 VkBuildAccelerationStructureFlagsKHR flags;
26568 VkBuildAccelerationStructureModeKHR mode;
26569 VkAccelerationStructureKHR srcAccelerationStructure;
26570 VkAccelerationStructureKHR dstAccelerationStructure;
26571 uint32_t geometryCount;
26572 const VkAccelerationStructureGeometryKHR* pGeometries;
26573 const VkAccelerationStructureGeometryKHR* const* ppGeometries;
26574 VkDeviceOrHostAddressKHR scratchData;
26575} VkAccelerationStructureBuildGeometryInfoKHR;
26576
26577typedef struct VkAccelerationStructureCreateInfoKHR {
26578 VkStructureType sType;
26579 const void* pNext;
26580 VkAccelerationStructureCreateFlagsKHR createFlags;
26581 VkBuffer buffer;
26582 VkDeviceSize offset;
26583 VkDeviceSize size;
26584 VkAccelerationStructureTypeKHR type;
26585 VkDeviceAddress deviceAddress;
26586} VkAccelerationStructureCreateInfoKHR;
26587
26588typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
26589 VkStructureType sType;
26590 const void* pNext;
26591 uint32_t accelerationStructureCount;
26592 const VkAccelerationStructureKHR* pAccelerationStructures;
26593} VkWriteDescriptorSetAccelerationStructureKHR;
26594
26595typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
26596 VkStructureType sType;
26597 void* pNext;
26598 VkBool32 accelerationStructure;
26599 VkBool32 accelerationStructureCaptureReplay;
26600 VkBool32 accelerationStructureIndirectBuild;
26601 // accelerationStructureHostCommands is legacy, but no reason was given in the API XML
26602 VkBool32 accelerationStructureHostCommands;
26603 VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind;
26604} VkPhysicalDeviceAccelerationStructureFeaturesKHR;
26605
26606typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
26607 VkStructureType sType;
26608 void* pNext;
26609 uint64_t maxGeometryCount;
26610 uint64_t maxInstanceCount;
26611 uint64_t maxPrimitiveCount;
26612 uint32_t maxPerStageDescriptorAccelerationStructures;
26613 uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
26614 uint32_t maxDescriptorSetAccelerationStructures;
26615 uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures;
26616 uint32_t minAccelerationStructureScratchOffsetAlignment;
26617} VkPhysicalDeviceAccelerationStructurePropertiesKHR;
26618
26619typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
26620 VkStructureType sType;
26621 const void* pNext;
26622 VkAccelerationStructureKHR accelerationStructure;
26623} VkAccelerationStructureDeviceAddressInfoKHR;
26624
26625typedef struct VkAccelerationStructureVersionInfoKHR {
26626 VkStructureType sType;
26627 const void* pNext;
26628 const uint8_t* pVersionData;
26629} VkAccelerationStructureVersionInfoKHR;
26630
26631typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
26632 VkStructureType sType;
26633 const void* pNext;
26634 VkAccelerationStructureKHR src;
26635 VkDeviceOrHostAddressKHR dst;
26636 VkCopyAccelerationStructureModeKHR mode;
26637} VkCopyAccelerationStructureToMemoryInfoKHR;
26638
26639typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
26640 VkStructureType sType;
26641 const void* pNext;
26642 VkDeviceOrHostAddressConstKHR src;
26643 VkAccelerationStructureKHR dst;
26644 VkCopyAccelerationStructureModeKHR mode;
26645} VkCopyMemoryToAccelerationStructureInfoKHR;
26646
26647typedef struct VkCopyAccelerationStructureInfoKHR {
26648 VkStructureType sType;
26649 const void* pNext;
26650 VkAccelerationStructureKHR src;
26651 VkAccelerationStructureKHR dst;
26652 VkCopyAccelerationStructureModeKHR mode;
26653} VkCopyAccelerationStructureInfoKHR;
26654
26655typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure);
26656typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
26657typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
26658typedef 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);
26659typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
26660typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
26661typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
26662typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
26663typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
26664typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
26665typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
26666typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
26667typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
26668typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
26669typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
26670typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
26671
26672#ifndef VK_NO_PROTOTYPES
26673#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26674VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
26675 VkDevice device,
26676 const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
26677 const VkAllocationCallbacks* pAllocator,
26678 VkAccelerationStructureKHR* pAccelerationStructure);
26679#endif
26680
26681#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26682VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
26683 VkDevice device,
26684 VkAccelerationStructureKHR accelerationStructure,
26685 const VkAllocationCallbacks* pAllocator);
26686#endif
26687
26688#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26689VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
26690 VkCommandBuffer commandBuffer,
26691 uint32_t infoCount,
26692 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
26693 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
26694#endif
26695
26696#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26697VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
26698 VkCommandBuffer commandBuffer,
26699 uint32_t infoCount,
26700 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
26701 const VkDeviceAddress* pIndirectDeviceAddresses,
26702 const uint32_t* pIndirectStrides,
26703 const uint32_t* const* ppMaxPrimitiveCounts);
26704#endif
26705
26706#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26707VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
26708 VkDevice device,
26709 VkDeferredOperationKHR deferredOperation,
26710 uint32_t infoCount,
26711 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
26712 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
26713#endif
26714
26715#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26716VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
26717 VkDevice device,
26718 VkDeferredOperationKHR deferredOperation,
26719 const VkCopyAccelerationStructureInfoKHR* pInfo);
26720#endif
26721
26722#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26723VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
26724 VkDevice device,
26725 VkDeferredOperationKHR deferredOperation,
26726 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
26727#endif
26728
26729#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26730VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
26731 VkDevice device,
26732 VkDeferredOperationKHR deferredOperation,
26733 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
26734#endif
26735
26736#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26737VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
26738 VkDevice device,
26739 uint32_t accelerationStructureCount,
26740 const VkAccelerationStructureKHR* pAccelerationStructures,
26741 VkQueryType queryType,
26742 size_t dataSize,
26743 void* pData,
26744 size_t stride);
26745#endif
26746
26747#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26748VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
26749 VkCommandBuffer commandBuffer,
26750 const VkCopyAccelerationStructureInfoKHR* pInfo);
26751#endif
26752
26753#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26754VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
26755 VkCommandBuffer commandBuffer,
26756 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
26757#endif
26758
26759#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26760VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
26761 VkCommandBuffer commandBuffer,
26762 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
26763#endif
26764
26765#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26766VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
26767 VkDevice device,
26768 const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
26769#endif
26770
26771#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26772VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
26773 VkCommandBuffer commandBuffer,
26774 uint32_t accelerationStructureCount,
26775 const VkAccelerationStructureKHR* pAccelerationStructures,
26776 VkQueryType queryType,
26777 VkQueryPool queryPool,
26778 uint32_t firstQuery);
26779#endif
26780
26781#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26782VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
26783 VkDevice device,
26784 const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
26785 VkAccelerationStructureCompatibilityKHR* pCompatibility);
26786#endif
26787
26788#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26789VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
26790 VkDevice device,
26791 VkAccelerationStructureBuildTypeKHR buildType,
26792 const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
26793 const uint32_t* pMaxPrimitiveCounts,
26794 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
26795#endif
26796#endif
26797
26798
26799// VK_KHR_ray_tracing_pipeline is a preprocessor guard. Do not pass it to API calls.
26800#define VK_KHR_ray_tracing_pipeline 1
26801#define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
26802#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
26803
26804typedef enum VkShaderGroupShaderKHR {
26805 VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0,
26806 VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1,
26807 VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2,
26808 VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
26809 VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF
26810} VkShaderGroupShaderKHR;
26811typedef struct VkRayTracingShaderGroupCreateInfoKHR {
26812 VkStructureType sType;
26813 const void* pNext;
26814 VkRayTracingShaderGroupTypeKHR type;
26815 uint32_t generalShader;
26816 uint32_t closestHitShader;
26817 uint32_t anyHitShader;
26818 uint32_t intersectionShader;
26819 const void* pShaderGroupCaptureReplayHandle;
26820} VkRayTracingShaderGroupCreateInfoKHR;
26821
26822typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
26823 VkStructureType sType;
26824 const void* pNext;
26825 uint32_t maxPipelineRayPayloadSize;
26826 uint32_t maxPipelineRayHitAttributeSize;
26827} VkRayTracingPipelineInterfaceCreateInfoKHR;
26828
26829typedef struct VkRayTracingPipelineCreateInfoKHR {
26830 VkStructureType sType;
26831 const void* pNext;
26832 VkPipelineCreateFlags flags;
26833 uint32_t stageCount;
26834 const VkPipelineShaderStageCreateInfo* pStages;
26835 uint32_t groupCount;
26836 const VkRayTracingShaderGroupCreateInfoKHR* pGroups;
26837 uint32_t maxPipelineRayRecursionDepth;
26838 const VkPipelineLibraryCreateInfoKHR* pLibraryInfo;
26839 const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface;
26840 const VkPipelineDynamicStateCreateInfo* pDynamicState;
26841 VkPipelineLayout layout;
26842 VkPipeline basePipelineHandle;
26843 int32_t basePipelineIndex;
26844} VkRayTracingPipelineCreateInfoKHR;
26845
26846typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
26847 VkStructureType sType;
26848 void* pNext;
26849 VkBool32 rayTracingPipeline;
26850 VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay;
26851 VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
26852 VkBool32 rayTracingPipelineTraceRaysIndirect;
26853 VkBool32 rayTraversalPrimitiveCulling;
26854} VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
26855
26856typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
26857 VkStructureType sType;
26858 void* pNext;
26859 uint32_t shaderGroupHandleSize;
26860 uint32_t maxRayRecursionDepth;
26861 uint32_t maxShaderGroupStride;
26862 uint32_t shaderGroupBaseAlignment;
26863 uint32_t shaderGroupHandleCaptureReplaySize;
26864 uint32_t maxRayDispatchInvocationCount;
26865 uint32_t shaderGroupHandleAlignment;
26866 uint32_t maxRayHitAttributeSize;
26867} VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
26868
26869typedef struct VkTraceRaysIndirectCommandKHR {
26870 uint32_t width;
26871 uint32_t height;
26872 uint32_t depth;
26873} VkTraceRaysIndirectCommandKHR;
26874
26875typedef 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);
26876typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
26877typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
26878typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
26879typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
26880typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
26881
26882#ifndef VK_NO_PROTOTYPES
26883#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26884VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
26885 VkCommandBuffer commandBuffer,
26886 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
26887 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
26888 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
26889 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
26890 uint32_t width,
26891 uint32_t height,
26892 uint32_t depth);
26893#endif
26894
26895#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26896VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
26897 VkDevice device,
26898 VkDeferredOperationKHR deferredOperation,
26899 VkPipelineCache pipelineCache,
26900 uint32_t createInfoCount,
26901 const VkRayTracingPipelineCreateInfoKHR* pCreateInfos,
26902 const VkAllocationCallbacks* pAllocator,
26903 VkPipeline* pPipelines);
26904#endif
26905
26906#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26907VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
26908 VkDevice device,
26909 VkPipeline pipeline,
26910 uint32_t firstGroup,
26911 uint32_t groupCount,
26912 size_t dataSize,
26913 void* pData);
26914#endif
26915
26916#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26917VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
26918 VkCommandBuffer commandBuffer,
26919 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
26920 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
26921 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
26922 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
26923 VkDeviceAddress indirectDeviceAddress);
26924#endif
26925
26926#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26927VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
26928 VkDevice device,
26929 VkPipeline pipeline,
26930 uint32_t group,
26931 VkShaderGroupShaderKHR groupShader);
26932#endif
26933
26934#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26935VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
26936 VkCommandBuffer commandBuffer,
26937 uint32_t pipelineStackSize);
26938#endif
26939#endif
26940
26941
26942// VK_KHR_ray_query is a preprocessor guard. Do not pass it to API calls.
26943#define VK_KHR_ray_query 1
26944#define VK_KHR_RAY_QUERY_SPEC_VERSION 1
26945#define VK_KHR_RAY_QUERY_EXTENSION_NAME "VK_KHR_ray_query"
26946typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
26947 VkStructureType sType;
26948 void* pNext;
26949 VkBool32 rayQuery;
26950} VkPhysicalDeviceRayQueryFeaturesKHR;
26951
26952
26953
26954// VK_EXT_mesh_shader is a preprocessor guard. Do not pass it to API calls.
26955#define VK_EXT_mesh_shader 1
26956#define VK_EXT_MESH_SHADER_SPEC_VERSION 1
26957#define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader"
26958typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
26959 VkStructureType sType;
26960 void* pNext;
26961 VkBool32 taskShader;
26962 VkBool32 meshShader;
26963 VkBool32 multiviewMeshShader;
26964 VkBool32 primitiveFragmentShadingRateMeshShader;
26965 VkBool32 meshShaderQueries;
26966} VkPhysicalDeviceMeshShaderFeaturesEXT;
26967
26968typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT {
26969 VkStructureType sType;
26970 void* pNext;
26971 uint32_t maxTaskWorkGroupTotalCount;
26972 uint32_t maxTaskWorkGroupCount[3];
26973 uint32_t maxTaskWorkGroupInvocations;
26974 uint32_t maxTaskWorkGroupSize[3];
26975 uint32_t maxTaskPayloadSize;
26976 uint32_t maxTaskSharedMemorySize;
26977 uint32_t maxTaskPayloadAndSharedMemorySize;
26978 uint32_t maxMeshWorkGroupTotalCount;
26979 uint32_t maxMeshWorkGroupCount[3];
26980 uint32_t maxMeshWorkGroupInvocations;
26981 uint32_t maxMeshWorkGroupSize[3];
26982 uint32_t maxMeshSharedMemorySize;
26983 uint32_t maxMeshPayloadAndSharedMemorySize;
26984 uint32_t maxMeshOutputMemorySize;
26985 uint32_t maxMeshPayloadAndOutputMemorySize;
26986 uint32_t maxMeshOutputComponents;
26987 uint32_t maxMeshOutputVertices;
26988 uint32_t maxMeshOutputPrimitives;
26989 uint32_t maxMeshOutputLayers;
26990 uint32_t maxMeshMultiviewViewCount;
26991 uint32_t meshOutputPerVertexGranularity;
26992 uint32_t meshOutputPerPrimitiveGranularity;
26993 uint32_t maxPreferredTaskWorkGroupInvocations;
26994 uint32_t maxPreferredMeshWorkGroupInvocations;
26995 VkBool32 prefersLocalInvocationVertexOutput;
26996 VkBool32 prefersLocalInvocationPrimitiveOutput;
26997 VkBool32 prefersCompactVertexOutput;
26998 VkBool32 prefersCompactPrimitiveOutput;
26999} VkPhysicalDeviceMeshShaderPropertiesEXT;
27000
27001typedef struct VkDrawMeshTasksIndirectCommandEXT {
27002 uint32_t groupCountX;
27003 uint32_t groupCountY;
27004 uint32_t groupCountZ;
27005} VkDrawMeshTasksIndirectCommandEXT;
27006
27007typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
27008typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
27009typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
27010
27011#ifndef VK_NO_PROTOTYPES
27012#ifndef VK_ONLY_EXPORTED_PROTOTYPES
27013VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT(
27014 VkCommandBuffer commandBuffer,
27015 uint32_t groupCountX,
27016 uint32_t groupCountY,
27017 uint32_t groupCountZ);
27018#endif
27019
27020#ifndef VK_ONLY_EXPORTED_PROTOTYPES
27021VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT(
27022 VkCommandBuffer commandBuffer,
27023 VkBuffer buffer,
27024 VkDeviceSize offset,
27025 uint32_t drawCount,
27026 uint32_t stride);
27027#endif
27028
27029#ifndef VK_ONLY_EXPORTED_PROTOTYPES
27030VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT(
27031 VkCommandBuffer commandBuffer,
27032 VkBuffer buffer,
27033 VkDeviceSize offset,
27034 VkBuffer countBuffer,
27035 VkDeviceSize countBufferOffset,
27036 uint32_t maxDrawCount,
27037 uint32_t stride);
27038#endif
27039#endif
27040
27041#ifdef __cplusplus
27042}
27043#endif
27044
27045#endif
27046