1#ifndef VULKAN_CORE_H_
2#define VULKAN_CORE_H_ 1
3
4/*
5** Copyright 2015-2026 The Khronos Group Inc.
6**
7** SPDX-License-Identifier: Apache-2.0
8*/
9
10/*
11** This header is generated from the Khronos Vulkan XML API Registry.
12**
13*/
14
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20
21
22// VK_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls.
23#define VK_VERSION_1_0 1
24#include "vk_platform.h"
25
26#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
27
28
29#ifndef VK_USE_64_BIT_PTR_DEFINES
30 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64)
31 #define VK_USE_64_BIT_PTR_DEFINES 1
32 #else
33 #define VK_USE_64_BIT_PTR_DEFINES 0
34 #endif
35#endif
36
37
38#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
39 #if (VK_USE_64_BIT_PTR_DEFINES==1)
40 #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
41 #define VK_NULL_HANDLE nullptr
42 #else
43 #define VK_NULL_HANDLE ((void*)0)
44 #endif
45 #else
46 #define VK_NULL_HANDLE 0ULL
47 #endif
48#endif
49#ifndef VK_NULL_HANDLE
50 #define VK_NULL_HANDLE 0
51#endif
52
53
54#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
55 #if (VK_USE_64_BIT_PTR_DEFINES==1)
56 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
57 #else
58 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
59 #endif
60#endif
61
62#define VK_MAKE_API_VERSION(variant, major, minor, patch) \
63 ((((uint32_t)(variant)) << 29U) | (((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
64
65
66//#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0
67
68// Version of this file
69#define VK_HEADER_VERSION 341
70
71// Complete version of this file
72#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION)
73
74
75#define VK_MAKE_VERSION(major, minor, patch) \
76 ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
77
78
79#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22U)
80
81
82#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
83
84
85#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
86
87#define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29U)
88#define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU)
89#define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
90#define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
91// Vulkan 1.0 version number
92#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
93
94typedef uint32_t VkBool32;
95typedef uint64_t VkDeviceAddress;
96typedef uint64_t VkDeviceSize;
97typedef uint32_t VkFlags;
98typedef uint32_t VkSampleMask;
99VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
100VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
101VK_DEFINE_HANDLE(VkInstance)
102VK_DEFINE_HANDLE(VkPhysicalDevice)
103VK_DEFINE_HANDLE(VkDevice)
104VK_DEFINE_HANDLE(VkQueue)
105VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
106VK_DEFINE_HANDLE(VkCommandBuffer)
107VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
108VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
109VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
110VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
111VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
112VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
113VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
114VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
115VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
116VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
117VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
118VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
119VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
120VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
121VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
122VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
123VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
124#define VK_FALSE 0U
125#define VK_LOD_CLAMP_NONE 1000.0F
126#define VK_QUEUE_FAMILY_IGNORED (~0U)
127#define VK_REMAINING_ARRAY_LAYERS (~0U)
128#define VK_REMAINING_MIP_LEVELS (~0U)
129#define VK_TRUE 1U
130#define VK_WHOLE_SIZE (~0ULL)
131#define VK_MAX_MEMORY_TYPES 32U
132#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U
133#define VK_UUID_SIZE 16U
134#define VK_MAX_EXTENSION_NAME_SIZE 256U
135#define VK_MAX_DESCRIPTION_SIZE 256U
136#define VK_MAX_MEMORY_HEAPS 16U
137#define VK_ATTACHMENT_UNUSED (~0U)
138#define VK_SUBPASS_EXTERNAL (~0U)
139
140typedef enum VkResult {
141 VK_SUCCESS = 0,
142 VK_NOT_READY = 1,
143 VK_TIMEOUT = 2,
144 VK_EVENT_SET = 3,
145 VK_EVENT_RESET = 4,
146 VK_INCOMPLETE = 5,
147 VK_ERROR_OUT_OF_HOST_MEMORY = -1,
148 VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
149 VK_ERROR_INITIALIZATION_FAILED = -3,
150 VK_ERROR_DEVICE_LOST = -4,
151 VK_ERROR_MEMORY_MAP_FAILED = -5,
152 VK_ERROR_LAYER_NOT_PRESENT = -6,
153 VK_ERROR_EXTENSION_NOT_PRESENT = -7,
154 VK_ERROR_FEATURE_NOT_PRESENT = -8,
155 VK_ERROR_INCOMPATIBLE_DRIVER = -9,
156 VK_ERROR_TOO_MANY_OBJECTS = -10,
157 VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
158 VK_ERROR_FRAGMENTED_POOL = -12,
159 VK_ERROR_UNKNOWN = -13,
160 VK_ERROR_VALIDATION_FAILED = -1000011001,
161 VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
162 VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
163 VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
164 VK_ERROR_FRAGMENTATION = -1000161000,
165 VK_PIPELINE_COMPILE_REQUIRED = 1000297000,
166 VK_ERROR_NOT_PERMITTED = -1000174001,
167 VK_ERROR_SURFACE_LOST_KHR = -1000000000,
168 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
169 VK_SUBOPTIMAL_KHR = 1000001003,
170 VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
171 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
172 VK_ERROR_INVALID_SHADER_NV = -1000012000,
173 VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000,
174 VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001,
175 VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002,
176 VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003,
177 VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004,
178 VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005,
179 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
180 VK_ERROR_PRESENT_TIMING_QUEUE_FULL_EXT = -1000208000,
181 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
182 VK_THREAD_IDLE_KHR = 1000268000,
183 VK_THREAD_DONE_KHR = 1000268001,
184 VK_OPERATION_DEFERRED_KHR = 1000268002,
185 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
186 VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR = -1000299000,
187 VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000,
188 VK_INCOMPATIBLE_SHADER_BINARY_EXT = 1000482000,
189 VK_PIPELINE_BINARY_MISSING_KHR = 1000483000,
190 VK_ERROR_NOT_ENOUGH_SPACE_KHR = -1000483000,
191 VK_ERROR_VALIDATION_FAILED_EXT = VK_ERROR_VALIDATION_FAILED,
192 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
193 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
194 VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
195 VK_ERROR_NOT_PERMITTED_EXT = VK_ERROR_NOT_PERMITTED,
196 VK_ERROR_NOT_PERMITTED_KHR = VK_ERROR_NOT_PERMITTED,
197 VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
198 VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
199 VK_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
200 VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
201 // VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT is a legacy alias
202 VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT = VK_INCOMPATIBLE_SHADER_BINARY_EXT,
203 VK_RESULT_MAX_ENUM = 0x7FFFFFFF
204} VkResult;
205
206typedef enum VkStructureType {
207 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
208 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
209 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
210 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
211 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
212 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
213 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
214 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
215 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
216 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
217 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
218 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
219 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
220 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
221 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
222 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
223 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
224 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
225 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
226 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
227 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
228 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
229 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
230 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
231 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
232 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
233 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
234 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
235 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
236 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
237 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
238 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
239 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
240 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
241 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
242 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
243 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
244 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
245 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
246 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
247 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
248 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
249 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
250 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
251 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
252 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
253 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
254 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
255 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
256 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
257 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
258 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
259 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
260 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
261 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
262 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
263 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
264 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
265 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
266 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
267 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
268 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
269 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
270 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
271 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
272 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
273 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
274 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
275 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
276 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
277 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
278 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
279 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
280 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
281 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
282 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
283 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
284 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
285 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
286 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
287 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
288 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
289 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
290 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
291 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
292 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
293 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
294 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
295 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
296 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
297 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
298 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
299 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
300 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
301 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
302 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
303 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
304 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
305 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
306 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
307 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
308 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
309 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
310 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
311 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
312 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
313 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
314 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
315 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
316 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
317 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
318 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
319 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
320 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
321 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
322 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
323 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
324 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
325 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
326 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
327 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
328 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
329 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
330 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
331 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
332 VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
333 VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
334 VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
335 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
336 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
337 VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
338 VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
339 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
340 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
341 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
342 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
343 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
344 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
345 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
346 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
347 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
348 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
349 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
350 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
351 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
352 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
353 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
354 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
355 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
356 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
357 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
358 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
359 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
360 VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
361 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
362 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
363 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
364 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
365 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
366 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
367 VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
368 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
369 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
370 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
371 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53,
372 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54,
373 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000,
374 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000,
375 VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001,
376 VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002,
377 VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000,
378 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001,
379 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002,
380 VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003,
381 VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004,
382 VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005,
383 VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006,
384 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007,
385 VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000,
386 VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001,
387 VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002,
388 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003,
389 VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006,
390 VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007,
391 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009,
392 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000,
393 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000,
394 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000,
395 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001,
396 VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002,
397 VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003,
398 VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000,
399 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000,
400 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000,
401 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000,
402 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000,
403 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000,
404 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000,
405 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001,
406 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002,
407 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000,
408 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001,
409 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002,
410 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003,
411 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000,
412 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001,
413 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001,
414 VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004,
415 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005,
416 VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008,
417 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010,
418 VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000,
419 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001,
420 VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002,
421 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003,
422 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004,
423 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES = 55,
424 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES = 56,
425 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO = 1000174000,
426 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES = 1000388000,
427 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES = 1000388001,
428 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES = 1000265000,
429 VK_STRUCTURE_TYPE_MEMORY_MAP_INFO = 1000271000,
430 VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO = 1000271001,
431 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES = 1000470000,
432 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES = 1000470001,
433 VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO = 1000470004,
434 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2 = 1000338002,
435 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2 = 1000338003,
436 VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO = 1000470006,
437 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES = 1000545000,
438 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES = 1000545001,
439 VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS = 1000545002,
440 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES = 1000270000,
441 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES = 1000270001,
442 VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY = 1000270002,
443 VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY = 1000270003,
444 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO = 1000270004,
445 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO = 1000270005,
446 VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO = 1000270006,
447 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO = 1000270007,
448 VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE = 1000270008,
449 VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY = 1000270009,
450 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES = 1000416000,
451 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES = 1000528000,
452 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES = 1000544000,
453 VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO = 1000470005,
454 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES = 1000080000,
455 VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO = 1000545003,
456 VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO = 1000545004,
457 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO = 1000545005,
458 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO = 1000545006,
459 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES = 1000466000,
460 VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO = 1000068000,
461 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES = 1000068001,
462 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES = 1000068002,
463 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES = 1000259000,
464 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO = 1000259001,
465 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES = 1000259002,
466 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES = 1000525000,
467 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO = 1000190001,
468 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES = 1000190002,
469 VK_STRUCTURE_TYPE_RENDERING_AREA_INFO = 1000470003,
470 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES = 1000232000,
471 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO = 1000232001,
472 VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO = 1000232002,
473 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
474 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
475 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
476 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
477 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
478 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
479 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
480 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
481 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
482 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
483 VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
484 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
485 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
486 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
487 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
488 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
489 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
490 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
491 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
492 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
493 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
494 VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000,
495 VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001,
496 VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002,
497 VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003,
498 VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004,
499 VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005,
500 VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006,
501 VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007,
502 VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008,
503 VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009,
504 VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010,
505 VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011,
506 VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012,
507 VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013,
508 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014,
509 VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015,
510 VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016,
511 VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000,
512 VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001,
513 VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002,
514 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
515 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
516 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
517 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
518 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
519 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
520 VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000,
521 VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001,
522 VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002,
523 VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX = 1000029004,
524 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
525 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
526 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR = 1000038000,
527 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000038001,
528 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000038002,
529 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR = 1000038003,
530 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR = 1000038004,
531 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR = 1000038005,
532 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR = 1000038006,
533 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR = 1000038007,
534 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR = 1000038008,
535 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR = 1000038009,
536 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR = 1000038010,
537 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR = 1000038011,
538 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR = 1000038012,
539 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000038013,
540 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR = 1000039000,
541 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000039001,
542 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000039002,
543 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR = 1000039003,
544 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR = 1000039004,
545 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR = 1000039005,
546 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR = 1000039006,
547 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR = 1000039007,
548 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR = 1000039009,
549 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR = 1000039010,
550 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR = 1000039011,
551 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR = 1000039012,
552 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR = 1000039013,
553 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000039014,
554 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000,
555 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001,
556 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003,
557 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004,
558 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005,
559 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006,
560 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
561 VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
562 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
563 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
564 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
565 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
566 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
567 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
568 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
569 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
570 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
571 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
572 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
573 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
574 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
575 VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
576 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
577 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
578 VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
579 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
580 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
581 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
582 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
583 VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
584 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
585 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
586 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
587 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
588 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
589 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
590 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
591 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
592 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
593 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
594 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
595 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
596 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
597 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
598 VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
599 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
600 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
601 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
602 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
603 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
604 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
605 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
606 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
607 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG = 1000110000,
608 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
609 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
610 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
611 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
612 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
613 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
614 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
615 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
616 VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
617 VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
618 VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
619 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
620 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
621 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
622 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
623 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
624 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
625 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
626 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
627 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
628 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
629 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
630 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
631 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
632 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
633 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
634 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
635 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
636 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
637 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
638 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
639 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
640 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
641 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
642 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006,
643#ifdef VK_ENABLE_BETA_EXTENSIONS
644 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = 1000134000,
645#endif
646#ifdef VK_ENABLE_BETA_EXTENSIONS
647 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = 1000134001,
648#endif
649#ifdef VK_ENABLE_BETA_EXTENSIONS
650 VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = 1000134002,
651#endif
652#ifdef VK_ENABLE_BETA_EXTENSIONS
653 VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = 1000134003,
654#endif
655#ifdef VK_ENABLE_BETA_EXTENSIONS
656 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = 1000134004,
657#endif
658 VK_STRUCTURE_TYPE_TEXEL_BUFFER_DESCRIPTOR_INFO_EXT = 1000135000,
659 VK_STRUCTURE_TYPE_IMAGE_DESCRIPTOR_INFO_EXT = 1000135001,
660 VK_STRUCTURE_TYPE_RESOURCE_DESCRIPTOR_INFO_EXT = 1000135002,
661 VK_STRUCTURE_TYPE_BIND_HEAP_INFO_EXT = 1000135003,
662 VK_STRUCTURE_TYPE_PUSH_DATA_INFO_EXT = 1000135004,
663 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_AND_BINDING_MAPPING_EXT = 1000135005,
664 VK_STRUCTURE_TYPE_SHADER_DESCRIPTOR_SET_AND_BINDING_MAPPING_INFO_EXT = 1000135006,
665 VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DATA_CREATE_INFO_EXT = 1000135007,
666 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_PROPERTIES_EXT = 1000135008,
667 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXT = 1000135009,
668 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_DESCRIPTOR_HEAP_INFO_EXT = 1000135010,
669 VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_INDEX_CREATE_INFO_EXT = 1000135011,
670 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_PUSH_DATA_TOKEN_NV = 1000135012,
671 VK_STRUCTURE_TYPE_SUBSAMPLED_IMAGE_FORMAT_PROPERTIES_EXT = 1000135013,
672 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_TENSOR_PROPERTIES_ARM = 1000135014,
673 VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
674 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR = 1000141000,
675 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
676 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
677 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
678 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
679 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
680 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
681 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
682 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
683 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
684 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007,
685 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
686 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
687 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
688 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
689 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
690 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
691 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009,
692 VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
693 VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
694 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
695 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013,
696 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014,
697 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
698 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020,
699 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
700 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
701 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
702 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
703 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
704 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013,
705 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
706 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
707 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
708 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
709 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
710 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
711 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
712 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
713 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006,
714 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
715 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
716#ifdef VK_ENABLE_BETA_EXTENSIONS
717 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
718#endif
719#ifdef VK_ENABLE_BETA_EXTENSIONS
720 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
721#endif
722 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
723 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
724 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
725 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
726 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
727 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
728 VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
729 VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
730 VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
731 VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
732 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
733 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
734 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
735 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
736 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
737 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
738 VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
739 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
740 VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
741 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
742 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
743 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
744 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
745 VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
746 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
747 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000,
748 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001,
749 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002,
750 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003,
751 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004,
752 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005,
753 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
754 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
755 VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
756 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
757 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
758 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
759 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
760 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
761 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
762 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
763 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008,
764 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009,
765 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT = 1000208000,
766 VK_STRUCTURE_TYPE_SWAPCHAIN_TIMING_PROPERTIES_EXT = 1000208001,
767 VK_STRUCTURE_TYPE_SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT = 1000208002,
768 VK_STRUCTURE_TYPE_PRESENT_TIMINGS_INFO_EXT = 1000208003,
769 VK_STRUCTURE_TYPE_PRESENT_TIMING_INFO_EXT = 1000208004,
770 VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_INFO_EXT = 1000208005,
771 VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_PROPERTIES_EXT = 1000208006,
772 VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_EXT = 1000208007,
773 VK_STRUCTURE_TYPE_PRESENT_TIMING_SURFACE_CAPABILITIES_EXT = 1000208008,
774 VK_STRUCTURE_TYPE_SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT = 1000208009,
775 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
776 VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
777 VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
778 VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
779 VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
780 VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
781 VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
782 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
783 VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
784 VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
785 VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
786 VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
787 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
788 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
789 VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
790 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
791 VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
792 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
793 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
794 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
795 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
796 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
797 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
798 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
799 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
800 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = 1000235000,
801 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
802 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
803 VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
804 VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
805 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
806 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
807 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
808 VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
809 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
810 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
811 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
812 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
813 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
814 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
815 VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
816 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
817 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
818 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000,
819 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001,
820 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002,
821 VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
822 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
823 VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
824 VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
825 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
826 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
827 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
828 VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
829 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
830 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
831 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
832 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
833 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT = 1000272000,
834 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT = 1000272001,
835 VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT = 1000272002,
836 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
837 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
838 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
839 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
840 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
841 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
842 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
843 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
844 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
845 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
846 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
847 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
848 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
849 VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
850 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = 1000283000,
851 VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = 1000283001,
852 VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = 1000283002,
853 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
854 VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
855 VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
856 VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
857 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
858 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
859 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT = 1000288000,
860 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
861 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000,
862 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001,
863 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002,
864 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
865 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
866 VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
867 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
868 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
869 VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
870 VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004,
871 VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR = 1000299005,
872 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299006,
873 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR = 1000299007,
874 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299008,
875 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR = 1000299009,
876 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000299010,
877 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
878 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
879#ifdef VK_ENABLE_BETA_EXTENSIONS
880 VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = 1000307000,
881#endif
882#ifdef VK_ENABLE_BETA_EXTENSIONS
883 VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = 1000307001,
884#endif
885#ifdef VK_ENABLE_BETA_EXTENSIONS
886 VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = 1000307002,
887#endif
888#ifdef VK_ENABLE_BETA_EXTENSIONS
889 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = 1000307003,
890#endif
891#ifdef VK_ENABLE_BETA_EXTENSIONS
892 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = 1000307004,
893#endif
894 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM = 1000309000,
895 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM = 1000309001,
896 VK_STRUCTURE_TYPE_RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM = 1000309002,
897 VK_STRUCTURE_TYPE_PER_TILE_BEGIN_INFO_QCOM = 1000309003,
898 VK_STRUCTURE_TYPE_PER_TILE_END_INFO_QCOM = 1000309004,
899 VK_STRUCTURE_TYPE_DISPATCH_TILE_INFO_QCOM = 1000309005,
900 VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = 1000310000,
901 VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000,
902 VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001,
903 VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002,
904 VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003,
905 VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004,
906 VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005,
907 VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006,
908 VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007,
909 VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008,
910 VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009,
911 VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010,
912 VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011,
913 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000,
914 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001,
915 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002,
916 VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003,
917 VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004,
918 VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005,
919 VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006,
920 VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007,
921 VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008,
922 VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010,
923 VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011,
924 VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012,
925 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009,
926 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000,
927 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001,
928 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002,
929 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000,
930 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000,
931 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000,
932 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000,
933 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000,
934 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001,
935 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002,
936 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
937 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
938 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002,
939 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000,
940 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001,
941 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000,
942 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
943 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
944 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000,
945 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000,
946 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000,
947 VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
948 VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004,
949 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000,
950 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
951 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000,
952 VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001,
953 VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002,
954 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000,
955 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
956 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000,
957 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
958 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
959 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
960 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000,
961 VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001,
962 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000,
963 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001,
964 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
965 VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
966 VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
967 VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
968 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
969 VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
970 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000,
971 VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001,
972 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002,
973 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003,
974 VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004,
975 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005,
976 VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006,
977 VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007,
978 VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008,
979 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009,
980 VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
981 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
982 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
983 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
984 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
985 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
986 VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000,
987 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
988 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000,
989 VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001,
990 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000,
991 VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001,
992 VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002,
993 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
994 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
995 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
996 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
997 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000,
998 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000,
999 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR = 1000387000,
1000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE = 1000390000,
1001 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE = 1000390001,
1002 VK_STRUCTURE_TYPE_VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE = 1000390002,
1003 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE = 1000390003,
1004 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000,
1005 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001,
1006 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
1007 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
1008 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000,
1009 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = 1000395000,
1010 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = 1000395001,
1011 VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000,
1012 VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001,
1013 VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002,
1014 VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003,
1015 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004,
1016 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005,
1017 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006,
1018 VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007,
1019 VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008,
1020 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009,
1021#ifdef VK_ENABLE_BETA_EXTENSIONS
1022 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = 1000397000,
1023#endif
1024#ifdef VK_ENABLE_BETA_EXTENSIONS
1025 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = 1000397001,
1026#endif
1027#ifdef VK_ENABLE_BETA_EXTENSIONS
1028 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = 1000397002,
1029#endif
1030 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000,
1031 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001,
1032 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = 1000404002,
1033 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
1034 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
1035 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
1036 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000,
1037 VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = 1000417000,
1038 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = 1000417001,
1039 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = 1000417002,
1040 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000,
1041 VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001,
1042 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
1043 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
1044 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
1045 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
1046 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000,
1047 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001,
1048 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = 1000424002,
1049 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = 1000424003,
1050 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = 1000424004,
1051 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000,
1052 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000,
1053 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001,
1054 VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002,
1055 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV = 1000429008,
1056 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV = 1000429009,
1057 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV = 1000429010,
1058 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
1059 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = 1000434000,
1060 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
1061 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000,
1062 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001,
1063 VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002,
1064 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000,
1065 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001,
1066 VK_STRUCTURE_TYPE_NATIVE_BUFFER_USAGE_OHOS = 1000452000,
1067 VK_STRUCTURE_TYPE_NATIVE_BUFFER_PROPERTIES_OHOS = 1000452001,
1068 VK_STRUCTURE_TYPE_NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS = 1000452002,
1069 VK_STRUCTURE_TYPE_IMPORT_NATIVE_BUFFER_INFO_OHOS = 1000452003,
1070 VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS = 1000452004,
1071 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OHOS = 1000452005,
1072 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000,
1073 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000,
1074 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001,
1075 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
1076 VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001,
1077 VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002,
1078 VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003,
1079 VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000,
1080 VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001,
1081 VK_STRUCTURE_TYPE_TENSOR_CREATE_INFO_ARM = 1000460000,
1082 VK_STRUCTURE_TYPE_TENSOR_VIEW_CREATE_INFO_ARM = 1000460001,
1083 VK_STRUCTURE_TYPE_BIND_TENSOR_MEMORY_INFO_ARM = 1000460002,
1084 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_TENSOR_ARM = 1000460003,
1085 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM = 1000460004,
1086 VK_STRUCTURE_TYPE_TENSOR_FORMAT_PROPERTIES_ARM = 1000460005,
1087 VK_STRUCTURE_TYPE_TENSOR_DESCRIPTION_ARM = 1000460006,
1088 VK_STRUCTURE_TYPE_TENSOR_MEMORY_REQUIREMENTS_INFO_ARM = 1000460007,
1089 VK_STRUCTURE_TYPE_TENSOR_MEMORY_BARRIER_ARM = 1000460008,
1090 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM = 1000460009,
1091 VK_STRUCTURE_TYPE_DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM = 1000460010,
1092 VK_STRUCTURE_TYPE_COPY_TENSOR_INFO_ARM = 1000460011,
1093 VK_STRUCTURE_TYPE_TENSOR_COPY_ARM = 1000460012,
1094 VK_STRUCTURE_TYPE_TENSOR_DEPENDENCY_INFO_ARM = 1000460013,
1095 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM = 1000460014,
1096 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM = 1000460015,
1097 VK_STRUCTURE_TYPE_EXTERNAL_TENSOR_PROPERTIES_ARM = 1000460016,
1098 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM = 1000460017,
1099 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM = 1000460018,
1100 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM = 1000460019,
1101 VK_STRUCTURE_TYPE_DESCRIPTOR_GET_TENSOR_INFO_ARM = 1000460020,
1102 VK_STRUCTURE_TYPE_TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM = 1000460021,
1103 VK_STRUCTURE_TYPE_TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM = 1000460022,
1104 VK_STRUCTURE_TYPE_FRAME_BOUNDARY_TENSORS_ARM = 1000460023,
1105 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000,
1106 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001,
1107 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002,
1108 VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003,
1109 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000,
1110 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000,
1111 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001,
1112 VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002,
1113 VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003,
1114 VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004,
1115 VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005,
1116 VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010,
1117 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000,
1118 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000,
1119 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001,
1120 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002,
1121 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD = 1000476000,
1122 VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD = 1000476001,
1123 VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD = 1000476002,
1124#ifdef VK_ENABLE_BETA_EXTENSIONS
1125 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX = 1000478000,
1126#endif
1127#ifdef VK_ENABLE_BETA_EXTENSIONS
1128 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX = 1000478001,
1129#endif
1130 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR = 1000479000,
1131 VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR = 1000479001,
1132 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR = 1000479002,
1133 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR = 1000480000,
1134 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR = 1000480001,
1135 VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR = 1000480002,
1136 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = 1000481000,
1137 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = 1000482000,
1138 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = 1000482001,
1139 VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002,
1140 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR = 1000483000,
1141 VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR = 1000483001,
1142 VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR = 1000483002,
1143 VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR = 1000483003,
1144 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR = 1000483004,
1145 VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR = 1000483005,
1146 VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR = 1000483006,
1147 VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR = 1000483007,
1148 VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR = 1000483008,
1149 VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR = 1000483009,
1150 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000,
1151 VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001,
1152 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000,
1153 VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001,
1154 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR = 1000274000,
1155 VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR = 1000274001,
1156 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR = 1000274002,
1157 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR = 1000275000,
1158 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR = 1000275001,
1159 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR = 1000275002,
1160 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR = 1000275003,
1161 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR = 1000275004,
1162 VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR = 1000275005,
1163 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000,
1164 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000,
1165 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001,
1166 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV = 1000491000,
1167 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491001,
1168 VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491002,
1169 VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV = 1000491004,
1170 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000,
1171 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
1172 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
1173 VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
1174 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT = 1000495000,
1175 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT = 1000495001,
1176 VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = 1000496000,
1177 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
1178 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
1179 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000,
1180 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000,
1181 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INTERNALLY_SYNCHRONIZED_QUEUES_FEATURES_KHR = 1000504000,
1182 VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000,
1183 VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001,
1184 VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002,
1185 VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003,
1186 VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004,
1187 VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005,
1188 VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006,
1189 VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007,
1190 VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008,
1191 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000,
1192 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001,
1193 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002,
1194 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CREATE_INFO_ARM = 1000507000,
1195 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM = 1000507001,
1196 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM = 1000507002,
1197 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_ARM = 1000507003,
1198 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM = 1000507004,
1199 VK_STRUCTURE_TYPE_BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM = 1000507005,
1200 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM = 1000507006,
1201 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM = 1000507007,
1202 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM = 1000507008,
1203 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_INFO_ARM = 1000507009,
1204 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM = 1000507010,
1205 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM = 1000507011,
1206 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM = 1000507012,
1207 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM = 1000507013,
1208 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM = 1000507014,
1209 VK_STRUCTURE_TYPE_DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM = 1000507016,
1210 VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM = 1000507017,
1211 VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM = 1000507018,
1212 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM = 1000507019,
1213 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM = 1000507015,
1214 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000,
1215 VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
1216 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR = 1000201000,
1217 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR = 1000511000,
1218 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR = 1000512000,
1219 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR = 1000512001,
1220 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR = 1000512003,
1221 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000512004,
1222 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR = 1000512005,
1223 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR = 1000513000,
1224 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000513001,
1225 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR = 1000513002,
1226 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR = 1000513003,
1227 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR = 1000513004,
1228 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR = 1000513005,
1229 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR = 1000513006,
1230 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR = 1000513007,
1231 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR = 1000513008,
1232 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR = 1000513009,
1233 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR = 1000513010,
1234 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR = 1000514000,
1235 VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_CAPABILITIES_KHR = 1000514001,
1236 VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PICTURE_INFO_KHR = 1000514002,
1237 VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PROFILE_INFO_KHR = 1000514003,
1238 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR = 1000515000,
1239 VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR = 1000515001,
1240 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = 1000516000,
1241 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000,
1242 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001,
1243 VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002,
1244 VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000,
1245 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001,
1246 VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002,
1247 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000,
1248 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001,
1249 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000,
1250 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000,
1251 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR = 1000527000,
1252 VK_STRUCTURE_TYPE_ATTACHMENT_FEEDBACK_LOOP_INFO_EXT = 1000527001,
1253 VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000,
1254 VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001,
1255 VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002,
1256 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = 1000529003,
1257 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004,
1258 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000,
1259 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = 1000184000,
1260 VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = 1000545007,
1261 VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = 1000545008,
1262 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000,
1263 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM = 1000547000,
1264 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM = 1000547001,
1265 VK_STRUCTURE_TYPE_TILE_MEMORY_REQUIREMENTS_QCOM = 1000547002,
1266 VK_STRUCTURE_TYPE_TILE_MEMORY_BIND_INFO_QCOM = 1000547003,
1267 VK_STRUCTURE_TYPE_TILE_MEMORY_SIZE_INFO_QCOM = 1000547004,
1268 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR = 1000549000,
1269 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR = 1000426001,
1270 VK_STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR = 1000549002,
1271 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR = 1000549003,
1272 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT = 1000427000,
1273 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT = 1000427001,
1274 VK_STRUCTURE_TYPE_DECOMPRESS_MEMORY_INFO_EXT = 1000550002,
1275 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV = 1000551000,
1276 VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV = 1000551001,
1277 VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR = 1000552000,
1278 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR = 1000552001,
1279 VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR = 1000552002,
1280 VK_STRUCTURE_TYPE_VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR = 1000552003,
1281 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR = 1000552004,
1282 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553000,
1283 VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553001,
1284 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR = 1000553002,
1285 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000553005,
1286 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR = 1000553009,
1287 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553003,
1288 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553004,
1289 VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553006,
1290 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553007,
1291 VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553008,
1292 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV = 1000555000,
1293 VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV = 1000556000,
1294 VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV = 1000556001,
1295 VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV = 1000556002,
1296 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV = 1000556003,
1297 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR = 1000558000,
1298 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV = 1000559000,
1299 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR = 1000562000,
1300 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR = 1000562001,
1301 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR = 1000562002,
1302 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR = 1000562003,
1303 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR = 1000562004,
1304 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
1305 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = 1000564000,
1306 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT = 1000567000,
1307 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
1308 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV = 1000569000,
1309 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000569001,
1310 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV = 1000569002,
1311 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV = 1000569003,
1312 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV = 1000569004,
1313 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV = 1000569005,
1314 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV = 1000569006,
1315 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000569007,
1316 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV = 1000570000,
1317 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000570001,
1318 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570002,
1319 VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV = 1000570003,
1320 VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV = 1000570004,
1321 VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV = 1000570005,
1322 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT = 1000572000,
1323 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT = 1000572001,
1324 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT = 1000572002,
1325 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT = 1000572003,
1326 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT = 1000572004,
1327 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT = 1000572006,
1328 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT = 1000572007,
1329 VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT = 1000572008,
1330 VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT = 1000572009,
1331 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT = 1000572010,
1332 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT = 1000572011,
1333 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT = 1000572012,
1334 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT = 1000572013,
1335 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT = 1000572014,
1336 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR = 1000574000,
1337 VK_STRUCTURE_TYPE_MEMORY_BARRIER_ACCESS_FLAGS_3_KHR = 1000574002,
1338 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000,
1339 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = 1000575001,
1340 VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002,
1341 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR = 1000579000,
1342 VK_STRUCTURE_TYPE_PUSH_CONSTANT_BANK_INFO_NV = 1000580000,
1343 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_FEATURES_NV = 1000580001,
1344 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_PROPERTIES_NV = 1000580002,
1345 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT = 1000581000,
1346 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT = 1000581001,
1347 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT = 1000582000,
1348 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = 1000582001,
1349 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR = 1000584000,
1350 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR = 1000584001,
1351 VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR = 1000584002,
1352 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR = 1000586000,
1353 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586001,
1354 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586002,
1355 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586003,
1356 VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS = 1000685000,
1357 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI = 1000590000,
1358 VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI = 1000590001,
1359 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV = 1000593000,
1360 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV = 1000593001,
1361 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV = 1000593002,
1362 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM = 1000596000,
1363 VK_STRUCTURE_TYPE_IMPORT_MEMORY_METAL_HANDLE_INFO_EXT = 1000602000,
1364 VK_STRUCTURE_TYPE_MEMORY_METAL_HANDLE_PROPERTIES_EXT = 1000602001,
1365 VK_STRUCTURE_TYPE_MEMORY_GET_METAL_HANDLE_INFO_EXT = 1000602002,
1366 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR = 1000421000,
1367 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_FEATURES_ARM = 1000605000,
1368 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_PROPERTIES_ARM = 1000605001,
1369 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_ARM = 1000605002,
1370 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_ARM = 1000605003,
1371 VK_STRUCTURE_TYPE_RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM = 1000605004,
1372 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT = 1000608000,
1373 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM = 1000609000,
1374 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE = 1000611000,
1375 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE = 1000611001,
1376 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE = 1000611002,
1377 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR = 1000286000,
1378 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR = 1000286001,
1379#ifdef VK_ENABLE_BETA_EXTENSIONS
1380 VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV = 1000613000,
1381#endif
1382#ifdef VK_ENABLE_BETA_EXTENSIONS
1383 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV = 1000613001,
1384#endif
1385 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT = 1000425000,
1386 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT = 1000425001,
1387 VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT = 1000425002,
1388 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT = 1000620000,
1389 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR = 1000361000,
1390 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT = 1000627000,
1391 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT = 1000628000,
1392 VK_STRUCTURE_TYPE_BEGIN_CUSTOM_RESOLVE_INFO_EXT = 1000628001,
1393 VK_STRUCTURE_TYPE_CUSTOM_RESOLVE_CREATE_INFO_EXT = 1000628002,
1394 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_MODEL_FEATURES_QCOM = 1000629000,
1395 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_BUILTIN_MODEL_CREATE_INFO_QCOM = 1000629001,
1396 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR = 1000630000,
1397 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR = 1000630001,
1398 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_FLAGS_INFO_KHR = 1000630002,
1399 VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR = 1000619003,
1400 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_MODE_INFO_KHR = 1000630004,
1401 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_FEATURES_EXT = 1000635000,
1402 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_PROPERTIES_EXT = 1000635001,
1403 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC = 1000637000,
1404 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_FEATURES_EXT = 1000642000,
1405 VK_STRUCTURE_TYPE_COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NV = 1000645000,
1406 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV = 1000645001,
1407 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_PARTITIONED_FEATURES_EXT = 1000662000,
1408 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1409 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
1410 // VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT is a legacy alias
1411 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
1412 VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO,
1413 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
1414 VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
1415 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
1416 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
1417 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
1418 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
1419 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
1420 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
1421 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
1422 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
1423 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
1424 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
1425 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
1426 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
1427 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
1428 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
1429 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
1430 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
1431 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
1432 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
1433 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
1434 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
1435 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
1436 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
1437 VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO,
1438 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES,
1439 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES,
1440 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
1441 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
1442 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
1443 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
1444 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
1445 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
1446 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
1447 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
1448 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
1449 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
1450 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
1451 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
1452 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
1453 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES,
1454 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1455 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1456 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
1457 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
1458 // VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT is a legacy alias
1459 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
1460 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
1461 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
1462 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
1463 VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
1464 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
1465 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
1466 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
1467 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
1468 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
1469 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
1470 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
1471 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
1472 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
1473 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
1474 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
1475 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
1476 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
1477 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
1478 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1479 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
1480 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
1481 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
1482 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
1483 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
1484 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
1485 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
1486 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
1487 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
1488 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
1489 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
1490 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
1491 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
1492 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
1493 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
1494 VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
1495 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
1496 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
1497 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
1498 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
1499 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
1500 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
1501 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
1502 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
1503 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
1504 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
1505 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
1506 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
1507 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
1508 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
1509 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
1510 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
1511 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
1512 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
1513 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
1514 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR,
1515 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
1516 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
1517 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
1518 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
1519 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
1520 VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
1521 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
1522 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
1523 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
1524 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
1525 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR,
1526 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
1527 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
1528 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
1529 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
1530 VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
1531 VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
1532 VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
1533 // VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL is a legacy alias
1534 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
1535 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
1536 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
1537 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
1538 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
1539 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1540 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
1541 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES,
1542 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO,
1543 VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO,
1544 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
1545 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
1546 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
1547 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
1548 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1549 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
1550 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
1551 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
1552 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
1553 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1554 VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
1555 VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
1556 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
1557 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
1558 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
1559 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
1560 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
1561 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
1562 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES,
1563 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES,
1564 VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY,
1565 VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY,
1566 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO,
1567 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO,
1568 VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO,
1569 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO,
1570 VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE,
1571 VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY,
1572 VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_MAP_INFO,
1573 VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO,
1574 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR,
1575 VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR,
1576 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR,
1577 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR,
1578 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR,
1579 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR,
1580 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR,
1581 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR,
1582 VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR,
1583 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
1584 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
1585 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
1586 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
1587 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR,
1588 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR,
1589 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
1590 VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
1591 VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
1592 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
1593 VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
1594 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
1595 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
1596 VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
1597 VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
1598 VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
1599 VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
1600 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
1601 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
1602 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
1603 VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
1604 VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
1605 VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
1606 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
1607 VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
1608 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
1609 VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
1610 VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
1611 VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
1612 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
1613 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
1614 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
1615 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
1616 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
1617 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
1618 VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
1619 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
1620 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR,
1621 VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
1622 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
1623 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
1624 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
1625 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
1626 VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
1627 VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
1628 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES,
1629 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR,
1630 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT,
1631 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT,
1632 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT,
1633 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR,
1634 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT,
1635 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT,
1636 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES,
1637 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES,
1638 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES,
1639 VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_AREA_INFO,
1640 VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO,
1641 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
1642 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
1643 VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO,
1644 VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO,
1645 VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1646 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES,
1647 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
1648 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
1649 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES,
1650 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
1651 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
1652 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
1653 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
1654 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES,
1655 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES,
1656 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES,
1657 VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS,
1658 VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO,
1659 VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO,
1660 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO,
1661 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO,
1662 VK_STRUCTURE_TYPE_RENDERING_END_INFO_EXT = VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR,
1663 VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
1664} VkStructureType;
1665
1666typedef enum VkImageLayout {
1667 VK_IMAGE_LAYOUT_UNDEFINED = 0,
1668 VK_IMAGE_LAYOUT_GENERAL = 1,
1669 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
1670 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
1671 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
1672 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
1673 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
1674 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
1675 VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
1676 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
1677 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
1678 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
1679 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
1680 VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
1681 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
1682 VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
1683 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
1684 VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ = 1000232000,
1685 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
1686 VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
1687 VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
1688 VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
1689 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
1690 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
1691 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
1692 VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
1693 VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
1694 VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
1695 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000,
1696 VK_IMAGE_LAYOUT_TENSOR_ALIASING_ARM = 1000460000,
1697 VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR = 1000553000,
1698 VK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT = 1000620000,
1699 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
1700 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
1701 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
1702 VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR = VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ,
1703 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
1704 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
1705 VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
1706 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
1707 VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
1708 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
1709 VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
1710} VkImageLayout;
1711
1712typedef enum VkObjectType {
1713 VK_OBJECT_TYPE_UNKNOWN = 0,
1714 VK_OBJECT_TYPE_INSTANCE = 1,
1715 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1716 VK_OBJECT_TYPE_DEVICE = 3,
1717 VK_OBJECT_TYPE_QUEUE = 4,
1718 VK_OBJECT_TYPE_SEMAPHORE = 5,
1719 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1720 VK_OBJECT_TYPE_FENCE = 7,
1721 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1722 VK_OBJECT_TYPE_BUFFER = 9,
1723 VK_OBJECT_TYPE_IMAGE = 10,
1724 VK_OBJECT_TYPE_EVENT = 11,
1725 VK_OBJECT_TYPE_QUERY_POOL = 12,
1726 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1727 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1728 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1729 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1730 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1731 VK_OBJECT_TYPE_RENDER_PASS = 18,
1732 VK_OBJECT_TYPE_PIPELINE = 19,
1733 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1734 VK_OBJECT_TYPE_SAMPLER = 21,
1735 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1736 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1737 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1738 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1739 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1740 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1741 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
1742 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1743 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1744 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1745 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1746 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1747 VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
1748 VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
1749 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
1750 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
1751 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1752 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
1753 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
1754 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1755 VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
1756 VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
1757 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
1758#ifdef VK_ENABLE_BETA_EXTENSIONS
1759 VK_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000,
1760#endif
1761#ifdef VK_ENABLE_BETA_EXTENSIONS
1762 VK_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001,
1763#endif
1764 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000,
1765 VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000,
1766 VK_OBJECT_TYPE_TENSOR_ARM = 1000460000,
1767 VK_OBJECT_TYPE_TENSOR_VIEW_ARM = 1000460001,
1768 VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000,
1769 VK_OBJECT_TYPE_SHADER_EXT = 1000482000,
1770 VK_OBJECT_TYPE_PIPELINE_BINARY_KHR = 1000483000,
1771 VK_OBJECT_TYPE_DATA_GRAPH_PIPELINE_SESSION_ARM = 1000507000,
1772 VK_OBJECT_TYPE_EXTERNAL_COMPUTE_QUEUE_NV = 1000556000,
1773 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT = 1000572000,
1774 VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT = 1000572001,
1775 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1776 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1777 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
1778 VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
1779} VkObjectType;
1780
1781typedef enum VkVendorId {
1782 VK_VENDOR_ID_KHRONOS = 0x10000,
1783 VK_VENDOR_ID_VIV = 0x10001,
1784 VK_VENDOR_ID_VSI = 0x10002,
1785 VK_VENDOR_ID_KAZAN = 0x10003,
1786 VK_VENDOR_ID_CODEPLAY = 0x10004,
1787 VK_VENDOR_ID_MESA = 0x10005,
1788 VK_VENDOR_ID_POCL = 0x10006,
1789 VK_VENDOR_ID_MOBILEYE = 0x10007,
1790 VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
1791} VkVendorId;
1792
1793typedef enum VkSystemAllocationScope {
1794 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
1795 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
1796 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
1797 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
1798 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
1799 VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
1800} VkSystemAllocationScope;
1801
1802typedef enum VkInternalAllocationType {
1803 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
1804 VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
1805} VkInternalAllocationType;
1806
1807typedef enum VkFormat {
1808 VK_FORMAT_UNDEFINED = 0,
1809 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1810 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1811 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1812 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1813 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1814 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1815 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1816 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1817 VK_FORMAT_R8_UNORM = 9,
1818 VK_FORMAT_R8_SNORM = 10,
1819 VK_FORMAT_R8_USCALED = 11,
1820 VK_FORMAT_R8_SSCALED = 12,
1821 VK_FORMAT_R8_UINT = 13,
1822 VK_FORMAT_R8_SINT = 14,
1823 VK_FORMAT_R8_SRGB = 15,
1824 VK_FORMAT_R8G8_UNORM = 16,
1825 VK_FORMAT_R8G8_SNORM = 17,
1826 VK_FORMAT_R8G8_USCALED = 18,
1827 VK_FORMAT_R8G8_SSCALED = 19,
1828 VK_FORMAT_R8G8_UINT = 20,
1829 VK_FORMAT_R8G8_SINT = 21,
1830 VK_FORMAT_R8G8_SRGB = 22,
1831 VK_FORMAT_R8G8B8_UNORM = 23,
1832 VK_FORMAT_R8G8B8_SNORM = 24,
1833 VK_FORMAT_R8G8B8_USCALED = 25,
1834 VK_FORMAT_R8G8B8_SSCALED = 26,
1835 VK_FORMAT_R8G8B8_UINT = 27,
1836 VK_FORMAT_R8G8B8_SINT = 28,
1837 VK_FORMAT_R8G8B8_SRGB = 29,
1838 VK_FORMAT_B8G8R8_UNORM = 30,
1839 VK_FORMAT_B8G8R8_SNORM = 31,
1840 VK_FORMAT_B8G8R8_USCALED = 32,
1841 VK_FORMAT_B8G8R8_SSCALED = 33,
1842 VK_FORMAT_B8G8R8_UINT = 34,
1843 VK_FORMAT_B8G8R8_SINT = 35,
1844 VK_FORMAT_B8G8R8_SRGB = 36,
1845 VK_FORMAT_R8G8B8A8_UNORM = 37,
1846 VK_FORMAT_R8G8B8A8_SNORM = 38,
1847 VK_FORMAT_R8G8B8A8_USCALED = 39,
1848 VK_FORMAT_R8G8B8A8_SSCALED = 40,
1849 VK_FORMAT_R8G8B8A8_UINT = 41,
1850 VK_FORMAT_R8G8B8A8_SINT = 42,
1851 VK_FORMAT_R8G8B8A8_SRGB = 43,
1852 VK_FORMAT_B8G8R8A8_UNORM = 44,
1853 VK_FORMAT_B8G8R8A8_SNORM = 45,
1854 VK_FORMAT_B8G8R8A8_USCALED = 46,
1855 VK_FORMAT_B8G8R8A8_SSCALED = 47,
1856 VK_FORMAT_B8G8R8A8_UINT = 48,
1857 VK_FORMAT_B8G8R8A8_SINT = 49,
1858 VK_FORMAT_B8G8R8A8_SRGB = 50,
1859 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1860 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1861 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1862 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1863 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1864 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1865 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1866 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1867 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1868 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1869 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1870 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1871 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1872 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1873 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1874 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1875 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1876 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1877 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1878 VK_FORMAT_R16_UNORM = 70,
1879 VK_FORMAT_R16_SNORM = 71,
1880 VK_FORMAT_R16_USCALED = 72,
1881 VK_FORMAT_R16_SSCALED = 73,
1882 VK_FORMAT_R16_UINT = 74,
1883 VK_FORMAT_R16_SINT = 75,
1884 VK_FORMAT_R16_SFLOAT = 76,
1885 VK_FORMAT_R16G16_UNORM = 77,
1886 VK_FORMAT_R16G16_SNORM = 78,
1887 VK_FORMAT_R16G16_USCALED = 79,
1888 VK_FORMAT_R16G16_SSCALED = 80,
1889 VK_FORMAT_R16G16_UINT = 81,
1890 VK_FORMAT_R16G16_SINT = 82,
1891 VK_FORMAT_R16G16_SFLOAT = 83,
1892 VK_FORMAT_R16G16B16_UNORM = 84,
1893 VK_FORMAT_R16G16B16_SNORM = 85,
1894 VK_FORMAT_R16G16B16_USCALED = 86,
1895 VK_FORMAT_R16G16B16_SSCALED = 87,
1896 VK_FORMAT_R16G16B16_UINT = 88,
1897 VK_FORMAT_R16G16B16_SINT = 89,
1898 VK_FORMAT_R16G16B16_SFLOAT = 90,
1899 VK_FORMAT_R16G16B16A16_UNORM = 91,
1900 VK_FORMAT_R16G16B16A16_SNORM = 92,
1901 VK_FORMAT_R16G16B16A16_USCALED = 93,
1902 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1903 VK_FORMAT_R16G16B16A16_UINT = 95,
1904 VK_FORMAT_R16G16B16A16_SINT = 96,
1905 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1906 VK_FORMAT_R32_UINT = 98,
1907 VK_FORMAT_R32_SINT = 99,
1908 VK_FORMAT_R32_SFLOAT = 100,
1909 VK_FORMAT_R32G32_UINT = 101,
1910 VK_FORMAT_R32G32_SINT = 102,
1911 VK_FORMAT_R32G32_SFLOAT = 103,
1912 VK_FORMAT_R32G32B32_UINT = 104,
1913 VK_FORMAT_R32G32B32_SINT = 105,
1914 VK_FORMAT_R32G32B32_SFLOAT = 106,
1915 VK_FORMAT_R32G32B32A32_UINT = 107,
1916 VK_FORMAT_R32G32B32A32_SINT = 108,
1917 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1918 VK_FORMAT_R64_UINT = 110,
1919 VK_FORMAT_R64_SINT = 111,
1920 VK_FORMAT_R64_SFLOAT = 112,
1921 VK_FORMAT_R64G64_UINT = 113,
1922 VK_FORMAT_R64G64_SINT = 114,
1923 VK_FORMAT_R64G64_SFLOAT = 115,
1924 VK_FORMAT_R64G64B64_UINT = 116,
1925 VK_FORMAT_R64G64B64_SINT = 117,
1926 VK_FORMAT_R64G64B64_SFLOAT = 118,
1927 VK_FORMAT_R64G64B64A64_UINT = 119,
1928 VK_FORMAT_R64G64B64A64_SINT = 120,
1929 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1930 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1931 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1932 VK_FORMAT_D16_UNORM = 124,
1933 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1934 VK_FORMAT_D32_SFLOAT = 126,
1935 VK_FORMAT_S8_UINT = 127,
1936 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1937 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1938 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1939 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1940 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1941 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1942 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1943 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1944 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1945 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1946 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1947 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1948 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1949 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1950 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1951 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1952 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1953 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1954 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1955 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1956 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1957 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1958 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1959 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1960 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1961 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1962 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1963 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1964 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1965 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1966 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1967 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1968 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1969 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1970 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1971 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1972 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1973 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1974 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1975 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1976 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1977 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1978 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1979 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1980 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1981 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1982 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1983 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1984 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1985 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1986 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1987 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1988 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1989 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1990 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1991 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1992 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
1993 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1994 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1995 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1996 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1997 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1998 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1999 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
2000 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
2001 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
2002 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
2003 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
2004 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
2005 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
2006 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
2007 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
2008 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
2009 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
2010 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
2011 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
2012 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
2013 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
2014 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
2015 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
2016 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
2017 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
2018 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
2019 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
2020 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
2021 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
2022 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
2023 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
2024 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
2025 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
2026 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
2027 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
2028 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
2029 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
2030 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
2031 VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
2032 VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
2033 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
2034 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
2035 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
2036 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
2037 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
2038 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
2039 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
2040 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
2041 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
2042 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
2043 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
2044 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
2045 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
2046 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
2047 VK_FORMAT_A1B5G5R5_UNORM_PACK16 = 1000470000,
2048 VK_FORMAT_A8_UNORM = 1000470001,
2049 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
2050 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
2051 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
2052 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
2053 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
2054 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
2055 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
2056 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
2057 VK_FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT = 1000288000,
2058 VK_FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT = 1000288001,
2059 VK_FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXT = 1000288002,
2060 VK_FORMAT_ASTC_4x3x3_UNORM_BLOCK_EXT = 1000288003,
2061 VK_FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT = 1000288004,
2062 VK_FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXT = 1000288005,
2063 VK_FORMAT_ASTC_4x4x3_UNORM_BLOCK_EXT = 1000288006,
2064 VK_FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT = 1000288007,
2065 VK_FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXT = 1000288008,
2066 VK_FORMAT_ASTC_4x4x4_UNORM_BLOCK_EXT = 1000288009,
2067 VK_FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT = 1000288010,
2068 VK_FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXT = 1000288011,
2069 VK_FORMAT_ASTC_5x4x4_UNORM_BLOCK_EXT = 1000288012,
2070 VK_FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT = 1000288013,
2071 VK_FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXT = 1000288014,
2072 VK_FORMAT_ASTC_5x5x4_UNORM_BLOCK_EXT = 1000288015,
2073 VK_FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT = 1000288016,
2074 VK_FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXT = 1000288017,
2075 VK_FORMAT_ASTC_5x5x5_UNORM_BLOCK_EXT = 1000288018,
2076 VK_FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT = 1000288019,
2077 VK_FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXT = 1000288020,
2078 VK_FORMAT_ASTC_6x5x5_UNORM_BLOCK_EXT = 1000288021,
2079 VK_FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT = 1000288022,
2080 VK_FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT = 1000288023,
2081 VK_FORMAT_ASTC_6x6x5_UNORM_BLOCK_EXT = 1000288024,
2082 VK_FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT = 1000288025,
2083 VK_FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT = 1000288026,
2084 VK_FORMAT_ASTC_6x6x6_UNORM_BLOCK_EXT = 1000288027,
2085 VK_FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT = 1000288028,
2086 VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT = 1000288029,
2087 VK_FORMAT_R8_BOOL_ARM = 1000460000,
2088 VK_FORMAT_R16G16_SFIXED5_NV = 1000464000,
2089 VK_FORMAT_R10X6_UINT_PACK16_ARM = 1000609000,
2090 VK_FORMAT_R10X6G10X6_UINT_2PACK16_ARM = 1000609001,
2091 VK_FORMAT_R10X6G10X6B10X6A10X6_UINT_4PACK16_ARM = 1000609002,
2092 VK_FORMAT_R12X4_UINT_PACK16_ARM = 1000609003,
2093 VK_FORMAT_R12X4G12X4_UINT_2PACK16_ARM = 1000609004,
2094 VK_FORMAT_R12X4G12X4B12X4A12X4_UINT_4PACK16_ARM = 1000609005,
2095 VK_FORMAT_R14X2_UINT_PACK16_ARM = 1000609006,
2096 VK_FORMAT_R14X2G14X2_UINT_2PACK16_ARM = 1000609007,
2097 VK_FORMAT_R14X2G14X2B14X2A14X2_UINT_4PACK16_ARM = 1000609008,
2098 VK_FORMAT_R14X2_UNORM_PACK16_ARM = 1000609009,
2099 VK_FORMAT_R14X2G14X2_UNORM_2PACK16_ARM = 1000609010,
2100 VK_FORMAT_R14X2G14X2B14X2A14X2_UNORM_4PACK16_ARM = 1000609011,
2101 VK_FORMAT_G14X2_B14X2R14X2_2PLANE_420_UNORM_3PACK16_ARM = 1000609012,
2102 VK_FORMAT_G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM = 1000609013,
2103 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
2104 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
2105 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
2106 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
2107 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
2108 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
2109 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
2110 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
2111 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
2112 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
2113 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
2114 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
2115 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
2116 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
2117 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
2118 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
2119 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
2120 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
2121 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
2122 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
2123 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
2124 VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
2125 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
2126 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
2127 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
2128 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
2129 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
2130 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
2131 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
2132 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
2133 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
2134 VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
2135 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
2136 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
2137 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
2138 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
2139 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
2140 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
2141 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
2142 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
2143 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
2144 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
2145 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
2146 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
2147 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
2148 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
2149 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
2150 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
2151 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
2152 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
2153 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
2154 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
2155 VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
2156 VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
2157 // VK_FORMAT_R16G16_S10_5_NV is a legacy alias
2158 VK_FORMAT_R16G16_S10_5_NV = VK_FORMAT_R16G16_SFIXED5_NV,
2159 VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = VK_FORMAT_A1B5G5R5_UNORM_PACK16,
2160 VK_FORMAT_A8_UNORM_KHR = VK_FORMAT_A8_UNORM,
2161 VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
2162} VkFormat;
2163
2164typedef enum VkImageTiling {
2165 VK_IMAGE_TILING_OPTIMAL = 0,
2166 VK_IMAGE_TILING_LINEAR = 1,
2167 VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
2168 VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
2169} VkImageTiling;
2170
2171typedef enum VkImageType {
2172 VK_IMAGE_TYPE_1D = 0,
2173 VK_IMAGE_TYPE_2D = 1,
2174 VK_IMAGE_TYPE_3D = 2,
2175 VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
2176} VkImageType;
2177
2178typedef enum VkPhysicalDeviceType {
2179 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
2180 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
2181 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
2182 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
2183 VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
2184 VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
2185} VkPhysicalDeviceType;
2186
2187typedef enum VkQueryType {
2188 VK_QUERY_TYPE_OCCLUSION = 0,
2189 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
2190 VK_QUERY_TYPE_TIMESTAMP = 2,
2191 VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
2192 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
2193 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
2194 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
2195 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
2196 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
2197 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
2198 VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000,
2199 VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000,
2200 VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000,
2201 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000,
2202 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001,
2203 VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000,
2204 VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001,
2205 VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
2206} VkQueryType;
2207
2208typedef enum VkSharingMode {
2209 VK_SHARING_MODE_EXCLUSIVE = 0,
2210 VK_SHARING_MODE_CONCURRENT = 1,
2211 VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
2212} VkSharingMode;
2213
2214typedef enum VkComponentSwizzle {
2215 VK_COMPONENT_SWIZZLE_IDENTITY = 0,
2216 VK_COMPONENT_SWIZZLE_ZERO = 1,
2217 VK_COMPONENT_SWIZZLE_ONE = 2,
2218 VK_COMPONENT_SWIZZLE_R = 3,
2219 VK_COMPONENT_SWIZZLE_G = 4,
2220 VK_COMPONENT_SWIZZLE_B = 5,
2221 VK_COMPONENT_SWIZZLE_A = 6,
2222 VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
2223} VkComponentSwizzle;
2224
2225typedef enum VkImageViewType {
2226 VK_IMAGE_VIEW_TYPE_1D = 0,
2227 VK_IMAGE_VIEW_TYPE_2D = 1,
2228 VK_IMAGE_VIEW_TYPE_3D = 2,
2229 VK_IMAGE_VIEW_TYPE_CUBE = 3,
2230 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
2231 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
2232 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
2233 VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
2234} VkImageViewType;
2235
2236typedef enum VkCommandBufferLevel {
2237 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
2238 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
2239 VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
2240} VkCommandBufferLevel;
2241
2242typedef enum VkIndexType {
2243 VK_INDEX_TYPE_UINT16 = 0,
2244 VK_INDEX_TYPE_UINT32 = 1,
2245 VK_INDEX_TYPE_UINT8 = 1000265000,
2246 VK_INDEX_TYPE_NONE_KHR = 1000165000,
2247 VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
2248 VK_INDEX_TYPE_UINT8_EXT = VK_INDEX_TYPE_UINT8,
2249 VK_INDEX_TYPE_UINT8_KHR = VK_INDEX_TYPE_UINT8,
2250 VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
2251} VkIndexType;
2252
2253typedef enum VkPipelineCacheHeaderVersion {
2254 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
2255 VK_PIPELINE_CACHE_HEADER_VERSION_DATA_GRAPH_QCOM = 1000629000,
2256 VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
2257} VkPipelineCacheHeaderVersion;
2258
2259typedef enum VkBorderColor {
2260 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
2261 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
2262 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
2263 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
2264 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
2265 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
2266 VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
2267 VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
2268 VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
2269} VkBorderColor;
2270
2271typedef enum VkFilter {
2272 VK_FILTER_NEAREST = 0,
2273 VK_FILTER_LINEAR = 1,
2274 VK_FILTER_CUBIC_EXT = 1000015000,
2275 VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT,
2276 VK_FILTER_MAX_ENUM = 0x7FFFFFFF
2277} VkFilter;
2278
2279typedef enum VkSamplerAddressMode {
2280 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
2281 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
2282 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
2283 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
2284 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
2285 // VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR is a legacy alias
2286 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
2287 VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
2288} VkSamplerAddressMode;
2289
2290typedef enum VkSamplerMipmapMode {
2291 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
2292 VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
2293 VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
2294} VkSamplerMipmapMode;
2295
2296typedef enum VkCompareOp {
2297 VK_COMPARE_OP_NEVER = 0,
2298 VK_COMPARE_OP_LESS = 1,
2299 VK_COMPARE_OP_EQUAL = 2,
2300 VK_COMPARE_OP_LESS_OR_EQUAL = 3,
2301 VK_COMPARE_OP_GREATER = 4,
2302 VK_COMPARE_OP_NOT_EQUAL = 5,
2303 VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
2304 VK_COMPARE_OP_ALWAYS = 7,
2305 VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
2306} VkCompareOp;
2307
2308typedef enum VkDescriptorType {
2309 VK_DESCRIPTOR_TYPE_SAMPLER = 0,
2310 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
2311 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
2312 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
2313 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
2314 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
2315 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
2316 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
2317 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
2318 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
2319 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
2320 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
2321 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
2322 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
2323 VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
2324 VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001,
2325 VK_DESCRIPTOR_TYPE_TENSOR_ARM = 1000460000,
2326 VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000,
2327 VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570000,
2328 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
2329 VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
2330 VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
2331} VkDescriptorType;
2332
2333typedef enum VkPipelineBindPoint {
2334 VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
2335 VK_PIPELINE_BIND_POINT_COMPUTE = 1,
2336#ifdef VK_ENABLE_BETA_EXTENSIONS
2337 VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000,
2338#endif
2339 VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
2340 VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
2341 VK_PIPELINE_BIND_POINT_DATA_GRAPH_ARM = 1000507000,
2342 VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
2343 VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
2344} VkPipelineBindPoint;
2345
2346typedef enum VkBlendFactor {
2347 VK_BLEND_FACTOR_ZERO = 0,
2348 VK_BLEND_FACTOR_ONE = 1,
2349 VK_BLEND_FACTOR_SRC_COLOR = 2,
2350 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
2351 VK_BLEND_FACTOR_DST_COLOR = 4,
2352 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
2353 VK_BLEND_FACTOR_SRC_ALPHA = 6,
2354 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
2355 VK_BLEND_FACTOR_DST_ALPHA = 8,
2356 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
2357 VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
2358 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
2359 VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
2360 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
2361 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
2362 VK_BLEND_FACTOR_SRC1_COLOR = 15,
2363 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
2364 VK_BLEND_FACTOR_SRC1_ALPHA = 17,
2365 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
2366 VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
2367} VkBlendFactor;
2368
2369typedef enum VkBlendOp {
2370 VK_BLEND_OP_ADD = 0,
2371 VK_BLEND_OP_SUBTRACT = 1,
2372 VK_BLEND_OP_REVERSE_SUBTRACT = 2,
2373 VK_BLEND_OP_MIN = 3,
2374 VK_BLEND_OP_MAX = 4,
2375 VK_BLEND_OP_ZERO_EXT = 1000148000,
2376 VK_BLEND_OP_SRC_EXT = 1000148001,
2377 VK_BLEND_OP_DST_EXT = 1000148002,
2378 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
2379 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
2380 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
2381 VK_BLEND_OP_DST_IN_EXT = 1000148006,
2382 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
2383 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
2384 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
2385 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
2386 VK_BLEND_OP_XOR_EXT = 1000148011,
2387 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
2388 VK_BLEND_OP_SCREEN_EXT = 1000148013,
2389 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
2390 VK_BLEND_OP_DARKEN_EXT = 1000148015,
2391 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
2392 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
2393 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
2394 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
2395 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
2396 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
2397 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
2398 VK_BLEND_OP_INVERT_EXT = 1000148023,
2399 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
2400 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
2401 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
2402 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
2403 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
2404 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
2405 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
2406 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
2407 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
2408 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
2409 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
2410 VK_BLEND_OP_PLUS_EXT = 1000148035,
2411 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
2412 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
2413 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
2414 VK_BLEND_OP_MINUS_EXT = 1000148039,
2415 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
2416 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
2417 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
2418 VK_BLEND_OP_RED_EXT = 1000148043,
2419 VK_BLEND_OP_GREEN_EXT = 1000148044,
2420 VK_BLEND_OP_BLUE_EXT = 1000148045,
2421 VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
2422} VkBlendOp;
2423
2424typedef enum VkDynamicState {
2425 VK_DYNAMIC_STATE_VIEWPORT = 0,
2426 VK_DYNAMIC_STATE_SCISSOR = 1,
2427 VK_DYNAMIC_STATE_LINE_WIDTH = 2,
2428 VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
2429 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
2430 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
2431 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
2432 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
2433 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
2434 VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
2435 VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
2436 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
2437 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
2438 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
2439 VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
2440 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
2441 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
2442 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
2443 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
2444 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
2445 VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
2446 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
2447 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
2448 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
2449 VK_DYNAMIC_STATE_LINE_STIPPLE = 1000259000,
2450 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
2451 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
2452 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001,
2453 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002,
2454 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
2455 VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
2456 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
2457 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
2458 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000,
2459 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
2460 VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
2461 VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000,
2462 VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000,
2463 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003,
2464 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000,
2465 VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003,
2466 VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004,
2467 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005,
2468 VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006,
2469 VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007,
2470 VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008,
2471 VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009,
2472 VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010,
2473 VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011,
2474 VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012,
2475 VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002,
2476 VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013,
2477 VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014,
2478 VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015,
2479 VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016,
2480 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017,
2481 VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018,
2482 VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019,
2483 VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020,
2484 VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021,
2485 VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022,
2486 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023,
2487 VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024,
2488 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025,
2489 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026,
2490 VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027,
2491 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028,
2492 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029,
2493 VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030,
2494 VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031,
2495 VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
2496 VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000,
2497 VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT = 1000582000,
2498 VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = VK_DYNAMIC_STATE_LINE_STIPPLE,
2499 VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
2500 VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
2501 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
2502 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
2503 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
2504 VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
2505 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
2506 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
2507 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
2508 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
2509 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
2510 VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP,
2511 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
2512 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
2513 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
2514 VK_DYNAMIC_STATE_LINE_STIPPLE_KHR = VK_DYNAMIC_STATE_LINE_STIPPLE,
2515 VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
2516} VkDynamicState;
2517
2518typedef enum VkFrontFace {
2519 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
2520 VK_FRONT_FACE_CLOCKWISE = 1,
2521 VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
2522} VkFrontFace;
2523
2524typedef enum VkVertexInputRate {
2525 VK_VERTEX_INPUT_RATE_VERTEX = 0,
2526 VK_VERTEX_INPUT_RATE_INSTANCE = 1,
2527 VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
2528} VkVertexInputRate;
2529
2530typedef enum VkPrimitiveTopology {
2531 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
2532 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
2533 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
2534 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
2535 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
2536 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
2537 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
2538 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
2539 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
2540 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
2541 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
2542 VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
2543} VkPrimitiveTopology;
2544
2545typedef enum VkPolygonMode {
2546 VK_POLYGON_MODE_FILL = 0,
2547 VK_POLYGON_MODE_LINE = 1,
2548 VK_POLYGON_MODE_POINT = 2,
2549 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
2550 VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
2551} VkPolygonMode;
2552
2553typedef enum VkStencilOp {
2554 VK_STENCIL_OP_KEEP = 0,
2555 VK_STENCIL_OP_ZERO = 1,
2556 VK_STENCIL_OP_REPLACE = 2,
2557 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
2558 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
2559 VK_STENCIL_OP_INVERT = 5,
2560 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
2561 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
2562 VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
2563} VkStencilOp;
2564
2565typedef enum VkLogicOp {
2566 VK_LOGIC_OP_CLEAR = 0,
2567 VK_LOGIC_OP_AND = 1,
2568 VK_LOGIC_OP_AND_REVERSE = 2,
2569 VK_LOGIC_OP_COPY = 3,
2570 VK_LOGIC_OP_AND_INVERTED = 4,
2571 VK_LOGIC_OP_NO_OP = 5,
2572 VK_LOGIC_OP_XOR = 6,
2573 VK_LOGIC_OP_OR = 7,
2574 VK_LOGIC_OP_NOR = 8,
2575 VK_LOGIC_OP_EQUIVALENT = 9,
2576 VK_LOGIC_OP_INVERT = 10,
2577 VK_LOGIC_OP_OR_REVERSE = 11,
2578 VK_LOGIC_OP_COPY_INVERTED = 12,
2579 VK_LOGIC_OP_OR_INVERTED = 13,
2580 VK_LOGIC_OP_NAND = 14,
2581 VK_LOGIC_OP_SET = 15,
2582 VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
2583} VkLogicOp;
2584
2585typedef enum VkAttachmentLoadOp {
2586 VK_ATTACHMENT_LOAD_OP_LOAD = 0,
2587 VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
2588 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
2589 VK_ATTACHMENT_LOAD_OP_NONE = 1000400000,
2590 VK_ATTACHMENT_LOAD_OP_NONE_EXT = VK_ATTACHMENT_LOAD_OP_NONE,
2591 VK_ATTACHMENT_LOAD_OP_NONE_KHR = VK_ATTACHMENT_LOAD_OP_NONE,
2592 VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
2593} VkAttachmentLoadOp;
2594
2595typedef enum VkAttachmentStoreOp {
2596 VK_ATTACHMENT_STORE_OP_STORE = 0,
2597 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
2598 VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
2599 VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE,
2600 VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE,
2601 VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE,
2602 VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
2603} VkAttachmentStoreOp;
2604
2605typedef enum VkSubpassContents {
2606 VK_SUBPASS_CONTENTS_INLINE = 0,
2607 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
2608 VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR = 1000451000,
2609 VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR,
2610 VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
2611} VkSubpassContents;
2612
2613typedef enum VkAccessFlagBits {
2614 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2615 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2616 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2617 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2618 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2619 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2620 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2621 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2622 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2623 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2624 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2625 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2626 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2627 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2628 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2629 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2630 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
2631 VK_ACCESS_NONE = 0,
2632 VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
2633 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
2634 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
2635 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
2636 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
2637 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
2638 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
2639 VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
2640 VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
2641 VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000,
2642 VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000,
2643 VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
2644 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
2645 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
2646 VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT,
2647 VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT,
2648 VK_ACCESS_NONE_KHR = VK_ACCESS_NONE,
2649 VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2650} VkAccessFlagBits;
2651typedef VkFlags VkAccessFlags;
2652
2653typedef enum VkImageAspectFlagBits {
2654 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2655 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2656 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2657 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
2658 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2659 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2660 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2661 VK_IMAGE_ASPECT_NONE = 0,
2662 VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2663 VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2664 VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2665 VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
2666 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
2667 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
2668 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
2669 VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE,
2670 VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2671} VkImageAspectFlagBits;
2672typedef VkFlags VkImageAspectFlags;
2673
2674typedef enum VkFormatFeatureFlagBits {
2675 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
2676 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
2677 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
2678 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
2679 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
2680 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
2681 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
2682 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
2683 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
2684 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
2685 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
2686 VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
2687 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
2688 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2689 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2690 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2691 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2692 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2693 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2694 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2695 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2696 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2697 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
2698 VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
2699 VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
2700 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
2701 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000,
2702 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
2703 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
2704 VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
2705 VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
2706 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
2707 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
2708 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
2709 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
2710 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
2711 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
2712 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
2713 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
2714 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,
2715 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
2716 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
2717 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2718} VkFormatFeatureFlagBits;
2719typedef VkFlags VkFormatFeatureFlags;
2720
2721typedef enum VkImageCreateFlagBits {
2722 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2723 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2724 VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2725 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
2726 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
2727 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2728 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
2729 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
2730 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2731 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
2732 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
2733 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
2734 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
2735 VK_IMAGE_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_EXT = 0x00010000,
2736 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
2737 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
2738 VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000,
2739 VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000,
2740 VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000,
2741 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT = 0x00008000,
2742 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
2743 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
2744 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
2745 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
2746 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
2747 VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
2748 VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = VK_IMAGE_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_EXT,
2749 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
2750 VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2751} VkImageCreateFlagBits;
2752typedef VkFlags VkImageCreateFlags;
2753
2754typedef enum VkSampleCountFlagBits {
2755 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2756 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2757 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2758 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2759 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2760 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2761 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2762 VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2763} VkSampleCountFlagBits;
2764typedef VkFlags VkSampleCountFlags;
2765
2766typedef enum VkImageUsageFlagBits {
2767 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2768 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
2769 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
2770 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
2771 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
2772 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
2773 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
2774 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
2775 VK_IMAGE_USAGE_HOST_TRANSFER_BIT = 0x00400000,
2776 VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
2777 VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
2778 VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
2779 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
2780 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
2781 VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
2782 VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
2783 VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
2784 VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000,
2785 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
2786 VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000,
2787 VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000,
2788 VK_IMAGE_USAGE_TENSOR_ALIASING_BIT_ARM = 0x00800000,
2789 VK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM = 0x08000000,
2790 VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x02000000,
2791 VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x04000000,
2792 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2793 VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = VK_IMAGE_USAGE_HOST_TRANSFER_BIT,
2794 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2795} VkImageUsageFlagBits;
2796typedef VkFlags VkImageUsageFlags;
2797
2798typedef enum VkInstanceCreateFlagBits {
2799 VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001,
2800 VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2801} VkInstanceCreateFlagBits;
2802typedef VkFlags VkInstanceCreateFlags;
2803
2804typedef enum VkMemoryHeapFlagBits {
2805 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
2806 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2807 VK_MEMORY_HEAP_TILE_MEMORY_BIT_QCOM = 0x00000008,
2808 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
2809 VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2810} VkMemoryHeapFlagBits;
2811typedef VkFlags VkMemoryHeapFlags;
2812
2813typedef enum VkMemoryPropertyFlagBits {
2814 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2815 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2816 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2817 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2818 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
2819 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
2820 VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
2821 VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
2822 VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
2823 VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2824} VkMemoryPropertyFlagBits;
2825typedef VkFlags VkMemoryPropertyFlags;
2826
2827typedef enum VkQueueFlagBits {
2828 VK_QUEUE_GRAPHICS_BIT = 0x00000001,
2829 VK_QUEUE_COMPUTE_BIT = 0x00000002,
2830 VK_QUEUE_TRANSFER_BIT = 0x00000004,
2831 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
2832 VK_QUEUE_PROTECTED_BIT = 0x00000010,
2833 VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
2834 VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
2835 VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100,
2836 VK_QUEUE_DATA_GRAPH_BIT_ARM = 0x00000400,
2837 VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2838} VkQueueFlagBits;
2839typedef VkFlags VkQueueFlags;
2840typedef VkFlags VkDeviceCreateFlags;
2841
2842typedef enum VkDeviceQueueCreateFlagBits {
2843 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2844 VK_DEVICE_QUEUE_CREATE_INTERNALLY_SYNCHRONIZED_BIT_KHR = 0x00000004,
2845 VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2846} VkDeviceQueueCreateFlagBits;
2847typedef VkFlags VkDeviceQueueCreateFlags;
2848
2849typedef enum VkPipelineStageFlagBits {
2850 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
2851 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
2852 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
2853 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
2854 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
2855 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
2856 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
2857 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
2858 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
2859 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
2860 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
2861 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
2862 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
2863 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2864 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
2865 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
2866 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
2867 VK_PIPELINE_STAGE_NONE = 0,
2868 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
2869 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
2870 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
2871 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
2872 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
2873 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
2874 VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000,
2875 VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000,
2876 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT = 0x00020000,
2877 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2878 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
2879 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
2880 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
2881 VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
2882 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT,
2883 VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
2884 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2885} VkPipelineStageFlagBits;
2886typedef VkFlags VkPipelineStageFlags;
2887
2888typedef enum VkMemoryMapFlagBits {
2889 VK_MEMORY_MAP_PLACED_BIT_EXT = 0x00000001,
2890 VK_MEMORY_MAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2891} VkMemoryMapFlagBits;
2892typedef VkFlags VkMemoryMapFlags;
2893
2894typedef enum VkSparseMemoryBindFlagBits {
2895 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2896 VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2897} VkSparseMemoryBindFlagBits;
2898typedef VkFlags VkSparseMemoryBindFlags;
2899
2900typedef enum VkSparseImageFormatFlagBits {
2901 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
2902 VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
2903 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
2904 VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2905} VkSparseImageFormatFlagBits;
2906typedef VkFlags VkSparseImageFormatFlags;
2907
2908typedef enum VkFenceCreateFlagBits {
2909 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2910 VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2911} VkFenceCreateFlagBits;
2912typedef VkFlags VkFenceCreateFlags;
2913typedef VkFlags VkSemaphoreCreateFlags;
2914
2915typedef enum VkQueryPoolCreateFlagBits {
2916 VK_QUERY_POOL_CREATE_RESET_BIT_KHR = 0x00000001,
2917 VK_QUERY_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2918} VkQueryPoolCreateFlagBits;
2919typedef VkFlags VkQueryPoolCreateFlags;
2920
2921typedef enum VkQueryPipelineStatisticFlagBits {
2922 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
2923 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
2924 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
2925 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
2926 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
2927 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
2928 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
2929 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
2930 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
2931 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
2932 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
2933 VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800,
2934 VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000,
2935 VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000,
2936 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2937} VkQueryPipelineStatisticFlagBits;
2938typedef VkFlags VkQueryPipelineStatisticFlags;
2939
2940typedef enum VkQueryResultFlagBits {
2941 VK_QUERY_RESULT_64_BIT = 0x00000001,
2942 VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
2943 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
2944 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
2945 VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
2946 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2947} VkQueryResultFlagBits;
2948typedef VkFlags VkQueryResultFlags;
2949
2950typedef enum VkBufferCreateFlagBits {
2951 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2952 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2953 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2954 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
2955 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
2956 VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020,
2957 VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00000040,
2958 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2959 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2960 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2961} VkBufferCreateFlagBits;
2962typedef VkFlags VkBufferCreateFlags;
2963
2964typedef enum VkBufferUsageFlagBits {
2965 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2966 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
2967 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
2968 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
2969 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
2970 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
2971 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
2972 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
2973 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
2974 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
2975 VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
2976 VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
2977 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
2978 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
2979 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
2980#ifdef VK_ENABLE_BETA_EXTENSIONS
2981 VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000,
2982#endif
2983 VK_BUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXT = 0x10000000,
2984 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
2985 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
2986 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
2987 VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
2988 VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
2989 VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000,
2990 VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000,
2991 VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000,
2992 VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000,
2993 VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000,
2994 VK_BUFFER_USAGE_TILE_MEMORY_BIT_QCOM = 0x08000000,
2995 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
2996 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2997 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2998 VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2999} VkBufferUsageFlagBits;
3000typedef VkFlags VkBufferUsageFlags;
3001
3002typedef enum VkImageViewCreateFlagBits {
3003 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
3004 VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004,
3005 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
3006 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3007} VkImageViewCreateFlagBits;
3008typedef VkFlags VkImageViewCreateFlags;
3009
3010typedef enum VkDependencyFlagBits {
3011 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
3012 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
3013 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
3014 VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008,
3015 VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR = 0x00000020,
3016 VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR = 0x00000040,
3017 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
3018 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
3019 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3020} VkDependencyFlagBits;
3021typedef VkFlags VkDependencyFlags;
3022
3023typedef enum VkCommandPoolCreateFlagBits {
3024 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
3025 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
3026 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
3027 VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3028} VkCommandPoolCreateFlagBits;
3029typedef VkFlags VkCommandPoolCreateFlags;
3030
3031typedef enum VkCommandPoolResetFlagBits {
3032 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
3033 VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3034} VkCommandPoolResetFlagBits;
3035typedef VkFlags VkCommandPoolResetFlags;
3036
3037typedef enum VkCommandBufferUsageFlagBits {
3038 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
3039 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
3040 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
3041 VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3042} VkCommandBufferUsageFlagBits;
3043typedef VkFlags VkCommandBufferUsageFlags;
3044
3045typedef enum VkQueryControlFlagBits {
3046 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
3047 VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3048} VkQueryControlFlagBits;
3049typedef VkFlags VkQueryControlFlags;
3050
3051typedef enum VkCommandBufferResetFlagBits {
3052 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
3053 VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3054} VkCommandBufferResetFlagBits;
3055typedef VkFlags VkCommandBufferResetFlags;
3056
3057typedef enum VkEventCreateFlagBits {
3058 VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001,
3059 VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
3060 VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3061} VkEventCreateFlagBits;
3062typedef VkFlags VkEventCreateFlags;
3063typedef VkFlags VkBufferViewCreateFlags;
3064typedef VkFlags VkShaderModuleCreateFlags;
3065
3066typedef enum VkPipelineCacheCreateFlagBits {
3067 VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001,
3068 VK_PIPELINE_CACHE_CREATE_INTERNALLY_SYNCHRONIZED_MERGE_BIT_KHR = 0x00000008,
3069 VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
3070 VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3071} VkPipelineCacheCreateFlagBits;
3072typedef VkFlags VkPipelineCacheCreateFlags;
3073
3074typedef enum VkPipelineCreateFlagBits {
3075 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
3076 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
3077 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
3078 VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
3079 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
3080 VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100,
3081 VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200,
3082 VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT = 0x08000000,
3083 VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT = 0x40000000,
3084 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
3085 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
3086 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
3087 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
3088 VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
3089 VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
3090 VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000,
3091 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
3092 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000,
3093 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000,
3094 VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
3095 VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
3096 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
3097 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
3098 VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000,
3099 VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000,
3100 VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400,
3101 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000,
3102 VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000,
3103 VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000,
3104 VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000,
3105#ifdef VK_ENABLE_BETA_EXTENSIONS
3106 VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000,
3107#endif
3108 // VK_PIPELINE_CREATE_DISPATCH_BASE is a legacy alias
3109 VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
3110 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
3111 VK_PIPELINE_CREATE_DISPATCH_BASE_BIT_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
3112 // VK_PIPELINE_CREATE_DISPATCH_BASE_KHR is a legacy alias
3113 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
3114 // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT is a legacy alias
3115 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
3116 // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR is a legacy alias
3117 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
3118 VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
3119 VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
3120 VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT,
3121 VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT,
3122 VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3123} VkPipelineCreateFlagBits;
3124typedef VkFlags VkPipelineCreateFlags;
3125
3126typedef enum VkPipelineShaderStageCreateFlagBits {
3127 VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001,
3128 VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002,
3129 VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
3130 VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
3131 VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3132} VkPipelineShaderStageCreateFlagBits;
3133typedef VkFlags VkPipelineShaderStageCreateFlags;
3134
3135typedef enum VkShaderStageFlagBits {
3136 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
3137 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
3138 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
3139 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
3140 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
3141 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
3142 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
3143 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
3144 VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
3145 VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
3146 VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
3147 VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
3148 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
3149 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
3150 VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040,
3151 VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080,
3152 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
3153 VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000,
3154 VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
3155 VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
3156 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
3157 VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
3158 VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
3159 VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
3160 VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT,
3161 VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT,
3162 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3163} VkShaderStageFlagBits;
3164
3165typedef enum VkPipelineLayoutCreateFlagBits {
3166 VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002,
3167 VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3168} VkPipelineLayoutCreateFlagBits;
3169typedef VkFlags VkPipelineLayoutCreateFlags;
3170typedef VkFlags VkShaderStageFlags;
3171
3172typedef enum VkSamplerCreateFlagBits {
3173 VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
3174 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
3175 VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
3176 VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0x00000004,
3177 VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0x00000010,
3178 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3179} VkSamplerCreateFlagBits;
3180typedef VkFlags VkSamplerCreateFlags;
3181
3182typedef enum VkDescriptorPoolCreateFlagBits {
3183 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
3184 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
3185 VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004,
3186 VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008,
3187 VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010,
3188 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
3189 VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
3190 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3191} VkDescriptorPoolCreateFlagBits;
3192typedef VkFlags VkDescriptorPoolCreateFlags;
3193typedef VkFlags VkDescriptorPoolResetFlags;
3194
3195typedef enum VkDescriptorSetLayoutCreateFlagBits {
3196 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
3197 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT = 0x00000001,
3198 VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010,
3199 VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020,
3200 VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00000080,
3201 VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004,
3202 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV = 0x00000040,
3203 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT,
3204 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
3205 VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
3206 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3207} VkDescriptorSetLayoutCreateFlagBits;
3208typedef VkFlags VkDescriptorSetLayoutCreateFlags;
3209
3210typedef enum VkColorComponentFlagBits {
3211 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
3212 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
3213 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
3214 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
3215 VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3216} VkColorComponentFlagBits;
3217typedef VkFlags VkColorComponentFlags;
3218
3219typedef enum VkCullModeFlagBits {
3220 VK_CULL_MODE_NONE = 0,
3221 VK_CULL_MODE_FRONT_BIT = 0x00000001,
3222 VK_CULL_MODE_BACK_BIT = 0x00000002,
3223 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
3224 VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3225} VkCullModeFlagBits;
3226typedef VkFlags VkCullModeFlags;
3227typedef VkFlags VkPipelineVertexInputStateCreateFlags;
3228typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
3229typedef VkFlags VkPipelineTessellationStateCreateFlags;
3230typedef VkFlags VkPipelineViewportStateCreateFlags;
3231typedef VkFlags VkPipelineRasterizationStateCreateFlags;
3232typedef VkFlags VkPipelineMultisampleStateCreateFlags;
3233
3234typedef enum VkPipelineDepthStencilStateCreateFlagBits {
3235 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001,
3236 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002,
3237 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,
3238 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,
3239 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3240} VkPipelineDepthStencilStateCreateFlagBits;
3241typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
3242
3243typedef enum VkPipelineColorBlendStateCreateFlagBits {
3244 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001,
3245 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
3246 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3247} VkPipelineColorBlendStateCreateFlagBits;
3248typedef VkFlags VkPipelineColorBlendStateCreateFlags;
3249typedef VkFlags VkPipelineDynamicStateCreateFlags;
3250
3251typedef enum VkAttachmentDescriptionFlagBits {
3252 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
3253 VK_ATTACHMENT_DESCRIPTION_RESOLVE_SKIP_TRANSFER_FUNCTION_BIT_KHR = 0x00000002,
3254 VK_ATTACHMENT_DESCRIPTION_RESOLVE_ENABLE_TRANSFER_FUNCTION_BIT_KHR = 0x00000004,
3255 VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3256} VkAttachmentDescriptionFlagBits;
3257typedef VkFlags VkAttachmentDescriptionFlags;
3258
3259typedef enum VkFramebufferCreateFlagBits {
3260 VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
3261 VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
3262 VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3263} VkFramebufferCreateFlagBits;
3264typedef VkFlags VkFramebufferCreateFlags;
3265
3266typedef enum VkRenderPassCreateFlagBits {
3267 VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
3268 VK_RENDER_PASS_CREATE_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x00000004,
3269 VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3270} VkRenderPassCreateFlagBits;
3271typedef VkFlags VkRenderPassCreateFlags;
3272
3273typedef enum VkSubpassDescriptionFlagBits {
3274 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
3275 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
3276 VK_SUBPASS_DESCRIPTION_TILE_SHADING_APRON_BIT_QCOM = 0x00000100,
3277 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010,
3278 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020,
3279 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040,
3280 VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080,
3281 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_EXT = 0x00000004,
3282 VK_SUBPASS_DESCRIPTION_CUSTOM_RESOLVE_BIT_EXT = 0x00000008,
3283 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_EXT,
3284 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = VK_SUBPASS_DESCRIPTION_CUSTOM_RESOLVE_BIT_EXT,
3285 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
3286 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
3287 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
3288 VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3289} VkSubpassDescriptionFlagBits;
3290typedef VkFlags VkSubpassDescriptionFlags;
3291
3292typedef enum VkStencilFaceFlagBits {
3293 VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
3294 VK_STENCIL_FACE_BACK_BIT = 0x00000002,
3295 VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
3296 // VK_STENCIL_FRONT_AND_BACK is a legacy alias
3297 VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
3298 VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3299} VkStencilFaceFlagBits;
3300typedef VkFlags VkStencilFaceFlags;
3301typedef struct VkExtent2D {
3302 uint32_t width;
3303 uint32_t height;
3304} VkExtent2D;
3305
3306typedef struct VkExtent3D {
3307 uint32_t width;
3308 uint32_t height;
3309 uint32_t depth;
3310} VkExtent3D;
3311
3312typedef struct VkOffset2D {
3313 int32_t x;
3314 int32_t y;
3315} VkOffset2D;
3316
3317typedef struct VkOffset3D {
3318 int32_t x;
3319 int32_t y;
3320 int32_t z;
3321} VkOffset3D;
3322
3323typedef struct VkRect2D {
3324 VkOffset2D offset;
3325 VkExtent2D extent;
3326} VkRect2D;
3327
3328typedef struct VkBaseInStructure {
3329 VkStructureType sType;
3330 const struct VkBaseInStructure* pNext;
3331} VkBaseInStructure;
3332
3333typedef struct VkBaseOutStructure {
3334 VkStructureType sType;
3335 struct VkBaseOutStructure* pNext;
3336} VkBaseOutStructure;
3337
3338typedef struct VkBufferMemoryBarrier {
3339 VkStructureType sType;
3340 const void* pNext;
3341 VkAccessFlags srcAccessMask;
3342 VkAccessFlags dstAccessMask;
3343 uint32_t srcQueueFamilyIndex;
3344 uint32_t dstQueueFamilyIndex;
3345 VkBuffer buffer;
3346 VkDeviceSize offset;
3347 VkDeviceSize size;
3348} VkBufferMemoryBarrier;
3349
3350typedef struct VkImageSubresourceRange {
3351 VkImageAspectFlags aspectMask;
3352 uint32_t baseMipLevel;
3353 uint32_t levelCount;
3354 uint32_t baseArrayLayer;
3355 uint32_t layerCount;
3356} VkImageSubresourceRange;
3357
3358typedef struct VkImageMemoryBarrier {
3359 VkStructureType sType;
3360 const void* pNext;
3361 VkAccessFlags srcAccessMask;
3362 VkAccessFlags dstAccessMask;
3363 VkImageLayout oldLayout;
3364 VkImageLayout newLayout;
3365 uint32_t srcQueueFamilyIndex;
3366 uint32_t dstQueueFamilyIndex;
3367 VkImage image;
3368 VkImageSubresourceRange subresourceRange;
3369} VkImageMemoryBarrier;
3370
3371typedef struct VkMemoryBarrier {
3372 VkStructureType sType;
3373 const void* pNext;
3374 VkAccessFlags srcAccessMask;
3375 VkAccessFlags dstAccessMask;
3376} VkMemoryBarrier;
3377
3378typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
3379 void* pUserData,
3380 size_t size,
3381 size_t alignment,
3382 VkSystemAllocationScope allocationScope);
3383
3384typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
3385 void* pUserData,
3386 void* pMemory);
3387
3388typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
3389 void* pUserData,
3390 size_t size,
3391 VkInternalAllocationType allocationType,
3392 VkSystemAllocationScope allocationScope);
3393
3394typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
3395 void* pUserData,
3396 size_t size,
3397 VkInternalAllocationType allocationType,
3398 VkSystemAllocationScope allocationScope);
3399
3400typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
3401 void* pUserData,
3402 void* pOriginal,
3403 size_t size,
3404 size_t alignment,
3405 VkSystemAllocationScope allocationScope);
3406
3407typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
3408typedef struct VkAllocationCallbacks {
3409 void* pUserData;
3410 PFN_vkAllocationFunction pfnAllocation;
3411 PFN_vkReallocationFunction pfnReallocation;
3412 PFN_vkFreeFunction pfnFree;
3413 PFN_vkInternalAllocationNotification pfnInternalAllocation;
3414 PFN_vkInternalFreeNotification pfnInternalFree;
3415} VkAllocationCallbacks;
3416
3417typedef struct VkApplicationInfo {
3418 VkStructureType sType;
3419 const void* pNext;
3420 const char* pApplicationName;
3421 uint32_t applicationVersion;
3422 const char* pEngineName;
3423 uint32_t engineVersion;
3424 uint32_t apiVersion;
3425} VkApplicationInfo;
3426
3427typedef struct VkFormatProperties {
3428 VkFormatFeatureFlags linearTilingFeatures;
3429 VkFormatFeatureFlags optimalTilingFeatures;
3430 VkFormatFeatureFlags bufferFeatures;
3431} VkFormatProperties;
3432
3433typedef struct VkImageFormatProperties {
3434 VkExtent3D maxExtent;
3435 uint32_t maxMipLevels;
3436 uint32_t maxArrayLayers;
3437 VkSampleCountFlags sampleCounts;
3438 VkDeviceSize maxResourceSize;
3439} VkImageFormatProperties;
3440
3441typedef struct VkInstanceCreateInfo {
3442 VkStructureType sType;
3443 const void* pNext;
3444 VkInstanceCreateFlags flags;
3445 const VkApplicationInfo* pApplicationInfo;
3446 uint32_t enabledLayerCount;
3447 const char* const* ppEnabledLayerNames;
3448 uint32_t enabledExtensionCount;
3449 const char* const* ppEnabledExtensionNames;
3450} VkInstanceCreateInfo;
3451
3452typedef struct VkMemoryHeap {
3453 VkDeviceSize size;
3454 VkMemoryHeapFlags flags;
3455} VkMemoryHeap;
3456
3457typedef struct VkMemoryType {
3458 VkMemoryPropertyFlags propertyFlags;
3459 uint32_t heapIndex;
3460} VkMemoryType;
3461
3462typedef struct VkPhysicalDeviceFeatures {
3463 VkBool32 robustBufferAccess;
3464 VkBool32 fullDrawIndexUint32;
3465 VkBool32 imageCubeArray;
3466 VkBool32 independentBlend;
3467 VkBool32 geometryShader;
3468 VkBool32 tessellationShader;
3469 VkBool32 sampleRateShading;
3470 VkBool32 dualSrcBlend;
3471 VkBool32 logicOp;
3472 VkBool32 multiDrawIndirect;
3473 VkBool32 drawIndirectFirstInstance;
3474 VkBool32 depthClamp;
3475 VkBool32 depthBiasClamp;
3476 VkBool32 fillModeNonSolid;
3477 VkBool32 depthBounds;
3478 VkBool32 wideLines;
3479 VkBool32 largePoints;
3480 VkBool32 alphaToOne;
3481 VkBool32 multiViewport;
3482 VkBool32 samplerAnisotropy;
3483 VkBool32 textureCompressionETC2;
3484 VkBool32 textureCompressionASTC_LDR;
3485 VkBool32 textureCompressionBC;
3486 VkBool32 occlusionQueryPrecise;
3487 VkBool32 pipelineStatisticsQuery;
3488 VkBool32 vertexPipelineStoresAndAtomics;
3489 VkBool32 fragmentStoresAndAtomics;
3490 VkBool32 shaderTessellationAndGeometryPointSize;
3491 VkBool32 shaderImageGatherExtended;
3492 VkBool32 shaderStorageImageExtendedFormats;
3493 VkBool32 shaderStorageImageMultisample;
3494 VkBool32 shaderStorageImageReadWithoutFormat;
3495 VkBool32 shaderStorageImageWriteWithoutFormat;
3496 VkBool32 shaderUniformBufferArrayDynamicIndexing;
3497 VkBool32 shaderSampledImageArrayDynamicIndexing;
3498 VkBool32 shaderStorageBufferArrayDynamicIndexing;
3499 VkBool32 shaderStorageImageArrayDynamicIndexing;
3500 VkBool32 shaderClipDistance;
3501 VkBool32 shaderCullDistance;
3502 VkBool32 shaderFloat64;
3503 VkBool32 shaderInt64;
3504 VkBool32 shaderInt16;
3505 VkBool32 shaderResourceResidency;
3506 VkBool32 shaderResourceMinLod;
3507 VkBool32 sparseBinding;
3508 VkBool32 sparseResidencyBuffer;
3509 VkBool32 sparseResidencyImage2D;
3510 VkBool32 sparseResidencyImage3D;
3511 VkBool32 sparseResidency2Samples;
3512 VkBool32 sparseResidency4Samples;
3513 VkBool32 sparseResidency8Samples;
3514 VkBool32 sparseResidency16Samples;
3515 VkBool32 sparseResidencyAliased;
3516 VkBool32 variableMultisampleRate;
3517 VkBool32 inheritedQueries;
3518} VkPhysicalDeviceFeatures;
3519
3520typedef struct VkPhysicalDeviceLimits {
3521 uint32_t maxImageDimension1D;
3522 uint32_t maxImageDimension2D;
3523 uint32_t maxImageDimension3D;
3524 uint32_t maxImageDimensionCube;
3525 uint32_t maxImageArrayLayers;
3526 uint32_t maxTexelBufferElements;
3527 uint32_t maxUniformBufferRange;
3528 uint32_t maxStorageBufferRange;
3529 uint32_t maxPushConstantsSize;
3530 uint32_t maxMemoryAllocationCount;
3531 uint32_t maxSamplerAllocationCount;
3532 VkDeviceSize bufferImageGranularity;
3533 VkDeviceSize sparseAddressSpaceSize;
3534 uint32_t maxBoundDescriptorSets;
3535 uint32_t maxPerStageDescriptorSamplers;
3536 uint32_t maxPerStageDescriptorUniformBuffers;
3537 uint32_t maxPerStageDescriptorStorageBuffers;
3538 uint32_t maxPerStageDescriptorSampledImages;
3539 uint32_t maxPerStageDescriptorStorageImages;
3540 uint32_t maxPerStageDescriptorInputAttachments;
3541 uint32_t maxPerStageResources;
3542 uint32_t maxDescriptorSetSamplers;
3543 uint32_t maxDescriptorSetUniformBuffers;
3544 uint32_t maxDescriptorSetUniformBuffersDynamic;
3545 uint32_t maxDescriptorSetStorageBuffers;
3546 uint32_t maxDescriptorSetStorageBuffersDynamic;
3547 uint32_t maxDescriptorSetSampledImages;
3548 uint32_t maxDescriptorSetStorageImages;
3549 uint32_t maxDescriptorSetInputAttachments;
3550 uint32_t maxVertexInputAttributes;
3551 uint32_t maxVertexInputBindings;
3552 uint32_t maxVertexInputAttributeOffset;
3553 uint32_t maxVertexInputBindingStride;
3554 uint32_t maxVertexOutputComponents;
3555 uint32_t maxTessellationGenerationLevel;
3556 uint32_t maxTessellationPatchSize;
3557 uint32_t maxTessellationControlPerVertexInputComponents;
3558 uint32_t maxTessellationControlPerVertexOutputComponents;
3559 uint32_t maxTessellationControlPerPatchOutputComponents;
3560 uint32_t maxTessellationControlTotalOutputComponents;
3561 uint32_t maxTessellationEvaluationInputComponents;
3562 uint32_t maxTessellationEvaluationOutputComponents;
3563 uint32_t maxGeometryShaderInvocations;
3564 uint32_t maxGeometryInputComponents;
3565 uint32_t maxGeometryOutputComponents;
3566 uint32_t maxGeometryOutputVertices;
3567 uint32_t maxGeometryTotalOutputComponents;
3568 uint32_t maxFragmentInputComponents;
3569 uint32_t maxFragmentOutputAttachments;
3570 uint32_t maxFragmentDualSrcAttachments;
3571 uint32_t maxFragmentCombinedOutputResources;
3572 uint32_t maxComputeSharedMemorySize;
3573 uint32_t maxComputeWorkGroupCount[3];
3574 uint32_t maxComputeWorkGroupInvocations;
3575 uint32_t maxComputeWorkGroupSize[3];
3576 uint32_t subPixelPrecisionBits;
3577 uint32_t subTexelPrecisionBits;
3578 uint32_t mipmapPrecisionBits;
3579 uint32_t maxDrawIndexedIndexValue;
3580 uint32_t maxDrawIndirectCount;
3581 float maxSamplerLodBias;
3582 float maxSamplerAnisotropy;
3583 uint32_t maxViewports;
3584 uint32_t maxViewportDimensions[2];
3585 float viewportBoundsRange[2];
3586 uint32_t viewportSubPixelBits;
3587 size_t minMemoryMapAlignment;
3588 VkDeviceSize minTexelBufferOffsetAlignment;
3589 VkDeviceSize minUniformBufferOffsetAlignment;
3590 VkDeviceSize minStorageBufferOffsetAlignment;
3591 int32_t minTexelOffset;
3592 uint32_t maxTexelOffset;
3593 int32_t minTexelGatherOffset;
3594 uint32_t maxTexelGatherOffset;
3595 float minInterpolationOffset;
3596 float maxInterpolationOffset;
3597 uint32_t subPixelInterpolationOffsetBits;
3598 uint32_t maxFramebufferWidth;
3599 uint32_t maxFramebufferHeight;
3600 uint32_t maxFramebufferLayers;
3601 VkSampleCountFlags framebufferColorSampleCounts;
3602 VkSampleCountFlags framebufferDepthSampleCounts;
3603 VkSampleCountFlags framebufferStencilSampleCounts;
3604 VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
3605 uint32_t maxColorAttachments;
3606 VkSampleCountFlags sampledImageColorSampleCounts;
3607 VkSampleCountFlags sampledImageIntegerSampleCounts;
3608 VkSampleCountFlags sampledImageDepthSampleCounts;
3609 VkSampleCountFlags sampledImageStencilSampleCounts;
3610 VkSampleCountFlags storageImageSampleCounts;
3611 uint32_t maxSampleMaskWords;
3612 VkBool32 timestampComputeAndGraphics;
3613 float timestampPeriod;
3614 uint32_t maxClipDistances;
3615 uint32_t maxCullDistances;
3616 uint32_t maxCombinedClipAndCullDistances;
3617 uint32_t discreteQueuePriorities;
3618 float pointSizeRange[2];
3619 float lineWidthRange[2];
3620 float pointSizeGranularity;
3621 float lineWidthGranularity;
3622 VkBool32 strictLines;
3623 VkBool32 standardSampleLocations;
3624 VkDeviceSize optimalBufferCopyOffsetAlignment;
3625 VkDeviceSize optimalBufferCopyRowPitchAlignment;
3626 VkDeviceSize nonCoherentAtomSize;
3627} VkPhysicalDeviceLimits;
3628
3629typedef struct VkPhysicalDeviceMemoryProperties {
3630 uint32_t memoryTypeCount;
3631 VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
3632 uint32_t memoryHeapCount;
3633 VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
3634} VkPhysicalDeviceMemoryProperties;
3635
3636typedef struct VkPhysicalDeviceSparseProperties {
3637 VkBool32 residencyStandard2DBlockShape;
3638 VkBool32 residencyStandard2DMultisampleBlockShape;
3639 VkBool32 residencyStandard3DBlockShape;
3640 VkBool32 residencyAlignedMipSize;
3641 VkBool32 residencyNonResidentStrict;
3642} VkPhysicalDeviceSparseProperties;
3643
3644typedef struct VkPhysicalDeviceProperties {
3645 uint32_t apiVersion;
3646 uint32_t driverVersion;
3647 uint32_t vendorID;
3648 uint32_t deviceID;
3649 VkPhysicalDeviceType deviceType;
3650 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
3651 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
3652 VkPhysicalDeviceLimits limits;
3653 VkPhysicalDeviceSparseProperties sparseProperties;
3654} VkPhysicalDeviceProperties;
3655
3656typedef struct VkQueueFamilyProperties {
3657 VkQueueFlags queueFlags;
3658 uint32_t queueCount;
3659 uint32_t timestampValidBits;
3660 VkExtent3D minImageTransferGranularity;
3661} VkQueueFamilyProperties;
3662
3663typedef struct VkDeviceQueueCreateInfo {
3664 VkStructureType sType;
3665 const void* pNext;
3666 VkDeviceQueueCreateFlags flags;
3667 uint32_t queueFamilyIndex;
3668 uint32_t queueCount;
3669 const float* pQueuePriorities;
3670} VkDeviceQueueCreateInfo;
3671
3672typedef struct VkDeviceCreateInfo {
3673 VkStructureType sType;
3674 const void* pNext;
3675 VkDeviceCreateFlags flags;
3676 uint32_t queueCreateInfoCount;
3677 const VkDeviceQueueCreateInfo* pQueueCreateInfos;
3678 // enabledLayerCount is legacy and should not be used
3679 uint32_t enabledLayerCount;
3680 // ppEnabledLayerNames is legacy and should not be used
3681 const char* const* ppEnabledLayerNames;
3682 uint32_t enabledExtensionCount;
3683 const char* const* ppEnabledExtensionNames;
3684 const VkPhysicalDeviceFeatures* pEnabledFeatures;
3685} VkDeviceCreateInfo;
3686
3687typedef struct VkExtensionProperties {
3688 char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
3689 uint32_t specVersion;
3690} VkExtensionProperties;
3691
3692typedef struct VkLayerProperties {
3693 char layerName[VK_MAX_EXTENSION_NAME_SIZE];
3694 uint32_t specVersion;
3695 uint32_t implementationVersion;
3696 char description[VK_MAX_DESCRIPTION_SIZE];
3697} VkLayerProperties;
3698
3699typedef struct VkSubmitInfo {
3700 VkStructureType sType;
3701 const void* pNext;
3702 uint32_t waitSemaphoreCount;
3703 const VkSemaphore* pWaitSemaphores;
3704 const VkPipelineStageFlags* pWaitDstStageMask;
3705 uint32_t commandBufferCount;
3706 const VkCommandBuffer* pCommandBuffers;
3707 uint32_t signalSemaphoreCount;
3708 const VkSemaphore* pSignalSemaphores;
3709} VkSubmitInfo;
3710
3711typedef struct VkMappedMemoryRange {
3712 VkStructureType sType;
3713 const void* pNext;
3714 VkDeviceMemory memory;
3715 VkDeviceSize offset;
3716 VkDeviceSize size;
3717} VkMappedMemoryRange;
3718
3719typedef struct VkMemoryAllocateInfo {
3720 VkStructureType sType;
3721 const void* pNext;
3722 VkDeviceSize allocationSize;
3723 uint32_t memoryTypeIndex;
3724} VkMemoryAllocateInfo;
3725
3726typedef struct VkMemoryRequirements {
3727 VkDeviceSize size;
3728 VkDeviceSize alignment;
3729 uint32_t memoryTypeBits;
3730} VkMemoryRequirements;
3731
3732typedef struct VkSparseMemoryBind {
3733 VkDeviceSize resourceOffset;
3734 VkDeviceSize size;
3735 VkDeviceMemory memory;
3736 VkDeviceSize memoryOffset;
3737 VkSparseMemoryBindFlags flags;
3738} VkSparseMemoryBind;
3739
3740typedef struct VkSparseBufferMemoryBindInfo {
3741 VkBuffer buffer;
3742 uint32_t bindCount;
3743 const VkSparseMemoryBind* pBinds;
3744} VkSparseBufferMemoryBindInfo;
3745
3746typedef struct VkSparseImageOpaqueMemoryBindInfo {
3747 VkImage image;
3748 uint32_t bindCount;
3749 const VkSparseMemoryBind* pBinds;
3750} VkSparseImageOpaqueMemoryBindInfo;
3751
3752typedef struct VkImageSubresource {
3753 VkImageAspectFlags aspectMask;
3754 uint32_t mipLevel;
3755 uint32_t arrayLayer;
3756} VkImageSubresource;
3757
3758typedef struct VkSparseImageMemoryBind {
3759 VkImageSubresource subresource;
3760 VkOffset3D offset;
3761 VkExtent3D extent;
3762 VkDeviceMemory memory;
3763 VkDeviceSize memoryOffset;
3764 VkSparseMemoryBindFlags flags;
3765} VkSparseImageMemoryBind;
3766
3767typedef struct VkSparseImageMemoryBindInfo {
3768 VkImage image;
3769 uint32_t bindCount;
3770 const VkSparseImageMemoryBind* pBinds;
3771} VkSparseImageMemoryBindInfo;
3772
3773typedef struct VkBindSparseInfo {
3774 VkStructureType sType;
3775 const void* pNext;
3776 uint32_t waitSemaphoreCount;
3777 const VkSemaphore* pWaitSemaphores;
3778 uint32_t bufferBindCount;
3779 const VkSparseBufferMemoryBindInfo* pBufferBinds;
3780 uint32_t imageOpaqueBindCount;
3781 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
3782 uint32_t imageBindCount;
3783 const VkSparseImageMemoryBindInfo* pImageBinds;
3784 uint32_t signalSemaphoreCount;
3785 const VkSemaphore* pSignalSemaphores;
3786} VkBindSparseInfo;
3787
3788typedef struct VkSparseImageFormatProperties {
3789 VkImageAspectFlags aspectMask;
3790 VkExtent3D imageGranularity;
3791 VkSparseImageFormatFlags flags;
3792} VkSparseImageFormatProperties;
3793
3794typedef struct VkSparseImageMemoryRequirements {
3795 VkSparseImageFormatProperties formatProperties;
3796 uint32_t imageMipTailFirstLod;
3797 VkDeviceSize imageMipTailSize;
3798 VkDeviceSize imageMipTailOffset;
3799 VkDeviceSize imageMipTailStride;
3800} VkSparseImageMemoryRequirements;
3801
3802typedef struct VkFenceCreateInfo {
3803 VkStructureType sType;
3804 const void* pNext;
3805 VkFenceCreateFlags flags;
3806} VkFenceCreateInfo;
3807
3808typedef struct VkSemaphoreCreateInfo {
3809 VkStructureType sType;
3810 const void* pNext;
3811 VkSemaphoreCreateFlags flags;
3812} VkSemaphoreCreateInfo;
3813
3814typedef struct VkQueryPoolCreateInfo {
3815 VkStructureType sType;
3816 const void* pNext;
3817 VkQueryPoolCreateFlags flags;
3818 VkQueryType queryType;
3819 uint32_t queryCount;
3820 VkQueryPipelineStatisticFlags pipelineStatistics;
3821} VkQueryPoolCreateInfo;
3822
3823typedef struct VkBufferCreateInfo {
3824 VkStructureType sType;
3825 const void* pNext;
3826 VkBufferCreateFlags flags;
3827 VkDeviceSize size;
3828 VkBufferUsageFlags usage;
3829 VkSharingMode sharingMode;
3830 uint32_t queueFamilyIndexCount;
3831 const uint32_t* pQueueFamilyIndices;
3832} VkBufferCreateInfo;
3833
3834typedef struct VkImageCreateInfo {
3835 VkStructureType sType;
3836 const void* pNext;
3837 VkImageCreateFlags flags;
3838 VkImageType imageType;
3839 VkFormat format;
3840 VkExtent3D extent;
3841 uint32_t mipLevels;
3842 uint32_t arrayLayers;
3843 VkSampleCountFlagBits samples;
3844 VkImageTiling tiling;
3845 VkImageUsageFlags usage;
3846 VkSharingMode sharingMode;
3847 uint32_t queueFamilyIndexCount;
3848 const uint32_t* pQueueFamilyIndices;
3849 VkImageLayout initialLayout;
3850} VkImageCreateInfo;
3851
3852typedef struct VkSubresourceLayout {
3853 VkDeviceSize offset;
3854 VkDeviceSize size;
3855 VkDeviceSize rowPitch;
3856 VkDeviceSize arrayPitch;
3857 VkDeviceSize depthPitch;
3858} VkSubresourceLayout;
3859
3860typedef struct VkComponentMapping {
3861 VkComponentSwizzle r;
3862 VkComponentSwizzle g;
3863 VkComponentSwizzle b;
3864 VkComponentSwizzle a;
3865} VkComponentMapping;
3866
3867typedef struct VkImageViewCreateInfo {
3868 VkStructureType sType;
3869 const void* pNext;
3870 VkImageViewCreateFlags flags;
3871 VkImage image;
3872 VkImageViewType viewType;
3873 VkFormat format;
3874 VkComponentMapping components;
3875 VkImageSubresourceRange subresourceRange;
3876} VkImageViewCreateInfo;
3877
3878typedef struct VkCommandPoolCreateInfo {
3879 VkStructureType sType;
3880 const void* pNext;
3881 VkCommandPoolCreateFlags flags;
3882 uint32_t queueFamilyIndex;
3883} VkCommandPoolCreateInfo;
3884
3885typedef struct VkCommandBufferAllocateInfo {
3886 VkStructureType sType;
3887 const void* pNext;
3888 VkCommandPool commandPool;
3889 VkCommandBufferLevel level;
3890 uint32_t commandBufferCount;
3891} VkCommandBufferAllocateInfo;
3892
3893typedef struct VkCommandBufferInheritanceInfo {
3894 VkStructureType sType;
3895 const void* pNext;
3896 VkRenderPass renderPass;
3897 uint32_t subpass;
3898 VkFramebuffer framebuffer;
3899 VkBool32 occlusionQueryEnable;
3900 VkQueryControlFlags queryFlags;
3901 VkQueryPipelineStatisticFlags pipelineStatistics;
3902} VkCommandBufferInheritanceInfo;
3903
3904typedef struct VkCommandBufferBeginInfo {
3905 VkStructureType sType;
3906 const void* pNext;
3907 VkCommandBufferUsageFlags flags;
3908 const VkCommandBufferInheritanceInfo* pInheritanceInfo;
3909} VkCommandBufferBeginInfo;
3910
3911typedef struct VkBufferCopy {
3912 VkDeviceSize srcOffset;
3913 VkDeviceSize dstOffset;
3914 VkDeviceSize size;
3915} VkBufferCopy;
3916
3917typedef struct VkImageSubresourceLayers {
3918 VkImageAspectFlags aspectMask;
3919 uint32_t mipLevel;
3920 uint32_t baseArrayLayer;
3921 uint32_t layerCount;
3922} VkImageSubresourceLayers;
3923
3924typedef struct VkBufferImageCopy {
3925 VkDeviceSize bufferOffset;
3926 uint32_t bufferRowLength;
3927 uint32_t bufferImageHeight;
3928 VkImageSubresourceLayers imageSubresource;
3929 VkOffset3D imageOffset;
3930 VkExtent3D imageExtent;
3931} VkBufferImageCopy;
3932
3933typedef struct VkImageCopy {
3934 VkImageSubresourceLayers srcSubresource;
3935 VkOffset3D srcOffset;
3936 VkImageSubresourceLayers dstSubresource;
3937 VkOffset3D dstOffset;
3938 VkExtent3D extent;
3939} VkImageCopy;
3940
3941typedef struct VkDispatchIndirectCommand {
3942 uint32_t x;
3943 uint32_t y;
3944 uint32_t z;
3945} VkDispatchIndirectCommand;
3946
3947typedef struct VkPipelineCacheHeaderVersionOne {
3948 uint32_t headerSize;
3949 VkPipelineCacheHeaderVersion headerVersion;
3950 uint32_t vendorID;
3951 uint32_t deviceID;
3952 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
3953} VkPipelineCacheHeaderVersionOne;
3954
3955typedef struct VkEventCreateInfo {
3956 VkStructureType sType;
3957 const void* pNext;
3958 VkEventCreateFlags flags;
3959} VkEventCreateInfo;
3960
3961typedef struct VkBufferViewCreateInfo {
3962 VkStructureType sType;
3963 const void* pNext;
3964 VkBufferViewCreateFlags flags;
3965 VkBuffer buffer;
3966 VkFormat format;
3967 VkDeviceSize offset;
3968 VkDeviceSize range;
3969} VkBufferViewCreateInfo;
3970
3971typedef struct VkShaderModuleCreateInfo {
3972 VkStructureType sType;
3973 const void* pNext;
3974 VkShaderModuleCreateFlags flags;
3975 size_t codeSize;
3976 const uint32_t* pCode;
3977} VkShaderModuleCreateInfo;
3978
3979typedef struct VkPipelineCacheCreateInfo {
3980 VkStructureType sType;
3981 const void* pNext;
3982 VkPipelineCacheCreateFlags flags;
3983 size_t initialDataSize;
3984 const void* pInitialData;
3985} VkPipelineCacheCreateInfo;
3986
3987typedef struct VkSpecializationMapEntry {
3988 uint32_t constantID;
3989 uint32_t offset;
3990 size_t size;
3991} VkSpecializationMapEntry;
3992
3993typedef struct VkSpecializationInfo {
3994 uint32_t mapEntryCount;
3995 const VkSpecializationMapEntry* pMapEntries;
3996 size_t dataSize;
3997 const void* pData;
3998} VkSpecializationInfo;
3999
4000typedef struct VkPipelineShaderStageCreateInfo {
4001 VkStructureType sType;
4002 const void* pNext;
4003 VkPipelineShaderStageCreateFlags flags;
4004 VkShaderStageFlagBits stage;
4005 VkShaderModule module;
4006 const char* pName;
4007 const VkSpecializationInfo* pSpecializationInfo;
4008} VkPipelineShaderStageCreateInfo;
4009
4010typedef struct VkComputePipelineCreateInfo {
4011 VkStructureType sType;
4012 const void* pNext;
4013 VkPipelineCreateFlags flags;
4014 VkPipelineShaderStageCreateInfo stage;
4015 VkPipelineLayout layout;
4016 VkPipeline basePipelineHandle;
4017 int32_t basePipelineIndex;
4018} VkComputePipelineCreateInfo;
4019
4020typedef struct VkPushConstantRange {
4021 VkShaderStageFlags stageFlags;
4022 uint32_t offset;
4023 uint32_t size;
4024} VkPushConstantRange;
4025
4026typedef struct VkPipelineLayoutCreateInfo {
4027 VkStructureType sType;
4028 const void* pNext;
4029 VkPipelineLayoutCreateFlags flags;
4030 uint32_t setLayoutCount;
4031 const VkDescriptorSetLayout* pSetLayouts;
4032 uint32_t pushConstantRangeCount;
4033 const VkPushConstantRange* pPushConstantRanges;
4034} VkPipelineLayoutCreateInfo;
4035
4036typedef struct VkSamplerCreateInfo {
4037 VkStructureType sType;
4038 const void* pNext;
4039 VkSamplerCreateFlags flags;
4040 VkFilter magFilter;
4041 VkFilter minFilter;
4042 VkSamplerMipmapMode mipmapMode;
4043 VkSamplerAddressMode addressModeU;
4044 VkSamplerAddressMode addressModeV;
4045 VkSamplerAddressMode addressModeW;
4046 float mipLodBias;
4047 VkBool32 anisotropyEnable;
4048 float maxAnisotropy;
4049 VkBool32 compareEnable;
4050 VkCompareOp compareOp;
4051 float minLod;
4052 float maxLod;
4053 VkBorderColor borderColor;
4054 VkBool32 unnormalizedCoordinates;
4055} VkSamplerCreateInfo;
4056
4057typedef struct VkCopyDescriptorSet {
4058 VkStructureType sType;
4059 const void* pNext;
4060 VkDescriptorSet srcSet;
4061 uint32_t srcBinding;
4062 uint32_t srcArrayElement;
4063 VkDescriptorSet dstSet;
4064 uint32_t dstBinding;
4065 uint32_t dstArrayElement;
4066 uint32_t descriptorCount;
4067} VkCopyDescriptorSet;
4068
4069typedef struct VkDescriptorBufferInfo {
4070 VkBuffer buffer;
4071 VkDeviceSize offset;
4072 VkDeviceSize range;
4073} VkDescriptorBufferInfo;
4074
4075typedef struct VkDescriptorImageInfo {
4076 VkSampler sampler;
4077 VkImageView imageView;
4078 VkImageLayout imageLayout;
4079} VkDescriptorImageInfo;
4080
4081typedef struct VkDescriptorPoolSize {
4082 VkDescriptorType type;
4083 uint32_t descriptorCount;
4084} VkDescriptorPoolSize;
4085
4086typedef struct VkDescriptorPoolCreateInfo {
4087 VkStructureType sType;
4088 const void* pNext;
4089 VkDescriptorPoolCreateFlags flags;
4090 uint32_t maxSets;
4091 uint32_t poolSizeCount;
4092 const VkDescriptorPoolSize* pPoolSizes;
4093} VkDescriptorPoolCreateInfo;
4094
4095typedef struct VkDescriptorSetAllocateInfo {
4096 VkStructureType sType;
4097 const void* pNext;
4098 VkDescriptorPool descriptorPool;
4099 uint32_t descriptorSetCount;
4100 const VkDescriptorSetLayout* pSetLayouts;
4101} VkDescriptorSetAllocateInfo;
4102
4103typedef struct VkDescriptorSetLayoutBinding {
4104 uint32_t binding;
4105 VkDescriptorType descriptorType;
4106 uint32_t descriptorCount;
4107 VkShaderStageFlags stageFlags;
4108 const VkSampler* pImmutableSamplers;
4109} VkDescriptorSetLayoutBinding;
4110
4111typedef struct VkDescriptorSetLayoutCreateInfo {
4112 VkStructureType sType;
4113 const void* pNext;
4114 VkDescriptorSetLayoutCreateFlags flags;
4115 uint32_t bindingCount;
4116 const VkDescriptorSetLayoutBinding* pBindings;
4117} VkDescriptorSetLayoutCreateInfo;
4118
4119typedef struct VkWriteDescriptorSet {
4120 VkStructureType sType;
4121 const void* pNext;
4122 VkDescriptorSet dstSet;
4123 uint32_t dstBinding;
4124 uint32_t dstArrayElement;
4125 uint32_t descriptorCount;
4126 VkDescriptorType descriptorType;
4127 const VkDescriptorImageInfo* pImageInfo;
4128 const VkDescriptorBufferInfo* pBufferInfo;
4129 const VkBufferView* pTexelBufferView;
4130} VkWriteDescriptorSet;
4131
4132typedef union VkClearColorValue {
4133 float float32[4];
4134 int32_t int32[4];
4135 uint32_t uint32[4];
4136} VkClearColorValue;
4137
4138typedef struct VkDrawIndexedIndirectCommand {
4139 uint32_t indexCount;
4140 uint32_t instanceCount;
4141 uint32_t firstIndex;
4142 int32_t vertexOffset;
4143 uint32_t firstInstance;
4144} VkDrawIndexedIndirectCommand;
4145
4146typedef struct VkDrawIndirectCommand {
4147 uint32_t vertexCount;
4148 uint32_t instanceCount;
4149 uint32_t firstVertex;
4150 uint32_t firstInstance;
4151} VkDrawIndirectCommand;
4152
4153typedef struct VkVertexInputBindingDescription {
4154 uint32_t binding;
4155 uint32_t stride;
4156 VkVertexInputRate inputRate;
4157} VkVertexInputBindingDescription;
4158
4159typedef struct VkVertexInputAttributeDescription {
4160 uint32_t location;
4161 uint32_t binding;
4162 VkFormat format;
4163 uint32_t offset;
4164} VkVertexInputAttributeDescription;
4165
4166typedef struct VkPipelineVertexInputStateCreateInfo {
4167 VkStructureType sType;
4168 const void* pNext;
4169 VkPipelineVertexInputStateCreateFlags flags;
4170 uint32_t vertexBindingDescriptionCount;
4171 const VkVertexInputBindingDescription* pVertexBindingDescriptions;
4172 uint32_t vertexAttributeDescriptionCount;
4173 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
4174} VkPipelineVertexInputStateCreateInfo;
4175
4176typedef struct VkPipelineInputAssemblyStateCreateInfo {
4177 VkStructureType sType;
4178 const void* pNext;
4179 VkPipelineInputAssemblyStateCreateFlags flags;
4180 VkPrimitiveTopology topology;
4181 VkBool32 primitiveRestartEnable;
4182} VkPipelineInputAssemblyStateCreateInfo;
4183
4184typedef struct VkPipelineTessellationStateCreateInfo {
4185 VkStructureType sType;
4186 const void* pNext;
4187 VkPipelineTessellationStateCreateFlags flags;
4188 uint32_t patchControlPoints;
4189} VkPipelineTessellationStateCreateInfo;
4190
4191typedef struct VkViewport {
4192 float x;
4193 float y;
4194 float width;
4195 float height;
4196 float minDepth;
4197 float maxDepth;
4198} VkViewport;
4199
4200typedef struct VkPipelineViewportStateCreateInfo {
4201 VkStructureType sType;
4202 const void* pNext;
4203 VkPipelineViewportStateCreateFlags flags;
4204 uint32_t viewportCount;
4205 const VkViewport* pViewports;
4206 uint32_t scissorCount;
4207 const VkRect2D* pScissors;
4208} VkPipelineViewportStateCreateInfo;
4209
4210typedef struct VkPipelineRasterizationStateCreateInfo {
4211 VkStructureType sType;
4212 const void* pNext;
4213 VkPipelineRasterizationStateCreateFlags flags;
4214 VkBool32 depthClampEnable;
4215 VkBool32 rasterizerDiscardEnable;
4216 VkPolygonMode polygonMode;
4217 VkCullModeFlags cullMode;
4218 VkFrontFace frontFace;
4219 VkBool32 depthBiasEnable;
4220 float depthBiasConstantFactor;
4221 float depthBiasClamp;
4222 float depthBiasSlopeFactor;
4223 float lineWidth;
4224} VkPipelineRasterizationStateCreateInfo;
4225
4226typedef struct VkPipelineMultisampleStateCreateInfo {
4227 VkStructureType sType;
4228 const void* pNext;
4229 VkPipelineMultisampleStateCreateFlags flags;
4230 VkSampleCountFlagBits rasterizationSamples;
4231 VkBool32 sampleShadingEnable;
4232 float minSampleShading;
4233 const VkSampleMask* pSampleMask;
4234 VkBool32 alphaToCoverageEnable;
4235 VkBool32 alphaToOneEnable;
4236} VkPipelineMultisampleStateCreateInfo;
4237
4238typedef struct VkStencilOpState {
4239 VkStencilOp failOp;
4240 VkStencilOp passOp;
4241 VkStencilOp depthFailOp;
4242 VkCompareOp compareOp;
4243 uint32_t compareMask;
4244 uint32_t writeMask;
4245 uint32_t reference;
4246} VkStencilOpState;
4247
4248typedef struct VkPipelineDepthStencilStateCreateInfo {
4249 VkStructureType sType;
4250 const void* pNext;
4251 VkPipelineDepthStencilStateCreateFlags flags;
4252 VkBool32 depthTestEnable;
4253 VkBool32 depthWriteEnable;
4254 VkCompareOp depthCompareOp;
4255 VkBool32 depthBoundsTestEnable;
4256 VkBool32 stencilTestEnable;
4257 VkStencilOpState front;
4258 VkStencilOpState back;
4259 float minDepthBounds;
4260 float maxDepthBounds;
4261} VkPipelineDepthStencilStateCreateInfo;
4262
4263typedef struct VkPipelineColorBlendAttachmentState {
4264 VkBool32 blendEnable;
4265 VkBlendFactor srcColorBlendFactor;
4266 VkBlendFactor dstColorBlendFactor;
4267 VkBlendOp colorBlendOp;
4268 VkBlendFactor srcAlphaBlendFactor;
4269 VkBlendFactor dstAlphaBlendFactor;
4270 VkBlendOp alphaBlendOp;
4271 VkColorComponentFlags colorWriteMask;
4272} VkPipelineColorBlendAttachmentState;
4273
4274typedef struct VkPipelineColorBlendStateCreateInfo {
4275 VkStructureType sType;
4276 const void* pNext;
4277 VkPipelineColorBlendStateCreateFlags flags;
4278 VkBool32 logicOpEnable;
4279 VkLogicOp logicOp;
4280 uint32_t attachmentCount;
4281 const VkPipelineColorBlendAttachmentState* pAttachments;
4282 float blendConstants[4];
4283} VkPipelineColorBlendStateCreateInfo;
4284
4285typedef struct VkPipelineDynamicStateCreateInfo {
4286 VkStructureType sType;
4287 const void* pNext;
4288 VkPipelineDynamicStateCreateFlags flags;
4289 uint32_t dynamicStateCount;
4290 const VkDynamicState* pDynamicStates;
4291} VkPipelineDynamicStateCreateInfo;
4292
4293typedef struct VkGraphicsPipelineCreateInfo {
4294 VkStructureType sType;
4295 const void* pNext;
4296 VkPipelineCreateFlags flags;
4297 uint32_t stageCount;
4298 const VkPipelineShaderStageCreateInfo* pStages;
4299 const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
4300 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
4301 const VkPipelineTessellationStateCreateInfo* pTessellationState;
4302 const VkPipelineViewportStateCreateInfo* pViewportState;
4303 const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
4304 const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
4305 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
4306 const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
4307 const VkPipelineDynamicStateCreateInfo* pDynamicState;
4308 VkPipelineLayout layout;
4309 VkRenderPass renderPass;
4310 uint32_t subpass;
4311 VkPipeline basePipelineHandle;
4312 int32_t basePipelineIndex;
4313} VkGraphicsPipelineCreateInfo;
4314
4315typedef struct VkAttachmentDescription {
4316 VkAttachmentDescriptionFlags flags;
4317 VkFormat format;
4318 VkSampleCountFlagBits samples;
4319 VkAttachmentLoadOp loadOp;
4320 VkAttachmentStoreOp storeOp;
4321 VkAttachmentLoadOp stencilLoadOp;
4322 VkAttachmentStoreOp stencilStoreOp;
4323 VkImageLayout initialLayout;
4324 VkImageLayout finalLayout;
4325} VkAttachmentDescription;
4326
4327typedef struct VkAttachmentReference {
4328 uint32_t attachment;
4329 VkImageLayout layout;
4330} VkAttachmentReference;
4331
4332typedef struct VkFramebufferCreateInfo {
4333 VkStructureType sType;
4334 const void* pNext;
4335 VkFramebufferCreateFlags flags;
4336 VkRenderPass renderPass;
4337 uint32_t attachmentCount;
4338 const VkImageView* pAttachments;
4339 uint32_t width;
4340 uint32_t height;
4341 uint32_t layers;
4342} VkFramebufferCreateInfo;
4343
4344typedef struct VkSubpassDescription {
4345 VkSubpassDescriptionFlags flags;
4346 VkPipelineBindPoint pipelineBindPoint;
4347 uint32_t inputAttachmentCount;
4348 const VkAttachmentReference* pInputAttachments;
4349 uint32_t colorAttachmentCount;
4350 const VkAttachmentReference* pColorAttachments;
4351 const VkAttachmentReference* pResolveAttachments;
4352 const VkAttachmentReference* pDepthStencilAttachment;
4353 uint32_t preserveAttachmentCount;
4354 const uint32_t* pPreserveAttachments;
4355} VkSubpassDescription;
4356
4357typedef struct VkSubpassDependency {
4358 uint32_t srcSubpass;
4359 uint32_t dstSubpass;
4360 VkPipelineStageFlags srcStageMask;
4361 VkPipelineStageFlags dstStageMask;
4362 VkAccessFlags srcAccessMask;
4363 VkAccessFlags dstAccessMask;
4364 VkDependencyFlags dependencyFlags;
4365} VkSubpassDependency;
4366
4367typedef struct VkRenderPassCreateInfo {
4368 VkStructureType sType;
4369 const void* pNext;
4370 VkRenderPassCreateFlags flags;
4371 uint32_t attachmentCount;
4372 const VkAttachmentDescription* pAttachments;
4373 uint32_t subpassCount;
4374 const VkSubpassDescription* pSubpasses;
4375 uint32_t dependencyCount;
4376 const VkSubpassDependency* pDependencies;
4377} VkRenderPassCreateInfo;
4378
4379typedef struct VkClearDepthStencilValue {
4380 float depth;
4381 uint32_t stencil;
4382} VkClearDepthStencilValue;
4383
4384typedef union VkClearValue {
4385 VkClearColorValue color;
4386 VkClearDepthStencilValue depthStencil;
4387} VkClearValue;
4388
4389typedef struct VkClearAttachment {
4390 VkImageAspectFlags aspectMask;
4391 uint32_t colorAttachment;
4392 VkClearValue clearValue;
4393} VkClearAttachment;
4394
4395typedef struct VkClearRect {
4396 VkRect2D rect;
4397 uint32_t baseArrayLayer;
4398 uint32_t layerCount;
4399} VkClearRect;
4400
4401typedef struct VkImageBlit {
4402 VkImageSubresourceLayers srcSubresource;
4403 VkOffset3D srcOffsets[2];
4404 VkImageSubresourceLayers dstSubresource;
4405 VkOffset3D dstOffsets[2];
4406} VkImageBlit;
4407
4408typedef struct VkImageResolve {
4409 VkImageSubresourceLayers srcSubresource;
4410 VkOffset3D srcOffset;
4411 VkImageSubresourceLayers dstSubresource;
4412 VkOffset3D dstOffset;
4413 VkExtent3D extent;
4414} VkImageResolve;
4415
4416typedef struct VkRenderPassBeginInfo {
4417 VkStructureType sType;
4418 const void* pNext;
4419 VkRenderPass renderPass;
4420 VkFramebuffer framebuffer;
4421 VkRect2D renderArea;
4422 uint32_t clearValueCount;
4423 const VkClearValue* pClearValues;
4424} VkRenderPassBeginInfo;
4425
4426typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
4427typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
4428typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
4429typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
4430typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
4431typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
4432typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
4433typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
4434typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
4435typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
4436typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
4437typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
4438typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
4439typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4440typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4441typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4442typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4443typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
4444typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
4445typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
4446typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
4447typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
4448typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
4449typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
4450typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
4451typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4452typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4453typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
4454typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4455typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4456typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
4457typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
4458typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
4459typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
4460typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
4461typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
4462typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
4463typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
4464typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
4465typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
4466typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
4467typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
4468typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
4469typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
4470typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
4471typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
4472typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
4473typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
4474typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
4475typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
4476typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
4477typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
4478typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
4479typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
4480typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
4481typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
4482typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4483typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
4484typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
4485typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
4486typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
4487typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
4488typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4489typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4490typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
4491typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
4492typedef 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);
4493typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
4494typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
4495typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
4496typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
4497typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
4498typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4499typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
4500typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
4501typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
4502typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
4503typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
4504typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
4505typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
4506typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
4507typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
4508typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
4509typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
4510typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
4511typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
4512typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4513typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
4514typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
4515typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
4516typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
4517typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
4518typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
4519typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
4520typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
4521typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
4522typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
4523typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
4524typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
4525typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
4526typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
4527typedef 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);
4528typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4529typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
4530typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
4531typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4532typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4533typedef 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);
4534typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
4535typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4536typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
4537typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
4538typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
4539typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
4540typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
4541typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
4542typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
4543typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
4544typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
4545typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
4546typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
4547typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
4548typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
4549typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
4550typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
4551typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
4552typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
4553typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
4554typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4555typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4556typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
4557typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4558typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
4559typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
4560typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
4561typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
4562typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
4563
4564#ifndef VK_NO_PROTOTYPES
4565VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
4566 const VkInstanceCreateInfo* pCreateInfo,
4567 const VkAllocationCallbacks* pAllocator,
4568 VkInstance* pInstance);
4569
4570VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
4571 VkInstance instance,
4572 const VkAllocationCallbacks* pAllocator);
4573
4574VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
4575 VkInstance instance,
4576 uint32_t* pPhysicalDeviceCount,
4577 VkPhysicalDevice* pPhysicalDevices);
4578
4579VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
4580 VkPhysicalDevice physicalDevice,
4581 VkPhysicalDeviceFeatures* pFeatures);
4582
4583VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
4584 VkPhysicalDevice physicalDevice,
4585 VkFormat format,
4586 VkFormatProperties* pFormatProperties);
4587
4588VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
4589 VkPhysicalDevice physicalDevice,
4590 VkFormat format,
4591 VkImageType type,
4592 VkImageTiling tiling,
4593 VkImageUsageFlags usage,
4594 VkImageCreateFlags flags,
4595 VkImageFormatProperties* pImageFormatProperties);
4596
4597VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
4598 VkPhysicalDevice physicalDevice,
4599 VkPhysicalDeviceProperties* pProperties);
4600
4601VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
4602 VkPhysicalDevice physicalDevice,
4603 uint32_t* pQueueFamilyPropertyCount,
4604 VkQueueFamilyProperties* pQueueFamilyProperties);
4605
4606VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
4607 VkPhysicalDevice physicalDevice,
4608 VkPhysicalDeviceMemoryProperties* pMemoryProperties);
4609
4610VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
4611 VkInstance instance,
4612 const char* pName);
4613
4614VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
4615 VkDevice device,
4616 const char* pName);
4617
4618VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
4619 VkPhysicalDevice physicalDevice,
4620 const VkDeviceCreateInfo* pCreateInfo,
4621 const VkAllocationCallbacks* pAllocator,
4622 VkDevice* pDevice);
4623
4624VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
4625 VkDevice device,
4626 const VkAllocationCallbacks* pAllocator);
4627
4628VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
4629 const char* pLayerName,
4630 uint32_t* pPropertyCount,
4631 VkExtensionProperties* pProperties);
4632
4633VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
4634 VkPhysicalDevice physicalDevice,
4635 const char* pLayerName,
4636 uint32_t* pPropertyCount,
4637 VkExtensionProperties* pProperties);
4638
4639VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
4640 uint32_t* pPropertyCount,
4641 VkLayerProperties* pProperties);
4642
4643VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
4644 VkPhysicalDevice physicalDevice,
4645 uint32_t* pPropertyCount,
4646 VkLayerProperties* pProperties);
4647
4648VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
4649 VkDevice device,
4650 uint32_t queueFamilyIndex,
4651 uint32_t queueIndex,
4652 VkQueue* pQueue);
4653
4654VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
4655 VkQueue queue,
4656 uint32_t submitCount,
4657 const VkSubmitInfo* pSubmits,
4658 VkFence fence);
4659
4660VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
4661 VkQueue queue);
4662
4663VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
4664 VkDevice device);
4665
4666VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
4667 VkDevice device,
4668 const VkMemoryAllocateInfo* pAllocateInfo,
4669 const VkAllocationCallbacks* pAllocator,
4670 VkDeviceMemory* pMemory);
4671
4672VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
4673 VkDevice device,
4674 VkDeviceMemory memory,
4675 const VkAllocationCallbacks* pAllocator);
4676
4677VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
4678 VkDevice device,
4679 VkDeviceMemory memory,
4680 VkDeviceSize offset,
4681 VkDeviceSize size,
4682 VkMemoryMapFlags flags,
4683 void** ppData);
4684
4685VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
4686 VkDevice device,
4687 VkDeviceMemory memory);
4688
4689VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
4690 VkDevice device,
4691 uint32_t memoryRangeCount,
4692 const VkMappedMemoryRange* pMemoryRanges);
4693
4694VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
4695 VkDevice device,
4696 uint32_t memoryRangeCount,
4697 const VkMappedMemoryRange* pMemoryRanges);
4698
4699VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
4700 VkDevice device,
4701 VkDeviceMemory memory,
4702 VkDeviceSize* pCommittedMemoryInBytes);
4703
4704VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
4705 VkDevice device,
4706 VkBuffer buffer,
4707 VkDeviceMemory memory,
4708 VkDeviceSize memoryOffset);
4709
4710VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
4711 VkDevice device,
4712 VkImage image,
4713 VkDeviceMemory memory,
4714 VkDeviceSize memoryOffset);
4715
4716VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
4717 VkDevice device,
4718 VkBuffer buffer,
4719 VkMemoryRequirements* pMemoryRequirements);
4720
4721VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
4722 VkDevice device,
4723 VkImage image,
4724 VkMemoryRequirements* pMemoryRequirements);
4725
4726VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
4727 VkDevice device,
4728 VkImage image,
4729 uint32_t* pSparseMemoryRequirementCount,
4730 VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
4731
4732VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
4733 VkPhysicalDevice physicalDevice,
4734 VkFormat format,
4735 VkImageType type,
4736 VkSampleCountFlagBits samples,
4737 VkImageUsageFlags usage,
4738 VkImageTiling tiling,
4739 uint32_t* pPropertyCount,
4740 VkSparseImageFormatProperties* pProperties);
4741
4742VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
4743 VkQueue queue,
4744 uint32_t bindInfoCount,
4745 const VkBindSparseInfo* pBindInfo,
4746 VkFence fence);
4747
4748VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
4749 VkDevice device,
4750 const VkFenceCreateInfo* pCreateInfo,
4751 const VkAllocationCallbacks* pAllocator,
4752 VkFence* pFence);
4753
4754VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
4755 VkDevice device,
4756 VkFence fence,
4757 const VkAllocationCallbacks* pAllocator);
4758
4759VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
4760 VkDevice device,
4761 uint32_t fenceCount,
4762 const VkFence* pFences);
4763
4764VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
4765 VkDevice device,
4766 VkFence fence);
4767
4768VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
4769 VkDevice device,
4770 uint32_t fenceCount,
4771 const VkFence* pFences,
4772 VkBool32 waitAll,
4773 uint64_t timeout);
4774
4775VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
4776 VkDevice device,
4777 const VkSemaphoreCreateInfo* pCreateInfo,
4778 const VkAllocationCallbacks* pAllocator,
4779 VkSemaphore* pSemaphore);
4780
4781VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
4782 VkDevice device,
4783 VkSemaphore semaphore,
4784 const VkAllocationCallbacks* pAllocator);
4785
4786VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
4787 VkDevice device,
4788 const VkQueryPoolCreateInfo* pCreateInfo,
4789 const VkAllocationCallbacks* pAllocator,
4790 VkQueryPool* pQueryPool);
4791
4792VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
4793 VkDevice device,
4794 VkQueryPool queryPool,
4795 const VkAllocationCallbacks* pAllocator);
4796
4797VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
4798 VkDevice device,
4799 VkQueryPool queryPool,
4800 uint32_t firstQuery,
4801 uint32_t queryCount,
4802 size_t dataSize,
4803 void* pData,
4804 VkDeviceSize stride,
4805 VkQueryResultFlags flags);
4806
4807VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
4808 VkDevice device,
4809 const VkBufferCreateInfo* pCreateInfo,
4810 const VkAllocationCallbacks* pAllocator,
4811 VkBuffer* pBuffer);
4812
4813VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
4814 VkDevice device,
4815 VkBuffer buffer,
4816 const VkAllocationCallbacks* pAllocator);
4817
4818VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
4819 VkDevice device,
4820 const VkImageCreateInfo* pCreateInfo,
4821 const VkAllocationCallbacks* pAllocator,
4822 VkImage* pImage);
4823
4824VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
4825 VkDevice device,
4826 VkImage image,
4827 const VkAllocationCallbacks* pAllocator);
4828
4829VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
4830 VkDevice device,
4831 VkImage image,
4832 const VkImageSubresource* pSubresource,
4833 VkSubresourceLayout* pLayout);
4834
4835VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
4836 VkDevice device,
4837 const VkImageViewCreateInfo* pCreateInfo,
4838 const VkAllocationCallbacks* pAllocator,
4839 VkImageView* pView);
4840
4841VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
4842 VkDevice device,
4843 VkImageView imageView,
4844 const VkAllocationCallbacks* pAllocator);
4845
4846VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
4847 VkDevice device,
4848 const VkCommandPoolCreateInfo* pCreateInfo,
4849 const VkAllocationCallbacks* pAllocator,
4850 VkCommandPool* pCommandPool);
4851
4852VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
4853 VkDevice device,
4854 VkCommandPool commandPool,
4855 const VkAllocationCallbacks* pAllocator);
4856
4857VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
4858 VkDevice device,
4859 VkCommandPool commandPool,
4860 VkCommandPoolResetFlags flags);
4861
4862VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
4863 VkDevice device,
4864 const VkCommandBufferAllocateInfo* pAllocateInfo,
4865 VkCommandBuffer* pCommandBuffers);
4866
4867VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
4868 VkDevice device,
4869 VkCommandPool commandPool,
4870 uint32_t commandBufferCount,
4871 const VkCommandBuffer* pCommandBuffers);
4872
4873VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
4874 VkCommandBuffer commandBuffer,
4875 const VkCommandBufferBeginInfo* pBeginInfo);
4876
4877VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
4878 VkCommandBuffer commandBuffer);
4879
4880VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
4881 VkCommandBuffer commandBuffer,
4882 VkCommandBufferResetFlags flags);
4883
4884VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
4885 VkCommandBuffer commandBuffer,
4886 VkBuffer srcBuffer,
4887 VkBuffer dstBuffer,
4888 uint32_t regionCount,
4889 const VkBufferCopy* pRegions);
4890
4891VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
4892 VkCommandBuffer commandBuffer,
4893 VkImage srcImage,
4894 VkImageLayout srcImageLayout,
4895 VkImage dstImage,
4896 VkImageLayout dstImageLayout,
4897 uint32_t regionCount,
4898 const VkImageCopy* pRegions);
4899
4900VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
4901 VkCommandBuffer commandBuffer,
4902 VkBuffer srcBuffer,
4903 VkImage dstImage,
4904 VkImageLayout dstImageLayout,
4905 uint32_t regionCount,
4906 const VkBufferImageCopy* pRegions);
4907
4908VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
4909 VkCommandBuffer commandBuffer,
4910 VkImage srcImage,
4911 VkImageLayout srcImageLayout,
4912 VkBuffer dstBuffer,
4913 uint32_t regionCount,
4914 const VkBufferImageCopy* pRegions);
4915
4916VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
4917 VkCommandBuffer commandBuffer,
4918 VkBuffer dstBuffer,
4919 VkDeviceSize dstOffset,
4920 VkDeviceSize dataSize,
4921 const void* pData);
4922
4923VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
4924 VkCommandBuffer commandBuffer,
4925 VkBuffer dstBuffer,
4926 VkDeviceSize dstOffset,
4927 VkDeviceSize size,
4928 uint32_t data);
4929
4930VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
4931 VkCommandBuffer commandBuffer,
4932 VkPipelineStageFlags srcStageMask,
4933 VkPipelineStageFlags dstStageMask,
4934 VkDependencyFlags dependencyFlags,
4935 uint32_t memoryBarrierCount,
4936 const VkMemoryBarrier* pMemoryBarriers,
4937 uint32_t bufferMemoryBarrierCount,
4938 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
4939 uint32_t imageMemoryBarrierCount,
4940 const VkImageMemoryBarrier* pImageMemoryBarriers);
4941
4942VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
4943 VkCommandBuffer commandBuffer,
4944 VkQueryPool queryPool,
4945 uint32_t query,
4946 VkQueryControlFlags flags);
4947
4948VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
4949 VkCommandBuffer commandBuffer,
4950 VkQueryPool queryPool,
4951 uint32_t query);
4952
4953VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
4954 VkCommandBuffer commandBuffer,
4955 VkQueryPool queryPool,
4956 uint32_t firstQuery,
4957 uint32_t queryCount);
4958
4959VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
4960 VkCommandBuffer commandBuffer,
4961 VkPipelineStageFlagBits pipelineStage,
4962 VkQueryPool queryPool,
4963 uint32_t query);
4964
4965VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
4966 VkCommandBuffer commandBuffer,
4967 VkQueryPool queryPool,
4968 uint32_t firstQuery,
4969 uint32_t queryCount,
4970 VkBuffer dstBuffer,
4971 VkDeviceSize dstOffset,
4972 VkDeviceSize stride,
4973 VkQueryResultFlags flags);
4974
4975VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
4976 VkCommandBuffer commandBuffer,
4977 uint32_t commandBufferCount,
4978 const VkCommandBuffer* pCommandBuffers);
4979
4980VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
4981 VkDevice device,
4982 const VkEventCreateInfo* pCreateInfo,
4983 const VkAllocationCallbacks* pAllocator,
4984 VkEvent* pEvent);
4985
4986VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
4987 VkDevice device,
4988 VkEvent event,
4989 const VkAllocationCallbacks* pAllocator);
4990
4991VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
4992 VkDevice device,
4993 VkEvent event);
4994
4995VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
4996 VkDevice device,
4997 VkEvent event);
4998
4999VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
5000 VkDevice device,
5001 VkEvent event);
5002
5003VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
5004 VkDevice device,
5005 const VkBufferViewCreateInfo* pCreateInfo,
5006 const VkAllocationCallbacks* pAllocator,
5007 VkBufferView* pView);
5008
5009VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
5010 VkDevice device,
5011 VkBufferView bufferView,
5012 const VkAllocationCallbacks* pAllocator);
5013
5014VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
5015 VkDevice device,
5016 const VkShaderModuleCreateInfo* pCreateInfo,
5017 const VkAllocationCallbacks* pAllocator,
5018 VkShaderModule* pShaderModule);
5019
5020VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
5021 VkDevice device,
5022 VkShaderModule shaderModule,
5023 const VkAllocationCallbacks* pAllocator);
5024
5025VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
5026 VkDevice device,
5027 const VkPipelineCacheCreateInfo* pCreateInfo,
5028 const VkAllocationCallbacks* pAllocator,
5029 VkPipelineCache* pPipelineCache);
5030
5031VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
5032 VkDevice device,
5033 VkPipelineCache pipelineCache,
5034 const VkAllocationCallbacks* pAllocator);
5035
5036VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
5037 VkDevice device,
5038 VkPipelineCache pipelineCache,
5039 size_t* pDataSize,
5040 void* pData);
5041
5042VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
5043 VkDevice device,
5044 VkPipelineCache dstCache,
5045 uint32_t srcCacheCount,
5046 const VkPipelineCache* pSrcCaches);
5047
5048VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
5049 VkDevice device,
5050 VkPipelineCache pipelineCache,
5051 uint32_t createInfoCount,
5052 const VkComputePipelineCreateInfo* pCreateInfos,
5053 const VkAllocationCallbacks* pAllocator,
5054 VkPipeline* pPipelines);
5055
5056VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
5057 VkDevice device,
5058 VkPipeline pipeline,
5059 const VkAllocationCallbacks* pAllocator);
5060
5061VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
5062 VkDevice device,
5063 const VkPipelineLayoutCreateInfo* pCreateInfo,
5064 const VkAllocationCallbacks* pAllocator,
5065 VkPipelineLayout* pPipelineLayout);
5066
5067VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
5068 VkDevice device,
5069 VkPipelineLayout pipelineLayout,
5070 const VkAllocationCallbacks* pAllocator);
5071
5072VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
5073 VkDevice device,
5074 const VkSamplerCreateInfo* pCreateInfo,
5075 const VkAllocationCallbacks* pAllocator,
5076 VkSampler* pSampler);
5077
5078VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
5079 VkDevice device,
5080 VkSampler sampler,
5081 const VkAllocationCallbacks* pAllocator);
5082
5083VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
5084 VkDevice device,
5085 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
5086 const VkAllocationCallbacks* pAllocator,
5087 VkDescriptorSetLayout* pSetLayout);
5088
5089VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
5090 VkDevice device,
5091 VkDescriptorSetLayout descriptorSetLayout,
5092 const VkAllocationCallbacks* pAllocator);
5093
5094VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
5095 VkDevice device,
5096 const VkDescriptorPoolCreateInfo* pCreateInfo,
5097 const VkAllocationCallbacks* pAllocator,
5098 VkDescriptorPool* pDescriptorPool);
5099
5100VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
5101 VkDevice device,
5102 VkDescriptorPool descriptorPool,
5103 const VkAllocationCallbacks* pAllocator);
5104
5105VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
5106 VkDevice device,
5107 VkDescriptorPool descriptorPool,
5108 VkDescriptorPoolResetFlags flags);
5109
5110VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
5111 VkDevice device,
5112 const VkDescriptorSetAllocateInfo* pAllocateInfo,
5113 VkDescriptorSet* pDescriptorSets);
5114
5115VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
5116 VkDevice device,
5117 VkDescriptorPool descriptorPool,
5118 uint32_t descriptorSetCount,
5119 const VkDescriptorSet* pDescriptorSets);
5120
5121VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
5122 VkDevice device,
5123 uint32_t descriptorWriteCount,
5124 const VkWriteDescriptorSet* pDescriptorWrites,
5125 uint32_t descriptorCopyCount,
5126 const VkCopyDescriptorSet* pDescriptorCopies);
5127
5128VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
5129 VkCommandBuffer commandBuffer,
5130 VkPipelineBindPoint pipelineBindPoint,
5131 VkPipeline pipeline);
5132
5133VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
5134 VkCommandBuffer commandBuffer,
5135 VkPipelineBindPoint pipelineBindPoint,
5136 VkPipelineLayout layout,
5137 uint32_t firstSet,
5138 uint32_t descriptorSetCount,
5139 const VkDescriptorSet* pDescriptorSets,
5140 uint32_t dynamicOffsetCount,
5141 const uint32_t* pDynamicOffsets);
5142
5143VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
5144 VkCommandBuffer commandBuffer,
5145 VkImage image,
5146 VkImageLayout imageLayout,
5147 const VkClearColorValue* pColor,
5148 uint32_t rangeCount,
5149 const VkImageSubresourceRange* pRanges);
5150
5151VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
5152 VkCommandBuffer commandBuffer,
5153 uint32_t groupCountX,
5154 uint32_t groupCountY,
5155 uint32_t groupCountZ);
5156
5157VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
5158 VkCommandBuffer commandBuffer,
5159 VkBuffer buffer,
5160 VkDeviceSize offset);
5161
5162VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
5163 VkCommandBuffer commandBuffer,
5164 VkEvent event,
5165 VkPipelineStageFlags stageMask);
5166
5167VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
5168 VkCommandBuffer commandBuffer,
5169 VkEvent event,
5170 VkPipelineStageFlags stageMask);
5171
5172VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
5173 VkCommandBuffer commandBuffer,
5174 uint32_t eventCount,
5175 const VkEvent* pEvents,
5176 VkPipelineStageFlags srcStageMask,
5177 VkPipelineStageFlags dstStageMask,
5178 uint32_t memoryBarrierCount,
5179 const VkMemoryBarrier* pMemoryBarriers,
5180 uint32_t bufferMemoryBarrierCount,
5181 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
5182 uint32_t imageMemoryBarrierCount,
5183 const VkImageMemoryBarrier* pImageMemoryBarriers);
5184
5185VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
5186 VkCommandBuffer commandBuffer,
5187 VkPipelineLayout layout,
5188 VkShaderStageFlags stageFlags,
5189 uint32_t offset,
5190 uint32_t size,
5191 const void* pValues);
5192
5193VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
5194 VkDevice device,
5195 VkPipelineCache pipelineCache,
5196 uint32_t createInfoCount,
5197 const VkGraphicsPipelineCreateInfo* pCreateInfos,
5198 const VkAllocationCallbacks* pAllocator,
5199 VkPipeline* pPipelines);
5200
5201VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
5202 VkDevice device,
5203 const VkFramebufferCreateInfo* pCreateInfo,
5204 const VkAllocationCallbacks* pAllocator,
5205 VkFramebuffer* pFramebuffer);
5206
5207VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
5208 VkDevice device,
5209 VkFramebuffer framebuffer,
5210 const VkAllocationCallbacks* pAllocator);
5211
5212VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
5213 VkDevice device,
5214 const VkRenderPassCreateInfo* pCreateInfo,
5215 const VkAllocationCallbacks* pAllocator,
5216 VkRenderPass* pRenderPass);
5217
5218VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
5219 VkDevice device,
5220 VkRenderPass renderPass,
5221 const VkAllocationCallbacks* pAllocator);
5222
5223VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
5224 VkDevice device,
5225 VkRenderPass renderPass,
5226 VkExtent2D* pGranularity);
5227
5228VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
5229 VkCommandBuffer commandBuffer,
5230 uint32_t firstViewport,
5231 uint32_t viewportCount,
5232 const VkViewport* pViewports);
5233
5234VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
5235 VkCommandBuffer commandBuffer,
5236 uint32_t firstScissor,
5237 uint32_t scissorCount,
5238 const VkRect2D* pScissors);
5239
5240VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
5241 VkCommandBuffer commandBuffer,
5242 float lineWidth);
5243
5244VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
5245 VkCommandBuffer commandBuffer,
5246 float depthBiasConstantFactor,
5247 float depthBiasClamp,
5248 float depthBiasSlopeFactor);
5249
5250VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
5251 VkCommandBuffer commandBuffer,
5252 const float blendConstants[4]);
5253
5254VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
5255 VkCommandBuffer commandBuffer,
5256 float minDepthBounds,
5257 float maxDepthBounds);
5258
5259VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
5260 VkCommandBuffer commandBuffer,
5261 VkStencilFaceFlags faceMask,
5262 uint32_t compareMask);
5263
5264VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
5265 VkCommandBuffer commandBuffer,
5266 VkStencilFaceFlags faceMask,
5267 uint32_t writeMask);
5268
5269VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
5270 VkCommandBuffer commandBuffer,
5271 VkStencilFaceFlags faceMask,
5272 uint32_t reference);
5273
5274VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
5275 VkCommandBuffer commandBuffer,
5276 VkBuffer buffer,
5277 VkDeviceSize offset,
5278 VkIndexType indexType);
5279
5280VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
5281 VkCommandBuffer commandBuffer,
5282 uint32_t firstBinding,
5283 uint32_t bindingCount,
5284 const VkBuffer* pBuffers,
5285 const VkDeviceSize* pOffsets);
5286
5287VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
5288 VkCommandBuffer commandBuffer,
5289 uint32_t vertexCount,
5290 uint32_t instanceCount,
5291 uint32_t firstVertex,
5292 uint32_t firstInstance);
5293
5294VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
5295 VkCommandBuffer commandBuffer,
5296 uint32_t indexCount,
5297 uint32_t instanceCount,
5298 uint32_t firstIndex,
5299 int32_t vertexOffset,
5300 uint32_t firstInstance);
5301
5302VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
5303 VkCommandBuffer commandBuffer,
5304 VkBuffer buffer,
5305 VkDeviceSize offset,
5306 uint32_t drawCount,
5307 uint32_t stride);
5308
5309VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
5310 VkCommandBuffer commandBuffer,
5311 VkBuffer buffer,
5312 VkDeviceSize offset,
5313 uint32_t drawCount,
5314 uint32_t stride);
5315
5316VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
5317 VkCommandBuffer commandBuffer,
5318 VkImage srcImage,
5319 VkImageLayout srcImageLayout,
5320 VkImage dstImage,
5321 VkImageLayout dstImageLayout,
5322 uint32_t regionCount,
5323 const VkImageBlit* pRegions,
5324 VkFilter filter);
5325
5326VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
5327 VkCommandBuffer commandBuffer,
5328 VkImage image,
5329 VkImageLayout imageLayout,
5330 const VkClearDepthStencilValue* pDepthStencil,
5331 uint32_t rangeCount,
5332 const VkImageSubresourceRange* pRanges);
5333
5334VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
5335 VkCommandBuffer commandBuffer,
5336 uint32_t attachmentCount,
5337 const VkClearAttachment* pAttachments,
5338 uint32_t rectCount,
5339 const VkClearRect* pRects);
5340
5341VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
5342 VkCommandBuffer commandBuffer,
5343 VkImage srcImage,
5344 VkImageLayout srcImageLayout,
5345 VkImage dstImage,
5346 VkImageLayout dstImageLayout,
5347 uint32_t regionCount,
5348 const VkImageResolve* pRegions);
5349
5350VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
5351 VkCommandBuffer commandBuffer,
5352 const VkRenderPassBeginInfo* pRenderPassBegin,
5353 VkSubpassContents contents);
5354
5355VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
5356 VkCommandBuffer commandBuffer,
5357 VkSubpassContents contents);
5358
5359VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
5360 VkCommandBuffer commandBuffer);
5361#endif
5362
5363
5364// VK_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
5365#define VK_VERSION_1_1 1
5366// Vulkan 1.1 version number
5367#define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
5368
5369VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
5370VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
5371#define VK_MAX_DEVICE_GROUP_SIZE 32U
5372#define VK_LUID_SIZE 8U
5373#define VK_QUEUE_FAMILY_EXTERNAL (~1U)
5374
5375typedef enum VkDescriptorUpdateTemplateType {
5376 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
5377 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS = 1,
5378 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS,
5379 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
5380 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
5381} VkDescriptorUpdateTemplateType;
5382
5383typedef enum VkSamplerYcbcrModelConversion {
5384 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
5385 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
5386 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
5387 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
5388 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
5389 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
5390 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
5391 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
5392 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
5393 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
5394 VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
5395} VkSamplerYcbcrModelConversion;
5396
5397typedef enum VkSamplerYcbcrRange {
5398 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
5399 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
5400 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
5401 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
5402 VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
5403} VkSamplerYcbcrRange;
5404
5405typedef enum VkChromaLocation {
5406 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
5407 VK_CHROMA_LOCATION_MIDPOINT = 1,
5408 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
5409 VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
5410 VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
5411} VkChromaLocation;
5412
5413typedef enum VkPointClippingBehavior {
5414 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
5415 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
5416 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
5417 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
5418 VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
5419} VkPointClippingBehavior;
5420
5421typedef enum VkTessellationDomainOrigin {
5422 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
5423 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
5424 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
5425 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
5426 VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
5427} VkTessellationDomainOrigin;
5428
5429typedef enum VkPeerMemoryFeatureFlagBits {
5430 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
5431 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
5432 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
5433 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
5434 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
5435 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
5436 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
5437 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
5438 VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5439} VkPeerMemoryFeatureFlagBits;
5440typedef VkFlags VkPeerMemoryFeatureFlags;
5441
5442typedef enum VkMemoryAllocateFlagBits {
5443 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
5444 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
5445 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
5446 VK_MEMORY_ALLOCATE_ZERO_INITIALIZE_BIT_EXT = 0x00000008,
5447 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
5448 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
5449 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
5450 VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5451} VkMemoryAllocateFlagBits;
5452typedef VkFlags VkMemoryAllocateFlags;
5453typedef VkFlags VkCommandPoolTrimFlags;
5454
5455typedef enum VkExternalMemoryHandleTypeFlagBits {
5456 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5457 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5458 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5459 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
5460 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
5461 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
5462 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
5463 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
5464 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
5465 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
5466 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
5467 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
5468 VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
5469 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OH_NATIVE_BUFFER_BIT_OHOS = 0x00008000,
5470 VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000,
5471 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT = 0x00010000,
5472 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_EXT = 0x00020000,
5473 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT = 0x00040000,
5474 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
5475 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5476 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5477 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
5478 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
5479 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
5480 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
5481 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5482} VkExternalMemoryHandleTypeFlagBits;
5483typedef VkFlags VkExternalMemoryHandleTypeFlags;
5484
5485typedef enum VkExternalMemoryFeatureFlagBits {
5486 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
5487 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
5488 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
5489 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5490 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5491 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
5492 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5493} VkExternalMemoryFeatureFlagBits;
5494typedef VkFlags VkExternalMemoryFeatureFlags;
5495
5496typedef enum VkExternalFenceHandleTypeFlagBits {
5497 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5498 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5499 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5500 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
5501 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5502 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5503 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5504 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
5505 VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5506} VkExternalFenceHandleTypeFlagBits;
5507typedef VkFlags VkExternalFenceHandleTypeFlags;
5508
5509typedef enum VkExternalFenceFeatureFlagBits {
5510 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5511 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5512 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5513 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
5514 VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5515} VkExternalFenceFeatureFlagBits;
5516typedef VkFlags VkExternalFenceFeatureFlags;
5517
5518typedef enum VkFenceImportFlagBits {
5519 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
5520 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
5521 VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5522} VkFenceImportFlagBits;
5523typedef VkFlags VkFenceImportFlags;
5524
5525typedef enum VkSemaphoreImportFlagBits {
5526 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
5527 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
5528 VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5529} VkSemaphoreImportFlagBits;
5530typedef VkFlags VkSemaphoreImportFlags;
5531
5532typedef enum VkExternalSemaphoreHandleTypeFlagBits {
5533 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5534 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5535 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5536 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
5537 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
5538 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080,
5539 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5540 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5541 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5542 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5543 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5544 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5545 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5546} VkExternalSemaphoreHandleTypeFlagBits;
5547typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
5548
5549typedef enum VkExternalSemaphoreFeatureFlagBits {
5550 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5551 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5552 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5553 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
5554 VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5555} VkExternalSemaphoreFeatureFlagBits;
5556typedef VkFlags VkExternalSemaphoreFeatureFlags;
5557
5558typedef enum VkSubgroupFeatureFlagBits {
5559 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
5560 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
5561 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
5562 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
5563 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
5564 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
5565 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
5566 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
5567 VK_SUBGROUP_FEATURE_ROTATE_BIT = 0x00000200,
5568 VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT = 0x00000400,
5569 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_EXT = 0x00000100,
5570 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_EXT,
5571 VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_BIT,
5572 VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT,
5573 VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5574} VkSubgroupFeatureFlagBits;
5575typedef VkFlags VkSubgroupFeatureFlags;
5576typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
5577typedef struct VkBindBufferMemoryInfo {
5578 VkStructureType sType;
5579 const void* pNext;
5580 VkBuffer buffer;
5581 VkDeviceMemory memory;
5582 VkDeviceSize memoryOffset;
5583} VkBindBufferMemoryInfo;
5584
5585typedef struct VkBindImageMemoryInfo {
5586 VkStructureType sType;
5587 const void* pNext;
5588 VkImage image;
5589 VkDeviceMemory memory;
5590 VkDeviceSize memoryOffset;
5591} VkBindImageMemoryInfo;
5592
5593typedef struct VkMemoryDedicatedRequirements {
5594 VkStructureType sType;
5595 void* pNext;
5596 VkBool32 prefersDedicatedAllocation;
5597 VkBool32 requiresDedicatedAllocation;
5598} VkMemoryDedicatedRequirements;
5599
5600typedef struct VkMemoryDedicatedAllocateInfo {
5601 VkStructureType sType;
5602 const void* pNext;
5603 VkImage image;
5604 VkBuffer buffer;
5605} VkMemoryDedicatedAllocateInfo;
5606
5607typedef struct VkMemoryAllocateFlagsInfo {
5608 VkStructureType sType;
5609 const void* pNext;
5610 VkMemoryAllocateFlags flags;
5611 uint32_t deviceMask;
5612} VkMemoryAllocateFlagsInfo;
5613
5614typedef struct VkDeviceGroupCommandBufferBeginInfo {
5615 VkStructureType sType;
5616 const void* pNext;
5617 uint32_t deviceMask;
5618} VkDeviceGroupCommandBufferBeginInfo;
5619
5620typedef struct VkDeviceGroupSubmitInfo {
5621 VkStructureType sType;
5622 const void* pNext;
5623 uint32_t waitSemaphoreCount;
5624 const uint32_t* pWaitSemaphoreDeviceIndices;
5625 uint32_t commandBufferCount;
5626 const uint32_t* pCommandBufferDeviceMasks;
5627 uint32_t signalSemaphoreCount;
5628 const uint32_t* pSignalSemaphoreDeviceIndices;
5629} VkDeviceGroupSubmitInfo;
5630
5631typedef struct VkDeviceGroupBindSparseInfo {
5632 VkStructureType sType;
5633 const void* pNext;
5634 uint32_t resourceDeviceIndex;
5635 uint32_t memoryDeviceIndex;
5636} VkDeviceGroupBindSparseInfo;
5637
5638typedef struct VkBindBufferMemoryDeviceGroupInfo {
5639 VkStructureType sType;
5640 const void* pNext;
5641 uint32_t deviceIndexCount;
5642 const uint32_t* pDeviceIndices;
5643} VkBindBufferMemoryDeviceGroupInfo;
5644
5645typedef struct VkBindImageMemoryDeviceGroupInfo {
5646 VkStructureType sType;
5647 const void* pNext;
5648 uint32_t deviceIndexCount;
5649 const uint32_t* pDeviceIndices;
5650 uint32_t splitInstanceBindRegionCount;
5651 const VkRect2D* pSplitInstanceBindRegions;
5652} VkBindImageMemoryDeviceGroupInfo;
5653
5654typedef struct VkPhysicalDeviceGroupProperties {
5655 VkStructureType sType;
5656 void* pNext;
5657 uint32_t physicalDeviceCount;
5658 VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
5659 VkBool32 subsetAllocation;
5660} VkPhysicalDeviceGroupProperties;
5661
5662typedef struct VkDeviceGroupDeviceCreateInfo {
5663 VkStructureType sType;
5664 const void* pNext;
5665 uint32_t physicalDeviceCount;
5666 const VkPhysicalDevice* pPhysicalDevices;
5667} VkDeviceGroupDeviceCreateInfo;
5668
5669typedef struct VkBufferMemoryRequirementsInfo2 {
5670 VkStructureType sType;
5671 const void* pNext;
5672 VkBuffer buffer;
5673} VkBufferMemoryRequirementsInfo2;
5674
5675typedef struct VkImageMemoryRequirementsInfo2 {
5676 VkStructureType sType;
5677 const void* pNext;
5678 VkImage image;
5679} VkImageMemoryRequirementsInfo2;
5680
5681typedef struct VkImageSparseMemoryRequirementsInfo2 {
5682 VkStructureType sType;
5683 const void* pNext;
5684 VkImage image;
5685} VkImageSparseMemoryRequirementsInfo2;
5686
5687typedef struct VkMemoryRequirements2 {
5688 VkStructureType sType;
5689 void* pNext;
5690 VkMemoryRequirements memoryRequirements;
5691} VkMemoryRequirements2;
5692
5693typedef struct VkSparseImageMemoryRequirements2 {
5694 VkStructureType sType;
5695 void* pNext;
5696 VkSparseImageMemoryRequirements memoryRequirements;
5697} VkSparseImageMemoryRequirements2;
5698
5699typedef struct VkPhysicalDeviceFeatures2 {
5700 VkStructureType sType;
5701 void* pNext;
5702 VkPhysicalDeviceFeatures features;
5703} VkPhysicalDeviceFeatures2;
5704
5705typedef struct VkPhysicalDeviceProperties2 {
5706 VkStructureType sType;
5707 void* pNext;
5708 VkPhysicalDeviceProperties properties;
5709} VkPhysicalDeviceProperties2;
5710
5711typedef struct VkFormatProperties2 {
5712 VkStructureType sType;
5713 void* pNext;
5714 VkFormatProperties formatProperties;
5715} VkFormatProperties2;
5716
5717typedef struct VkImageFormatProperties2 {
5718 VkStructureType sType;
5719 void* pNext;
5720 VkImageFormatProperties imageFormatProperties;
5721} VkImageFormatProperties2;
5722
5723typedef struct VkPhysicalDeviceImageFormatInfo2 {
5724 VkStructureType sType;
5725 const void* pNext;
5726 VkFormat format;
5727 VkImageType type;
5728 VkImageTiling tiling;
5729 VkImageUsageFlags usage;
5730 VkImageCreateFlags flags;
5731} VkPhysicalDeviceImageFormatInfo2;
5732
5733typedef struct VkQueueFamilyProperties2 {
5734 VkStructureType sType;
5735 void* pNext;
5736 VkQueueFamilyProperties queueFamilyProperties;
5737} VkQueueFamilyProperties2;
5738
5739typedef struct VkPhysicalDeviceMemoryProperties2 {
5740 VkStructureType sType;
5741 void* pNext;
5742 VkPhysicalDeviceMemoryProperties memoryProperties;
5743} VkPhysicalDeviceMemoryProperties2;
5744
5745typedef struct VkSparseImageFormatProperties2 {
5746 VkStructureType sType;
5747 void* pNext;
5748 VkSparseImageFormatProperties properties;
5749} VkSparseImageFormatProperties2;
5750
5751typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
5752 VkStructureType sType;
5753 const void* pNext;
5754 VkFormat format;
5755 VkImageType type;
5756 VkSampleCountFlagBits samples;
5757 VkImageUsageFlags usage;
5758 VkImageTiling tiling;
5759} VkPhysicalDeviceSparseImageFormatInfo2;
5760
5761typedef struct VkImageViewUsageCreateInfo {
5762 VkStructureType sType;
5763 const void* pNext;
5764 VkImageUsageFlags usage;
5765} VkImageViewUsageCreateInfo;
5766
5767typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
5768 VkStructureType sType;
5769 void* pNext;
5770 VkBool32 protectedMemory;
5771} VkPhysicalDeviceProtectedMemoryFeatures;
5772
5773typedef struct VkPhysicalDeviceProtectedMemoryProperties {
5774 VkStructureType sType;
5775 void* pNext;
5776 VkBool32 protectedNoFault;
5777} VkPhysicalDeviceProtectedMemoryProperties;
5778
5779typedef struct VkDeviceQueueInfo2 {
5780 VkStructureType sType;
5781 const void* pNext;
5782 VkDeviceQueueCreateFlags flags;
5783 uint32_t queueFamilyIndex;
5784 uint32_t queueIndex;
5785} VkDeviceQueueInfo2;
5786
5787typedef struct VkProtectedSubmitInfo {
5788 VkStructureType sType;
5789 const void* pNext;
5790 VkBool32 protectedSubmit;
5791} VkProtectedSubmitInfo;
5792
5793typedef struct VkBindImagePlaneMemoryInfo {
5794 VkStructureType sType;
5795 const void* pNext;
5796 VkImageAspectFlagBits planeAspect;
5797} VkBindImagePlaneMemoryInfo;
5798
5799typedef struct VkImagePlaneMemoryRequirementsInfo {
5800 VkStructureType sType;
5801 const void* pNext;
5802 VkImageAspectFlagBits planeAspect;
5803} VkImagePlaneMemoryRequirementsInfo;
5804
5805typedef struct VkExternalMemoryProperties {
5806 VkExternalMemoryFeatureFlags externalMemoryFeatures;
5807 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
5808 VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
5809} VkExternalMemoryProperties;
5810
5811typedef struct VkPhysicalDeviceExternalImageFormatInfo {
5812 VkStructureType sType;
5813 const void* pNext;
5814 VkExternalMemoryHandleTypeFlagBits handleType;
5815} VkPhysicalDeviceExternalImageFormatInfo;
5816
5817typedef struct VkExternalImageFormatProperties {
5818 VkStructureType sType;
5819 void* pNext;
5820 VkExternalMemoryProperties externalMemoryProperties;
5821} VkExternalImageFormatProperties;
5822
5823typedef struct VkPhysicalDeviceExternalBufferInfo {
5824 VkStructureType sType;
5825 const void* pNext;
5826 VkBufferCreateFlags flags;
5827 VkBufferUsageFlags usage;
5828 VkExternalMemoryHandleTypeFlagBits handleType;
5829} VkPhysicalDeviceExternalBufferInfo;
5830
5831typedef struct VkExternalBufferProperties {
5832 VkStructureType sType;
5833 void* pNext;
5834 VkExternalMemoryProperties externalMemoryProperties;
5835} VkExternalBufferProperties;
5836
5837typedef struct VkPhysicalDeviceIDProperties {
5838 VkStructureType sType;
5839 void* pNext;
5840 uint8_t deviceUUID[VK_UUID_SIZE];
5841 uint8_t driverUUID[VK_UUID_SIZE];
5842 uint8_t deviceLUID[VK_LUID_SIZE];
5843 uint32_t deviceNodeMask;
5844 VkBool32 deviceLUIDValid;
5845} VkPhysicalDeviceIDProperties;
5846
5847typedef struct VkExternalMemoryImageCreateInfo {
5848 VkStructureType sType;
5849 const void* pNext;
5850 VkExternalMemoryHandleTypeFlags handleTypes;
5851} VkExternalMemoryImageCreateInfo;
5852
5853typedef struct VkExternalMemoryBufferCreateInfo {
5854 VkStructureType sType;
5855 const void* pNext;
5856 VkExternalMemoryHandleTypeFlags handleTypes;
5857} VkExternalMemoryBufferCreateInfo;
5858
5859typedef struct VkExportMemoryAllocateInfo {
5860 VkStructureType sType;
5861 const void* pNext;
5862 VkExternalMemoryHandleTypeFlags handleTypes;
5863} VkExportMemoryAllocateInfo;
5864
5865typedef struct VkPhysicalDeviceExternalFenceInfo {
5866 VkStructureType sType;
5867 const void* pNext;
5868 VkExternalFenceHandleTypeFlagBits handleType;
5869} VkPhysicalDeviceExternalFenceInfo;
5870
5871typedef struct VkExternalFenceProperties {
5872 VkStructureType sType;
5873 void* pNext;
5874 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
5875 VkExternalFenceHandleTypeFlags compatibleHandleTypes;
5876 VkExternalFenceFeatureFlags externalFenceFeatures;
5877} VkExternalFenceProperties;
5878
5879typedef struct VkExportFenceCreateInfo {
5880 VkStructureType sType;
5881 const void* pNext;
5882 VkExternalFenceHandleTypeFlags handleTypes;
5883} VkExportFenceCreateInfo;
5884
5885typedef struct VkExportSemaphoreCreateInfo {
5886 VkStructureType sType;
5887 const void* pNext;
5888 VkExternalSemaphoreHandleTypeFlags handleTypes;
5889} VkExportSemaphoreCreateInfo;
5890
5891typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
5892 VkStructureType sType;
5893 const void* pNext;
5894 VkExternalSemaphoreHandleTypeFlagBits handleType;
5895} VkPhysicalDeviceExternalSemaphoreInfo;
5896
5897typedef struct VkExternalSemaphoreProperties {
5898 VkStructureType sType;
5899 void* pNext;
5900 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
5901 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
5902 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
5903} VkExternalSemaphoreProperties;
5904
5905typedef struct VkPhysicalDeviceSubgroupProperties {
5906 VkStructureType sType;
5907 void* pNext;
5908 uint32_t subgroupSize;
5909 VkShaderStageFlags supportedStages;
5910 VkSubgroupFeatureFlags supportedOperations;
5911 VkBool32 quadOperationsInAllStages;
5912} VkPhysicalDeviceSubgroupProperties;
5913
5914typedef struct VkPhysicalDevice16BitStorageFeatures {
5915 VkStructureType sType;
5916 void* pNext;
5917 VkBool32 storageBuffer16BitAccess;
5918 VkBool32 uniformAndStorageBuffer16BitAccess;
5919 VkBool32 storagePushConstant16;
5920 VkBool32 storageInputOutput16;
5921} VkPhysicalDevice16BitStorageFeatures;
5922
5923typedef struct VkPhysicalDeviceVariablePointersFeatures {
5924 VkStructureType sType;
5925 void* pNext;
5926 VkBool32 variablePointersStorageBuffer;
5927 VkBool32 variablePointers;
5928} VkPhysicalDeviceVariablePointersFeatures;
5929
5930typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
5931
5932typedef struct VkDescriptorUpdateTemplateEntry {
5933 uint32_t dstBinding;
5934 uint32_t dstArrayElement;
5935 uint32_t descriptorCount;
5936 VkDescriptorType descriptorType;
5937 size_t offset;
5938 size_t stride;
5939} VkDescriptorUpdateTemplateEntry;
5940
5941typedef struct VkDescriptorUpdateTemplateCreateInfo {
5942 VkStructureType sType;
5943 const void* pNext;
5944 VkDescriptorUpdateTemplateCreateFlags flags;
5945 uint32_t descriptorUpdateEntryCount;
5946 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries;
5947 VkDescriptorUpdateTemplateType templateType;
5948 VkDescriptorSetLayout descriptorSetLayout;
5949 VkPipelineBindPoint pipelineBindPoint;
5950 VkPipelineLayout pipelineLayout;
5951 uint32_t set;
5952} VkDescriptorUpdateTemplateCreateInfo;
5953
5954typedef struct VkPhysicalDeviceMaintenance3Properties {
5955 VkStructureType sType;
5956 void* pNext;
5957 uint32_t maxPerSetDescriptors;
5958 VkDeviceSize maxMemoryAllocationSize;
5959} VkPhysicalDeviceMaintenance3Properties;
5960
5961typedef struct VkDescriptorSetLayoutSupport {
5962 VkStructureType sType;
5963 void* pNext;
5964 VkBool32 supported;
5965} VkDescriptorSetLayoutSupport;
5966
5967typedef struct VkSamplerYcbcrConversionCreateInfo {
5968 VkStructureType sType;
5969 const void* pNext;
5970 VkFormat format;
5971 VkSamplerYcbcrModelConversion ycbcrModel;
5972 VkSamplerYcbcrRange ycbcrRange;
5973 VkComponentMapping components;
5974 VkChromaLocation xChromaOffset;
5975 VkChromaLocation yChromaOffset;
5976 VkFilter chromaFilter;
5977 VkBool32 forceExplicitReconstruction;
5978} VkSamplerYcbcrConversionCreateInfo;
5979
5980typedef struct VkSamplerYcbcrConversionInfo {
5981 VkStructureType sType;
5982 const void* pNext;
5983 VkSamplerYcbcrConversion conversion;
5984} VkSamplerYcbcrConversionInfo;
5985
5986typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
5987 VkStructureType sType;
5988 void* pNext;
5989 VkBool32 samplerYcbcrConversion;
5990} VkPhysicalDeviceSamplerYcbcrConversionFeatures;
5991
5992typedef struct VkSamplerYcbcrConversionImageFormatProperties {
5993 VkStructureType sType;
5994 void* pNext;
5995 uint32_t combinedImageSamplerDescriptorCount;
5996} VkSamplerYcbcrConversionImageFormatProperties;
5997
5998typedef struct VkDeviceGroupRenderPassBeginInfo {
5999 VkStructureType sType;
6000 const void* pNext;
6001 uint32_t deviceMask;
6002 uint32_t deviceRenderAreaCount;
6003 const VkRect2D* pDeviceRenderAreas;
6004} VkDeviceGroupRenderPassBeginInfo;
6005
6006typedef struct VkPhysicalDevicePointClippingProperties {
6007 VkStructureType sType;
6008 void* pNext;
6009 VkPointClippingBehavior pointClippingBehavior;
6010} VkPhysicalDevicePointClippingProperties;
6011
6012typedef struct VkInputAttachmentAspectReference {
6013 uint32_t subpass;
6014 uint32_t inputAttachmentIndex;
6015 VkImageAspectFlags aspectMask;
6016} VkInputAttachmentAspectReference;
6017
6018typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
6019 VkStructureType sType;
6020 const void* pNext;
6021 uint32_t aspectReferenceCount;
6022 const VkInputAttachmentAspectReference* pAspectReferences;
6023} VkRenderPassInputAttachmentAspectCreateInfo;
6024
6025typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
6026 VkStructureType sType;
6027 const void* pNext;
6028 VkTessellationDomainOrigin domainOrigin;
6029} VkPipelineTessellationDomainOriginStateCreateInfo;
6030
6031typedef struct VkRenderPassMultiviewCreateInfo {
6032 VkStructureType sType;
6033 const void* pNext;
6034 uint32_t subpassCount;
6035 const uint32_t* pViewMasks;
6036 uint32_t dependencyCount;
6037 const int32_t* pViewOffsets;
6038 uint32_t correlationMaskCount;
6039 const uint32_t* pCorrelationMasks;
6040} VkRenderPassMultiviewCreateInfo;
6041
6042typedef struct VkPhysicalDeviceMultiviewFeatures {
6043 VkStructureType sType;
6044 void* pNext;
6045 VkBool32 multiview;
6046 VkBool32 multiviewGeometryShader;
6047 VkBool32 multiviewTessellationShader;
6048} VkPhysicalDeviceMultiviewFeatures;
6049
6050typedef struct VkPhysicalDeviceMultiviewProperties {
6051 VkStructureType sType;
6052 void* pNext;
6053 uint32_t maxMultiviewViewCount;
6054 uint32_t maxMultiviewInstanceIndex;
6055} VkPhysicalDeviceMultiviewProperties;
6056
6057typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
6058 VkStructureType sType;
6059 void* pNext;
6060 VkBool32 shaderDrawParameters;
6061} VkPhysicalDeviceShaderDrawParametersFeatures;
6062
6063typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
6064
6065typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
6066typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
6067typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
6068typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
6069typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
6070typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
6071typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
6072typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
6073typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
6074typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
6075typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
6076typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
6077typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
6078typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
6079typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
6080typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
6081typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
6082typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
6083typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
6084typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
6085typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
6086typedef 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);
6087typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
6088typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
6089typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
6090typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
6091typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
6092typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
6093
6094#ifndef VK_NO_PROTOTYPES
6095VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
6096 uint32_t* pApiVersion);
6097
6098VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
6099 VkDevice device,
6100 uint32_t bindInfoCount,
6101 const VkBindBufferMemoryInfo* pBindInfos);
6102
6103VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
6104 VkDevice device,
6105 uint32_t bindInfoCount,
6106 const VkBindImageMemoryInfo* pBindInfos);
6107
6108VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
6109 VkDevice device,
6110 uint32_t heapIndex,
6111 uint32_t localDeviceIndex,
6112 uint32_t remoteDeviceIndex,
6113 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
6114
6115VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
6116 VkCommandBuffer commandBuffer,
6117 uint32_t deviceMask);
6118
6119VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
6120 VkInstance instance,
6121 uint32_t* pPhysicalDeviceGroupCount,
6122 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
6123
6124VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
6125 VkDevice device,
6126 const VkImageMemoryRequirementsInfo2* pInfo,
6127 VkMemoryRequirements2* pMemoryRequirements);
6128
6129VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
6130 VkDevice device,
6131 const VkBufferMemoryRequirementsInfo2* pInfo,
6132 VkMemoryRequirements2* pMemoryRequirements);
6133
6134VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
6135 VkDevice device,
6136 const VkImageSparseMemoryRequirementsInfo2* pInfo,
6137 uint32_t* pSparseMemoryRequirementCount,
6138 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
6139
6140VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
6141 VkPhysicalDevice physicalDevice,
6142 VkPhysicalDeviceFeatures2* pFeatures);
6143
6144VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
6145 VkPhysicalDevice physicalDevice,
6146 VkPhysicalDeviceProperties2* pProperties);
6147
6148VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
6149 VkPhysicalDevice physicalDevice,
6150 VkFormat format,
6151 VkFormatProperties2* pFormatProperties);
6152
6153VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
6154 VkPhysicalDevice physicalDevice,
6155 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
6156 VkImageFormatProperties2* pImageFormatProperties);
6157
6158VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
6159 VkPhysicalDevice physicalDevice,
6160 uint32_t* pQueueFamilyPropertyCount,
6161 VkQueueFamilyProperties2* pQueueFamilyProperties);
6162
6163VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
6164 VkPhysicalDevice physicalDevice,
6165 VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
6166
6167VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
6168 VkPhysicalDevice physicalDevice,
6169 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
6170 uint32_t* pPropertyCount,
6171 VkSparseImageFormatProperties2* pProperties);
6172
6173VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
6174 VkDevice device,
6175 VkCommandPool commandPool,
6176 VkCommandPoolTrimFlags flags);
6177
6178VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
6179 VkDevice device,
6180 const VkDeviceQueueInfo2* pQueueInfo,
6181 VkQueue* pQueue);
6182
6183VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
6184 VkPhysicalDevice physicalDevice,
6185 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
6186 VkExternalBufferProperties* pExternalBufferProperties);
6187
6188VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
6189 VkPhysicalDevice physicalDevice,
6190 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
6191 VkExternalFenceProperties* pExternalFenceProperties);
6192
6193VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
6194 VkPhysicalDevice physicalDevice,
6195 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
6196 VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
6197
6198VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
6199 VkCommandBuffer commandBuffer,
6200 uint32_t baseGroupX,
6201 uint32_t baseGroupY,
6202 uint32_t baseGroupZ,
6203 uint32_t groupCountX,
6204 uint32_t groupCountY,
6205 uint32_t groupCountZ);
6206
6207VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
6208 VkDevice device,
6209 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
6210 const VkAllocationCallbacks* pAllocator,
6211 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
6212
6213VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
6214 VkDevice device,
6215 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
6216 const VkAllocationCallbacks* pAllocator);
6217
6218VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
6219 VkDevice device,
6220 VkDescriptorSet descriptorSet,
6221 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
6222 const void* pData);
6223
6224VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
6225 VkDevice device,
6226 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
6227 VkDescriptorSetLayoutSupport* pSupport);
6228
6229VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
6230 VkDevice device,
6231 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
6232 const VkAllocationCallbacks* pAllocator,
6233 VkSamplerYcbcrConversion* pYcbcrConversion);
6234
6235VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
6236 VkDevice device,
6237 VkSamplerYcbcrConversion ycbcrConversion,
6238 const VkAllocationCallbacks* pAllocator);
6239#endif
6240
6241
6242// VK_VERSION_1_2 is a preprocessor guard. Do not pass it to API calls.
6243#define VK_VERSION_1_2 1
6244// Vulkan 1.2 version number
6245#define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0
6246
6247#define VK_MAX_DRIVER_NAME_SIZE 256U
6248#define VK_MAX_DRIVER_INFO_SIZE 256U
6249
6250typedef enum VkDriverId {
6251 VK_DRIVER_ID_AMD_PROPRIETARY = 1,
6252 VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
6253 VK_DRIVER_ID_MESA_RADV = 3,
6254 VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
6255 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
6256 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
6257 VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
6258 VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
6259 VK_DRIVER_ID_ARM_PROPRIETARY = 9,
6260 VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
6261 VK_DRIVER_ID_GGP_PROPRIETARY = 11,
6262 VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
6263 VK_DRIVER_ID_MESA_LLVMPIPE = 13,
6264 VK_DRIVER_ID_MOLTENVK = 14,
6265 VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
6266 VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
6267 VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
6268 VK_DRIVER_ID_MESA_TURNIP = 18,
6269 VK_DRIVER_ID_MESA_V3DV = 19,
6270 VK_DRIVER_ID_MESA_PANVK = 20,
6271 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
6272 VK_DRIVER_ID_MESA_VENUS = 22,
6273 VK_DRIVER_ID_MESA_DOZEN = 23,
6274 VK_DRIVER_ID_MESA_NVK = 24,
6275 VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25,
6276 VK_DRIVER_ID_MESA_HONEYKRISP = 26,
6277 VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN = 27,
6278 VK_DRIVER_ID_MESA_KOSMICKRISP = 28,
6279 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
6280 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
6281 VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
6282 VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
6283 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
6284 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
6285 VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
6286 VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
6287 VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
6288 VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
6289 VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
6290 VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
6291 VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
6292} VkDriverId;
6293
6294typedef enum VkShaderFloatControlsIndependence {
6295 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
6296 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
6297 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
6298 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
6299 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
6300 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
6301 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
6302} VkShaderFloatControlsIndependence;
6303
6304typedef enum VkSemaphoreType {
6305 VK_SEMAPHORE_TYPE_BINARY = 0,
6306 VK_SEMAPHORE_TYPE_TIMELINE = 1,
6307 VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
6308 VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
6309 VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
6310} VkSemaphoreType;
6311
6312typedef enum VkSamplerReductionMode {
6313 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
6314 VK_SAMPLER_REDUCTION_MODE_MIN = 1,
6315 VK_SAMPLER_REDUCTION_MODE_MAX = 2,
6316 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000,
6317 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
6318 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
6319 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
6320 VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
6321} VkSamplerReductionMode;
6322
6323typedef enum VkResolveModeFlagBits {
6324 VK_RESOLVE_MODE_NONE = 0,
6325 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
6326 VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
6327 VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
6328 VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
6329 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID = 0x00000010,
6330 VK_RESOLVE_MODE_CUSTOM_BIT_EXT = 0x00000020,
6331 VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
6332 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
6333 VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
6334 VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
6335 VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
6336 // VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID is a legacy alias
6337 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID,
6338 VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6339} VkResolveModeFlagBits;
6340typedef VkFlags VkResolveModeFlags;
6341
6342typedef enum VkSemaphoreWaitFlagBits {
6343 VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
6344 VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
6345 VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6346} VkSemaphoreWaitFlagBits;
6347typedef VkFlags VkSemaphoreWaitFlags;
6348
6349typedef enum VkDescriptorBindingFlagBits {
6350 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
6351 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
6352 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
6353 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
6354 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
6355 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
6356 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
6357 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
6358 VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6359} VkDescriptorBindingFlagBits;
6360typedef VkFlags VkDescriptorBindingFlags;
6361typedef struct VkPhysicalDeviceVulkan11Features {
6362 VkStructureType sType;
6363 void* pNext;
6364 VkBool32 storageBuffer16BitAccess;
6365 VkBool32 uniformAndStorageBuffer16BitAccess;
6366 VkBool32 storagePushConstant16;
6367 VkBool32 storageInputOutput16;
6368 VkBool32 multiview;
6369 VkBool32 multiviewGeometryShader;
6370 VkBool32 multiviewTessellationShader;
6371 VkBool32 variablePointersStorageBuffer;
6372 VkBool32 variablePointers;
6373 VkBool32 protectedMemory;
6374 VkBool32 samplerYcbcrConversion;
6375 VkBool32 shaderDrawParameters;
6376} VkPhysicalDeviceVulkan11Features;
6377
6378typedef struct VkPhysicalDeviceVulkan11Properties {
6379 VkStructureType sType;
6380 void* pNext;
6381 uint8_t deviceUUID[VK_UUID_SIZE];
6382 uint8_t driverUUID[VK_UUID_SIZE];
6383 uint8_t deviceLUID[VK_LUID_SIZE];
6384 uint32_t deviceNodeMask;
6385 VkBool32 deviceLUIDValid;
6386 uint32_t subgroupSize;
6387 VkShaderStageFlags subgroupSupportedStages;
6388 VkSubgroupFeatureFlags subgroupSupportedOperations;
6389 VkBool32 subgroupQuadOperationsInAllStages;
6390 VkPointClippingBehavior pointClippingBehavior;
6391 uint32_t maxMultiviewViewCount;
6392 uint32_t maxMultiviewInstanceIndex;
6393 VkBool32 protectedNoFault;
6394 uint32_t maxPerSetDescriptors;
6395 VkDeviceSize maxMemoryAllocationSize;
6396} VkPhysicalDeviceVulkan11Properties;
6397
6398typedef struct VkPhysicalDeviceVulkan12Features {
6399 VkStructureType sType;
6400 void* pNext;
6401 VkBool32 samplerMirrorClampToEdge;
6402 VkBool32 drawIndirectCount;
6403 VkBool32 storageBuffer8BitAccess;
6404 VkBool32 uniformAndStorageBuffer8BitAccess;
6405 VkBool32 storagePushConstant8;
6406 VkBool32 shaderBufferInt64Atomics;
6407 VkBool32 shaderSharedInt64Atomics;
6408 VkBool32 shaderFloat16;
6409 VkBool32 shaderInt8;
6410 VkBool32 descriptorIndexing;
6411 VkBool32 shaderInputAttachmentArrayDynamicIndexing;
6412 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
6413 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
6414 VkBool32 shaderUniformBufferArrayNonUniformIndexing;
6415 VkBool32 shaderSampledImageArrayNonUniformIndexing;
6416 VkBool32 shaderStorageBufferArrayNonUniformIndexing;
6417 VkBool32 shaderStorageImageArrayNonUniformIndexing;
6418 VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
6419 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
6420 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
6421 VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
6422 VkBool32 descriptorBindingSampledImageUpdateAfterBind;
6423 VkBool32 descriptorBindingStorageImageUpdateAfterBind;
6424 VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
6425 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
6426 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
6427 VkBool32 descriptorBindingUpdateUnusedWhilePending;
6428 VkBool32 descriptorBindingPartiallyBound;
6429 VkBool32 descriptorBindingVariableDescriptorCount;
6430 VkBool32 runtimeDescriptorArray;
6431 VkBool32 samplerFilterMinmax;
6432 VkBool32 scalarBlockLayout;
6433 VkBool32 imagelessFramebuffer;
6434 VkBool32 uniformBufferStandardLayout;
6435 VkBool32 shaderSubgroupExtendedTypes;
6436 VkBool32 separateDepthStencilLayouts;
6437 VkBool32 hostQueryReset;
6438 VkBool32 timelineSemaphore;
6439 VkBool32 bufferDeviceAddress;
6440 VkBool32 bufferDeviceAddressCaptureReplay;
6441 VkBool32 bufferDeviceAddressMultiDevice;
6442 VkBool32 vulkanMemoryModel;
6443 VkBool32 vulkanMemoryModelDeviceScope;
6444 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
6445 VkBool32 shaderOutputViewportIndex;
6446 VkBool32 shaderOutputLayer;
6447 VkBool32 subgroupBroadcastDynamicId;
6448} VkPhysicalDeviceVulkan12Features;
6449
6450typedef struct VkConformanceVersion {
6451 uint8_t major;
6452 uint8_t minor;
6453 uint8_t subminor;
6454 uint8_t patch;
6455} VkConformanceVersion;
6456
6457typedef struct VkPhysicalDeviceVulkan12Properties {
6458 VkStructureType sType;
6459 void* pNext;
6460 VkDriverId driverID;
6461 char driverName[VK_MAX_DRIVER_NAME_SIZE];
6462 char driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6463 VkConformanceVersion conformanceVersion;
6464 VkShaderFloatControlsIndependence denormBehaviorIndependence;
6465 VkShaderFloatControlsIndependence roundingModeIndependence;
6466 VkBool32 shaderSignedZeroInfNanPreserveFloat16;
6467 VkBool32 shaderSignedZeroInfNanPreserveFloat32;
6468 VkBool32 shaderSignedZeroInfNanPreserveFloat64;
6469 VkBool32 shaderDenormPreserveFloat16;
6470 VkBool32 shaderDenormPreserveFloat32;
6471 VkBool32 shaderDenormPreserveFloat64;
6472 VkBool32 shaderDenormFlushToZeroFloat16;
6473 VkBool32 shaderDenormFlushToZeroFloat32;
6474 VkBool32 shaderDenormFlushToZeroFloat64;
6475 VkBool32 shaderRoundingModeRTEFloat16;
6476 VkBool32 shaderRoundingModeRTEFloat32;
6477 VkBool32 shaderRoundingModeRTEFloat64;
6478 VkBool32 shaderRoundingModeRTZFloat16;
6479 VkBool32 shaderRoundingModeRTZFloat32;
6480 VkBool32 shaderRoundingModeRTZFloat64;
6481 uint32_t maxUpdateAfterBindDescriptorsInAllPools;
6482 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
6483 VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
6484 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
6485 VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
6486 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
6487 VkBool32 robustBufferAccessUpdateAfterBind;
6488 VkBool32 quadDivergentImplicitLod;
6489 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
6490 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6491 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6492 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
6493 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
6494 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
6495 uint32_t maxPerStageUpdateAfterBindResources;
6496 uint32_t maxDescriptorSetUpdateAfterBindSamplers;
6497 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
6498 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6499 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
6500 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6501 uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
6502 uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
6503 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
6504 VkResolveModeFlags supportedDepthResolveModes;
6505 VkResolveModeFlags supportedStencilResolveModes;
6506 VkBool32 independentResolveNone;
6507 VkBool32 independentResolve;
6508 VkBool32 filterMinmaxSingleComponentFormats;
6509 VkBool32 filterMinmaxImageComponentMapping;
6510 uint64_t maxTimelineSemaphoreValueDifference;
6511 VkSampleCountFlags framebufferIntegerColorSampleCounts;
6512} VkPhysicalDeviceVulkan12Properties;
6513
6514typedef struct VkImageFormatListCreateInfo {
6515 VkStructureType sType;
6516 const void* pNext;
6517 uint32_t viewFormatCount;
6518 const VkFormat* pViewFormats;
6519} VkImageFormatListCreateInfo;
6520
6521typedef struct VkPhysicalDeviceDriverProperties {
6522 VkStructureType sType;
6523 void* pNext;
6524 VkDriverId driverID;
6525 char driverName[VK_MAX_DRIVER_NAME_SIZE];
6526 char driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6527 VkConformanceVersion conformanceVersion;
6528} VkPhysicalDeviceDriverProperties;
6529
6530typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
6531 VkStructureType sType;
6532 void* pNext;
6533 VkBool32 vulkanMemoryModel;
6534 VkBool32 vulkanMemoryModelDeviceScope;
6535 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
6536} VkPhysicalDeviceVulkanMemoryModelFeatures;
6537
6538typedef struct VkPhysicalDeviceHostQueryResetFeatures {
6539 VkStructureType sType;
6540 void* pNext;
6541 VkBool32 hostQueryReset;
6542} VkPhysicalDeviceHostQueryResetFeatures;
6543
6544typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
6545 VkStructureType sType;
6546 void* pNext;
6547 VkBool32 timelineSemaphore;
6548} VkPhysicalDeviceTimelineSemaphoreFeatures;
6549
6550typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
6551 VkStructureType sType;
6552 void* pNext;
6553 uint64_t maxTimelineSemaphoreValueDifference;
6554} VkPhysicalDeviceTimelineSemaphoreProperties;
6555
6556typedef struct VkSemaphoreTypeCreateInfo {
6557 VkStructureType sType;
6558 const void* pNext;
6559 VkSemaphoreType semaphoreType;
6560 uint64_t initialValue;
6561} VkSemaphoreTypeCreateInfo;
6562
6563typedef struct VkTimelineSemaphoreSubmitInfo {
6564 VkStructureType sType;
6565 const void* pNext;
6566 uint32_t waitSemaphoreValueCount;
6567 const uint64_t* pWaitSemaphoreValues;
6568 uint32_t signalSemaphoreValueCount;
6569 const uint64_t* pSignalSemaphoreValues;
6570} VkTimelineSemaphoreSubmitInfo;
6571
6572typedef struct VkSemaphoreWaitInfo {
6573 VkStructureType sType;
6574 const void* pNext;
6575 VkSemaphoreWaitFlags flags;
6576 uint32_t semaphoreCount;
6577 const VkSemaphore* pSemaphores;
6578 const uint64_t* pValues;
6579} VkSemaphoreWaitInfo;
6580
6581typedef struct VkSemaphoreSignalInfo {
6582 VkStructureType sType;
6583 const void* pNext;
6584 VkSemaphore semaphore;
6585 uint64_t value;
6586} VkSemaphoreSignalInfo;
6587
6588typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
6589 VkStructureType sType;
6590 void* pNext;
6591 VkBool32 bufferDeviceAddress;
6592 VkBool32 bufferDeviceAddressCaptureReplay;
6593 VkBool32 bufferDeviceAddressMultiDevice;
6594} VkPhysicalDeviceBufferDeviceAddressFeatures;
6595
6596typedef struct VkBufferDeviceAddressInfo {
6597 VkStructureType sType;
6598 const void* pNext;
6599 VkBuffer buffer;
6600} VkBufferDeviceAddressInfo;
6601
6602typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
6603 VkStructureType sType;
6604 const void* pNext;
6605 uint64_t opaqueCaptureAddress;
6606} VkBufferOpaqueCaptureAddressCreateInfo;
6607
6608typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
6609 VkStructureType sType;
6610 const void* pNext;
6611 uint64_t opaqueCaptureAddress;
6612} VkMemoryOpaqueCaptureAddressAllocateInfo;
6613
6614typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
6615 VkStructureType sType;
6616 const void* pNext;
6617 VkDeviceMemory memory;
6618} VkDeviceMemoryOpaqueCaptureAddressInfo;
6619
6620typedef struct VkPhysicalDevice8BitStorageFeatures {
6621 VkStructureType sType;
6622 void* pNext;
6623 VkBool32 storageBuffer8BitAccess;
6624 VkBool32 uniformAndStorageBuffer8BitAccess;
6625 VkBool32 storagePushConstant8;
6626} VkPhysicalDevice8BitStorageFeatures;
6627
6628typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
6629 VkStructureType sType;
6630 void* pNext;
6631 VkBool32 shaderBufferInt64Atomics;
6632 VkBool32 shaderSharedInt64Atomics;
6633} VkPhysicalDeviceShaderAtomicInt64Features;
6634
6635typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
6636 VkStructureType sType;
6637 void* pNext;
6638 VkBool32 shaderFloat16;
6639 VkBool32 shaderInt8;
6640} VkPhysicalDeviceShaderFloat16Int8Features;
6641
6642typedef struct VkPhysicalDeviceFloatControlsProperties {
6643 VkStructureType sType;
6644 void* pNext;
6645 VkShaderFloatControlsIndependence denormBehaviorIndependence;
6646 VkShaderFloatControlsIndependence roundingModeIndependence;
6647 VkBool32 shaderSignedZeroInfNanPreserveFloat16;
6648 VkBool32 shaderSignedZeroInfNanPreserveFloat32;
6649 VkBool32 shaderSignedZeroInfNanPreserveFloat64;
6650 VkBool32 shaderDenormPreserveFloat16;
6651 VkBool32 shaderDenormPreserveFloat32;
6652 VkBool32 shaderDenormPreserveFloat64;
6653 VkBool32 shaderDenormFlushToZeroFloat16;
6654 VkBool32 shaderDenormFlushToZeroFloat32;
6655 VkBool32 shaderDenormFlushToZeroFloat64;
6656 VkBool32 shaderRoundingModeRTEFloat16;
6657 VkBool32 shaderRoundingModeRTEFloat32;
6658 VkBool32 shaderRoundingModeRTEFloat64;
6659 VkBool32 shaderRoundingModeRTZFloat16;
6660 VkBool32 shaderRoundingModeRTZFloat32;
6661 VkBool32 shaderRoundingModeRTZFloat64;
6662} VkPhysicalDeviceFloatControlsProperties;
6663
6664typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
6665 VkStructureType sType;
6666 const void* pNext;
6667 uint32_t bindingCount;
6668 const VkDescriptorBindingFlags* pBindingFlags;
6669} VkDescriptorSetLayoutBindingFlagsCreateInfo;
6670
6671typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
6672 VkStructureType sType;
6673 void* pNext;
6674 VkBool32 shaderInputAttachmentArrayDynamicIndexing;
6675 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
6676 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
6677 VkBool32 shaderUniformBufferArrayNonUniformIndexing;
6678 VkBool32 shaderSampledImageArrayNonUniformIndexing;
6679 VkBool32 shaderStorageBufferArrayNonUniformIndexing;
6680 VkBool32 shaderStorageImageArrayNonUniformIndexing;
6681 VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
6682 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
6683 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
6684 VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
6685 VkBool32 descriptorBindingSampledImageUpdateAfterBind;
6686 VkBool32 descriptorBindingStorageImageUpdateAfterBind;
6687 VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
6688 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
6689 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
6690 VkBool32 descriptorBindingUpdateUnusedWhilePending;
6691 VkBool32 descriptorBindingPartiallyBound;
6692 VkBool32 descriptorBindingVariableDescriptorCount;
6693 VkBool32 runtimeDescriptorArray;
6694} VkPhysicalDeviceDescriptorIndexingFeatures;
6695
6696typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
6697 VkStructureType sType;
6698 void* pNext;
6699 uint32_t maxUpdateAfterBindDescriptorsInAllPools;
6700 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
6701 VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
6702 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
6703 VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
6704 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
6705 VkBool32 robustBufferAccessUpdateAfterBind;
6706 VkBool32 quadDivergentImplicitLod;
6707 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
6708 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6709 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6710 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
6711 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
6712 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
6713 uint32_t maxPerStageUpdateAfterBindResources;
6714 uint32_t maxDescriptorSetUpdateAfterBindSamplers;
6715 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
6716 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6717 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
6718 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6719 uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
6720 uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
6721 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
6722} VkPhysicalDeviceDescriptorIndexingProperties;
6723
6724typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
6725 VkStructureType sType;
6726 const void* pNext;
6727 uint32_t descriptorSetCount;
6728 const uint32_t* pDescriptorCounts;
6729} VkDescriptorSetVariableDescriptorCountAllocateInfo;
6730
6731typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
6732 VkStructureType sType;
6733 void* pNext;
6734 uint32_t maxVariableDescriptorCount;
6735} VkDescriptorSetVariableDescriptorCountLayoutSupport;
6736
6737typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
6738 VkStructureType sType;
6739 void* pNext;
6740 VkBool32 scalarBlockLayout;
6741} VkPhysicalDeviceScalarBlockLayoutFeatures;
6742
6743typedef struct VkSamplerReductionModeCreateInfo {
6744 VkStructureType sType;
6745 const void* pNext;
6746 VkSamplerReductionMode reductionMode;
6747} VkSamplerReductionModeCreateInfo;
6748
6749typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
6750 VkStructureType sType;
6751 void* pNext;
6752 VkBool32 filterMinmaxSingleComponentFormats;
6753 VkBool32 filterMinmaxImageComponentMapping;
6754} VkPhysicalDeviceSamplerFilterMinmaxProperties;
6755
6756typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
6757 VkStructureType sType;
6758 void* pNext;
6759 VkBool32 uniformBufferStandardLayout;
6760} VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
6761
6762typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
6763 VkStructureType sType;
6764 void* pNext;
6765 VkBool32 shaderSubgroupExtendedTypes;
6766} VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
6767
6768typedef struct VkAttachmentDescription2 {
6769 VkStructureType sType;
6770 const void* pNext;
6771 VkAttachmentDescriptionFlags flags;
6772 VkFormat format;
6773 VkSampleCountFlagBits samples;
6774 VkAttachmentLoadOp loadOp;
6775 VkAttachmentStoreOp storeOp;
6776 VkAttachmentLoadOp stencilLoadOp;
6777 VkAttachmentStoreOp stencilStoreOp;
6778 VkImageLayout initialLayout;
6779 VkImageLayout finalLayout;
6780} VkAttachmentDescription2;
6781
6782typedef struct VkAttachmentReference2 {
6783 VkStructureType sType;
6784 const void* pNext;
6785 uint32_t attachment;
6786 VkImageLayout layout;
6787 VkImageAspectFlags aspectMask;
6788} VkAttachmentReference2;
6789
6790typedef struct VkSubpassDescription2 {
6791 VkStructureType sType;
6792 const void* pNext;
6793 VkSubpassDescriptionFlags flags;
6794 VkPipelineBindPoint pipelineBindPoint;
6795 uint32_t viewMask;
6796 uint32_t inputAttachmentCount;
6797 const VkAttachmentReference2* pInputAttachments;
6798 uint32_t colorAttachmentCount;
6799 const VkAttachmentReference2* pColorAttachments;
6800 const VkAttachmentReference2* pResolveAttachments;
6801 const VkAttachmentReference2* pDepthStencilAttachment;
6802 uint32_t preserveAttachmentCount;
6803 const uint32_t* pPreserveAttachments;
6804} VkSubpassDescription2;
6805
6806typedef struct VkSubpassDependency2 {
6807 VkStructureType sType;
6808 const void* pNext;
6809 uint32_t srcSubpass;
6810 uint32_t dstSubpass;
6811 VkPipelineStageFlags srcStageMask;
6812 VkPipelineStageFlags dstStageMask;
6813 VkAccessFlags srcAccessMask;
6814 VkAccessFlags dstAccessMask;
6815 VkDependencyFlags dependencyFlags;
6816 int32_t viewOffset;
6817} VkSubpassDependency2;
6818
6819typedef struct VkRenderPassCreateInfo2 {
6820 VkStructureType sType;
6821 const void* pNext;
6822 VkRenderPassCreateFlags flags;
6823 uint32_t attachmentCount;
6824 const VkAttachmentDescription2* pAttachments;
6825 uint32_t subpassCount;
6826 const VkSubpassDescription2* pSubpasses;
6827 uint32_t dependencyCount;
6828 const VkSubpassDependency2* pDependencies;
6829 uint32_t correlatedViewMaskCount;
6830 const uint32_t* pCorrelatedViewMasks;
6831} VkRenderPassCreateInfo2;
6832
6833typedef struct VkSubpassBeginInfo {
6834 VkStructureType sType;
6835 const void* pNext;
6836 VkSubpassContents contents;
6837} VkSubpassBeginInfo;
6838
6839typedef struct VkSubpassEndInfo {
6840 VkStructureType sType;
6841 const void* pNext;
6842} VkSubpassEndInfo;
6843
6844typedef struct VkSubpassDescriptionDepthStencilResolve {
6845 VkStructureType sType;
6846 const void* pNext;
6847 VkResolveModeFlagBits depthResolveMode;
6848 VkResolveModeFlagBits stencilResolveMode;
6849 const VkAttachmentReference2* pDepthStencilResolveAttachment;
6850} VkSubpassDescriptionDepthStencilResolve;
6851
6852typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
6853 VkStructureType sType;
6854 void* pNext;
6855 VkResolveModeFlags supportedDepthResolveModes;
6856 VkResolveModeFlags supportedStencilResolveModes;
6857 VkBool32 independentResolveNone;
6858 VkBool32 independentResolve;
6859} VkPhysicalDeviceDepthStencilResolveProperties;
6860
6861typedef struct VkImageStencilUsageCreateInfo {
6862 VkStructureType sType;
6863 const void* pNext;
6864 VkImageUsageFlags stencilUsage;
6865} VkImageStencilUsageCreateInfo;
6866
6867typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
6868 VkStructureType sType;
6869 void* pNext;
6870 VkBool32 imagelessFramebuffer;
6871} VkPhysicalDeviceImagelessFramebufferFeatures;
6872
6873typedef struct VkFramebufferAttachmentImageInfo {
6874 VkStructureType sType;
6875 const void* pNext;
6876 VkImageCreateFlags flags;
6877 VkImageUsageFlags usage;
6878 uint32_t width;
6879 uint32_t height;
6880 uint32_t layerCount;
6881 uint32_t viewFormatCount;
6882 const VkFormat* pViewFormats;
6883} VkFramebufferAttachmentImageInfo;
6884
6885typedef struct VkFramebufferAttachmentsCreateInfo {
6886 VkStructureType sType;
6887 const void* pNext;
6888 uint32_t attachmentImageInfoCount;
6889 const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos;
6890} VkFramebufferAttachmentsCreateInfo;
6891
6892typedef struct VkRenderPassAttachmentBeginInfo {
6893 VkStructureType sType;
6894 const void* pNext;
6895 uint32_t attachmentCount;
6896 const VkImageView* pAttachments;
6897} VkRenderPassAttachmentBeginInfo;
6898
6899typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
6900 VkStructureType sType;
6901 void* pNext;
6902 VkBool32 separateDepthStencilLayouts;
6903} VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
6904
6905typedef struct VkAttachmentReferenceStencilLayout {
6906 VkStructureType sType;
6907 void* pNext;
6908 VkImageLayout stencilLayout;
6909} VkAttachmentReferenceStencilLayout;
6910
6911typedef struct VkAttachmentDescriptionStencilLayout {
6912 VkStructureType sType;
6913 void* pNext;
6914 VkImageLayout stencilInitialLayout;
6915 VkImageLayout stencilFinalLayout;
6916} VkAttachmentDescriptionStencilLayout;
6917
6918typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
6919typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
6920typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
6921typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
6922typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6923typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6924typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6925typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6926typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6927typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
6928typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
6929typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
6930typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
6931
6932#ifndef VK_NO_PROTOTYPES
6933VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
6934 VkDevice device,
6935 VkQueryPool queryPool,
6936 uint32_t firstQuery,
6937 uint32_t queryCount);
6938
6939VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
6940 VkDevice device,
6941 VkSemaphore semaphore,
6942 uint64_t* pValue);
6943
6944VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
6945 VkDevice device,
6946 const VkSemaphoreWaitInfo* pWaitInfo,
6947 uint64_t timeout);
6948
6949VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
6950 VkDevice device,
6951 const VkSemaphoreSignalInfo* pSignalInfo);
6952
6953VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
6954 VkDevice device,
6955 const VkBufferDeviceAddressInfo* pInfo);
6956
6957VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
6958 VkDevice device,
6959 const VkBufferDeviceAddressInfo* pInfo);
6960
6961VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
6962 VkDevice device,
6963 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6964
6965VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
6966 VkCommandBuffer commandBuffer,
6967 VkBuffer buffer,
6968 VkDeviceSize offset,
6969 VkBuffer countBuffer,
6970 VkDeviceSize countBufferOffset,
6971 uint32_t maxDrawCount,
6972 uint32_t stride);
6973
6974VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
6975 VkCommandBuffer commandBuffer,
6976 VkBuffer buffer,
6977 VkDeviceSize offset,
6978 VkBuffer countBuffer,
6979 VkDeviceSize countBufferOffset,
6980 uint32_t maxDrawCount,
6981 uint32_t stride);
6982
6983VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
6984 VkDevice device,
6985 const VkRenderPassCreateInfo2* pCreateInfo,
6986 const VkAllocationCallbacks* pAllocator,
6987 VkRenderPass* pRenderPass);
6988
6989VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
6990 VkCommandBuffer commandBuffer,
6991 const VkRenderPassBeginInfo* pRenderPassBegin,
6992 const VkSubpassBeginInfo* pSubpassBeginInfo);
6993
6994VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
6995 VkCommandBuffer commandBuffer,
6996 const VkSubpassBeginInfo* pSubpassBeginInfo,
6997 const VkSubpassEndInfo* pSubpassEndInfo);
6998
6999VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
7000 VkCommandBuffer commandBuffer,
7001 const VkSubpassEndInfo* pSubpassEndInfo);
7002#endif
7003
7004
7005// VK_VERSION_1_3 is a preprocessor guard. Do not pass it to API calls.
7006#define VK_VERSION_1_3 1
7007// Vulkan 1.3 version number
7008#define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
7009
7010typedef uint64_t VkFlags64;
7011VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
7012
7013typedef enum VkToolPurposeFlagBits {
7014 VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001,
7015 VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002,
7016 VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004,
7017 VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008,
7018 VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010,
7019 VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
7020 VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
7021 VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
7022 VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
7023 VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
7024 VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
7025 VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
7026 VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7027} VkToolPurposeFlagBits;
7028typedef VkFlags VkToolPurposeFlags;
7029typedef VkFlags VkPrivateDataSlotCreateFlags;
7030typedef VkFlags64 VkPipelineStageFlags2;
7031
7032// Flag bits for VkPipelineStageFlagBits2
7033typedef VkFlags64 VkPipelineStageFlagBits2;
7034static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL;
7035static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL;
7036static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL;
7037static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL;
7038static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL;
7039static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL;
7040static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL;
7041static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL;
7042static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL;
7043static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL;
7044static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL;
7045static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL;
7046static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL;
7047static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL;
7048static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL;
7049static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL;
7050static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL;
7051static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL;
7052static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL;
7053static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL;
7054static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL;
7055static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL;
7056static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL;
7057static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL;
7058static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL;
7059static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL;
7060static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
7061static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
7062static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL;
7063static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL;
7064static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL;
7065static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL;
7066static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL;
7067static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL;
7068static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL;
7069static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL;
7070static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL;
7071static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL;
7072static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL;
7073static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
7074static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
7075static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
7076static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
7077static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
7078static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
7079static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
7080static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL;
7081static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL;
7082static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL;
7083static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL;
7084static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL;
7085static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL;
7086static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
7087static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
7088static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
7089static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
7090static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
7091static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT = 0x00020000ULL;
7092static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
7093static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
7094static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
7095static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
7096static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
7097static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
7098static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
7099static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
7100static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
7101static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL;
7102static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL;
7103static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL;
7104// VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI is a legacy alias
7105static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
7106static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
7107static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
7108static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL;
7109static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL;
7110static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL;
7111static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV = 0x100000000000ULL;
7112static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARM = 0x40000000000ULL;
7113static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR = 0x400000000000ULL;
7114static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MEMORY_DECOMPRESSION_BIT_EXT = 0x200000000000ULL;
7115
7116typedef VkFlags64 VkAccessFlags2;
7117
7118// Flag bits for VkAccessFlagBits2
7119typedef VkFlags64 VkAccessFlagBits2;
7120static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL;
7121static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL;
7122static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL;
7123static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL;
7124static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL;
7125static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL;
7126static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL;
7127static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL;
7128static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL;
7129static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL;
7130static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL;
7131static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL;
7132static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL;
7133static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL;
7134static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL;
7135static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL;
7136static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL;
7137static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL;
7138static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL;
7139static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL;
7140static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL;
7141static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
7142static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
7143static const VkAccessFlagBits2 VK_ACCESS_2_SAMPLER_HEAP_READ_BIT_EXT = 0x200000000000000ULL;
7144static const VkAccessFlagBits2 VK_ACCESS_2_RESOURCE_HEAP_READ_BIT_EXT = 0x400000000000000ULL;
7145static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
7146static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
7147static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_TILE_ATTACHMENT_READ_BIT_QCOM = 0x8000000000000ULL;
7148static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_TILE_ATTACHMENT_WRITE_BIT_QCOM = 0x10000000000000ULL;
7149static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL;
7150static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL;
7151static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL;
7152static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL;
7153static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL;
7154static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL;
7155static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL;
7156static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL;
7157static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL;
7158static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL;
7159static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL;
7160static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL;
7161static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL;
7162static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL;
7163static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL;
7164static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL;
7165static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL;
7166static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL;
7167static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL;
7168static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
7169static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
7170static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
7171static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
7172static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
7173static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
7174static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
7175static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
7176static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000ULL;
7177static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000ULL;
7178static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
7179static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
7180static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
7181static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
7182static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
7183static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
7184static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
7185static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
7186static const VkAccessFlagBits2 VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL;
7187static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
7188static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL;
7189static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL;
7190static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL;
7191static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL;
7192static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL;
7193static const VkAccessFlagBits2 VK_ACCESS_2_DATA_GRAPH_READ_BIT_ARM = 0x800000000000ULL;
7194static const VkAccessFlagBits2 VK_ACCESS_2_DATA_GRAPH_WRITE_BIT_ARM = 0x1000000000000ULL;
7195static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_DECOMPRESSION_READ_BIT_EXT = 0x80000000000000ULL;
7196static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_DECOMPRESSION_WRITE_BIT_EXT = 0x100000000000000ULL;
7197
7198
7199typedef enum VkSubmitFlagBits {
7200 VK_SUBMIT_PROTECTED_BIT = 0x00000001,
7201 VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
7202 VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7203} VkSubmitFlagBits;
7204typedef VkFlags VkSubmitFlags;
7205typedef VkFlags64 VkFormatFeatureFlags2;
7206
7207// Flag bits for VkFormatFeatureFlagBits2
7208typedef VkFlags64 VkFormatFeatureFlagBits2;
7209static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL;
7210static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL;
7211static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL;
7212static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL;
7213static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL;
7214static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL;
7215static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL;
7216static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL;
7217static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL;
7218static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL;
7219static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL;
7220static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL;
7221static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL;
7222static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL;
7223static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL;
7224static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL;
7225static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL;
7226static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL;
7227static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL;
7228static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL;
7229static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL;
7230static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL;
7231static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL;
7232static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL;
7233static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL;
7234static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL;
7235static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL;
7236static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT = 0x400000000000ULL;
7237static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL;
7238static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL;
7239static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL;
7240static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL;
7241static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL;
7242static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL;
7243static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL;
7244static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL;
7245static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL;
7246static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL;
7247static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL;
7248static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
7249static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL;
7250static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL;
7251static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL;
7252static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL;
7253static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL;
7254static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL;
7255static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL;
7256static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL;
7257static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL;
7258static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL;
7259static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL;
7260static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL;
7261static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL;
7262static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL;
7263static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL;
7264static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL;
7265static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL;
7266static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL;
7267static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL;
7268static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL;
7269static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
7270static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL;
7271static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL;
7272static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER_BIT_NV = 0x8000000000000ULL;
7273static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
7274static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL;
7275static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL;
7276static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL;
7277static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL;
7278static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_SHADER_BIT_ARM = 0x8000000000ULL;
7279static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_IMAGE_ALIASING_BIT_ARM = 0x80000000000ULL;
7280static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL;
7281static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL;
7282static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL;
7283static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_DATA_GRAPH_BIT_ARM = 0x1000000000000ULL;
7284static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR = 0x800000000000000ULL;
7285static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x2000000000000ULL;
7286static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x4000000000000ULL;
7287static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_COMPUTE_QUEUE_BIT_KHR = 0x10000000000000ULL;
7288static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_TRANSFER_QUEUE_BIT_KHR = 0x20000000000000ULL;
7289static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_COMPUTE_QUEUE_BIT_KHR = 0x40000000000000ULL;
7290static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_TRANSFER_QUEUE_BIT_KHR = 0x80000000000000ULL;
7291
7292
7293typedef enum VkPipelineCreationFeedbackFlagBits {
7294 VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001,
7295 VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002,
7296 VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004,
7297 VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
7298 VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
7299 VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
7300 VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7301} VkPipelineCreationFeedbackFlagBits;
7302typedef VkFlags VkPipelineCreationFeedbackFlags;
7303
7304typedef enum VkRenderingFlagBits {
7305 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001,
7306 VK_RENDERING_SUSPENDING_BIT = 0x00000002,
7307 VK_RENDERING_RESUMING_BIT = 0x00000004,
7308 VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008,
7309 VK_RENDERING_CONTENTS_INLINE_BIT_KHR = 0x00000010,
7310 VK_RENDERING_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x00000020,
7311 VK_RENDERING_FRAGMENT_REGION_BIT_EXT = 0x00000040,
7312 VK_RENDERING_CUSTOM_RESOLVE_BIT_EXT = 0x00000080,
7313 VK_RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR = 0x00000100,
7314 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
7315 VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
7316 VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
7317 VK_RENDERING_CONTENTS_INLINE_BIT_EXT = VK_RENDERING_CONTENTS_INLINE_BIT_KHR,
7318 VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7319} VkRenderingFlagBits;
7320typedef VkFlags VkRenderingFlags;
7321typedef struct VkPhysicalDeviceVulkan13Features {
7322 VkStructureType sType;
7323 void* pNext;
7324 VkBool32 robustImageAccess;
7325 VkBool32 inlineUniformBlock;
7326 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
7327 VkBool32 pipelineCreationCacheControl;
7328 VkBool32 privateData;
7329 VkBool32 shaderDemoteToHelperInvocation;
7330 VkBool32 shaderTerminateInvocation;
7331 VkBool32 subgroupSizeControl;
7332 VkBool32 computeFullSubgroups;
7333 VkBool32 synchronization2;
7334 VkBool32 textureCompressionASTC_HDR;
7335 VkBool32 shaderZeroInitializeWorkgroupMemory;
7336 VkBool32 dynamicRendering;
7337 VkBool32 shaderIntegerDotProduct;
7338 VkBool32 maintenance4;
7339} VkPhysicalDeviceVulkan13Features;
7340
7341typedef struct VkPhysicalDeviceVulkan13Properties {
7342 VkStructureType sType;
7343 void* pNext;
7344 uint32_t minSubgroupSize;
7345 uint32_t maxSubgroupSize;
7346 uint32_t maxComputeWorkgroupSubgroups;
7347 VkShaderStageFlags requiredSubgroupSizeStages;
7348 uint32_t maxInlineUniformBlockSize;
7349 uint32_t maxPerStageDescriptorInlineUniformBlocks;
7350 uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7351 uint32_t maxDescriptorSetInlineUniformBlocks;
7352 uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7353 uint32_t maxInlineUniformTotalSize;
7354 VkBool32 integerDotProduct8BitUnsignedAccelerated;
7355 VkBool32 integerDotProduct8BitSignedAccelerated;
7356 VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
7357 VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
7358 VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
7359 VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7360 VkBool32 integerDotProduct16BitUnsignedAccelerated;
7361 VkBool32 integerDotProduct16BitSignedAccelerated;
7362 VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
7363 VkBool32 integerDotProduct32BitUnsignedAccelerated;
7364 VkBool32 integerDotProduct32BitSignedAccelerated;
7365 VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
7366 VkBool32 integerDotProduct64BitUnsignedAccelerated;
7367 VkBool32 integerDotProduct64BitSignedAccelerated;
7368 VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
7369 VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7370 VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7371 VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7372 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7373 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7374 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7375 VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7376 VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7377 VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7378 VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7379 VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7380 VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7381 VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7382 VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7383 VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7384 VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
7385 VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
7386 VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
7387 VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
7388 VkDeviceSize maxBufferSize;
7389} VkPhysicalDeviceVulkan13Properties;
7390
7391typedef struct VkPhysicalDeviceToolProperties {
7392 VkStructureType sType;
7393 void* pNext;
7394 char name[VK_MAX_EXTENSION_NAME_SIZE];
7395 char version[VK_MAX_EXTENSION_NAME_SIZE];
7396 VkToolPurposeFlags purposes;
7397 char description[VK_MAX_DESCRIPTION_SIZE];
7398 char layer[VK_MAX_EXTENSION_NAME_SIZE];
7399} VkPhysicalDeviceToolProperties;
7400
7401typedef struct VkPhysicalDevicePrivateDataFeatures {
7402 VkStructureType sType;
7403 void* pNext;
7404 VkBool32 privateData;
7405} VkPhysicalDevicePrivateDataFeatures;
7406
7407typedef struct VkDevicePrivateDataCreateInfo {
7408 VkStructureType sType;
7409 const void* pNext;
7410 uint32_t privateDataSlotRequestCount;
7411} VkDevicePrivateDataCreateInfo;
7412
7413typedef struct VkPrivateDataSlotCreateInfo {
7414 VkStructureType sType;
7415 const void* pNext;
7416 VkPrivateDataSlotCreateFlags flags;
7417} VkPrivateDataSlotCreateInfo;
7418
7419typedef struct VkMemoryBarrier2 {
7420 VkStructureType sType;
7421 const void* pNext;
7422 VkPipelineStageFlags2 srcStageMask;
7423 VkAccessFlags2 srcAccessMask;
7424 VkPipelineStageFlags2 dstStageMask;
7425 VkAccessFlags2 dstAccessMask;
7426} VkMemoryBarrier2;
7427
7428typedef struct VkBufferMemoryBarrier2 {
7429 VkStructureType sType;
7430 const void* pNext;
7431 VkPipelineStageFlags2 srcStageMask;
7432 VkAccessFlags2 srcAccessMask;
7433 VkPipelineStageFlags2 dstStageMask;
7434 VkAccessFlags2 dstAccessMask;
7435 uint32_t srcQueueFamilyIndex;
7436 uint32_t dstQueueFamilyIndex;
7437 VkBuffer buffer;
7438 VkDeviceSize offset;
7439 VkDeviceSize size;
7440} VkBufferMemoryBarrier2;
7441
7442typedef struct VkImageMemoryBarrier2 {
7443 VkStructureType sType;
7444 const void* pNext;
7445 VkPipelineStageFlags2 srcStageMask;
7446 VkAccessFlags2 srcAccessMask;
7447 VkPipelineStageFlags2 dstStageMask;
7448 VkAccessFlags2 dstAccessMask;
7449 VkImageLayout oldLayout;
7450 VkImageLayout newLayout;
7451 uint32_t srcQueueFamilyIndex;
7452 uint32_t dstQueueFamilyIndex;
7453 VkImage image;
7454 VkImageSubresourceRange subresourceRange;
7455} VkImageMemoryBarrier2;
7456
7457typedef struct VkDependencyInfo {
7458 VkStructureType sType;
7459 const void* pNext;
7460 VkDependencyFlags dependencyFlags;
7461 uint32_t memoryBarrierCount;
7462 const VkMemoryBarrier2* pMemoryBarriers;
7463 uint32_t bufferMemoryBarrierCount;
7464 const VkBufferMemoryBarrier2* pBufferMemoryBarriers;
7465 uint32_t imageMemoryBarrierCount;
7466 const VkImageMemoryBarrier2* pImageMemoryBarriers;
7467} VkDependencyInfo;
7468
7469typedef struct VkSemaphoreSubmitInfo {
7470 VkStructureType sType;
7471 const void* pNext;
7472 VkSemaphore semaphore;
7473 uint64_t value;
7474 VkPipelineStageFlags2 stageMask;
7475 uint32_t deviceIndex;
7476} VkSemaphoreSubmitInfo;
7477
7478typedef struct VkCommandBufferSubmitInfo {
7479 VkStructureType sType;
7480 const void* pNext;
7481 VkCommandBuffer commandBuffer;
7482 uint32_t deviceMask;
7483} VkCommandBufferSubmitInfo;
7484
7485typedef struct VkSubmitInfo2 {
7486 VkStructureType sType;
7487 const void* pNext;
7488 VkSubmitFlags flags;
7489 uint32_t waitSemaphoreInfoCount;
7490 const VkSemaphoreSubmitInfo* pWaitSemaphoreInfos;
7491 uint32_t commandBufferInfoCount;
7492 const VkCommandBufferSubmitInfo* pCommandBufferInfos;
7493 uint32_t signalSemaphoreInfoCount;
7494 const VkSemaphoreSubmitInfo* pSignalSemaphoreInfos;
7495} VkSubmitInfo2;
7496
7497typedef struct VkPhysicalDeviceSynchronization2Features {
7498 VkStructureType sType;
7499 void* pNext;
7500 VkBool32 synchronization2;
7501} VkPhysicalDeviceSynchronization2Features;
7502
7503typedef struct VkBufferCopy2 {
7504 VkStructureType sType;
7505 const void* pNext;
7506 VkDeviceSize srcOffset;
7507 VkDeviceSize dstOffset;
7508 VkDeviceSize size;
7509} VkBufferCopy2;
7510
7511typedef struct VkCopyBufferInfo2 {
7512 VkStructureType sType;
7513 const void* pNext;
7514 VkBuffer srcBuffer;
7515 VkBuffer dstBuffer;
7516 uint32_t regionCount;
7517 const VkBufferCopy2* pRegions;
7518} VkCopyBufferInfo2;
7519
7520typedef struct VkImageCopy2 {
7521 VkStructureType sType;
7522 const void* pNext;
7523 VkImageSubresourceLayers srcSubresource;
7524 VkOffset3D srcOffset;
7525 VkImageSubresourceLayers dstSubresource;
7526 VkOffset3D dstOffset;
7527 VkExtent3D extent;
7528} VkImageCopy2;
7529
7530typedef struct VkCopyImageInfo2 {
7531 VkStructureType sType;
7532 const void* pNext;
7533 VkImage srcImage;
7534 VkImageLayout srcImageLayout;
7535 VkImage dstImage;
7536 VkImageLayout dstImageLayout;
7537 uint32_t regionCount;
7538 const VkImageCopy2* pRegions;
7539} VkCopyImageInfo2;
7540
7541typedef struct VkBufferImageCopy2 {
7542 VkStructureType sType;
7543 const void* pNext;
7544 VkDeviceSize bufferOffset;
7545 uint32_t bufferRowLength;
7546 uint32_t bufferImageHeight;
7547 VkImageSubresourceLayers imageSubresource;
7548 VkOffset3D imageOffset;
7549 VkExtent3D imageExtent;
7550} VkBufferImageCopy2;
7551
7552typedef struct VkCopyBufferToImageInfo2 {
7553 VkStructureType sType;
7554 const void* pNext;
7555 VkBuffer srcBuffer;
7556 VkImage dstImage;
7557 VkImageLayout dstImageLayout;
7558 uint32_t regionCount;
7559 const VkBufferImageCopy2* pRegions;
7560} VkCopyBufferToImageInfo2;
7561
7562typedef struct VkCopyImageToBufferInfo2 {
7563 VkStructureType sType;
7564 const void* pNext;
7565 VkImage srcImage;
7566 VkImageLayout srcImageLayout;
7567 VkBuffer dstBuffer;
7568 uint32_t regionCount;
7569 const VkBufferImageCopy2* pRegions;
7570} VkCopyImageToBufferInfo2;
7571
7572typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
7573 VkStructureType sType;
7574 void* pNext;
7575 VkBool32 textureCompressionASTC_HDR;
7576} VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
7577
7578typedef struct VkFormatProperties3 {
7579 VkStructureType sType;
7580 void* pNext;
7581 VkFormatFeatureFlags2 linearTilingFeatures;
7582 VkFormatFeatureFlags2 optimalTilingFeatures;
7583 VkFormatFeatureFlags2 bufferFeatures;
7584} VkFormatProperties3;
7585
7586typedef struct VkPhysicalDeviceMaintenance4Features {
7587 VkStructureType sType;
7588 void* pNext;
7589 VkBool32 maintenance4;
7590} VkPhysicalDeviceMaintenance4Features;
7591
7592typedef struct VkPhysicalDeviceMaintenance4Properties {
7593 VkStructureType sType;
7594 void* pNext;
7595 VkDeviceSize maxBufferSize;
7596} VkPhysicalDeviceMaintenance4Properties;
7597
7598typedef struct VkDeviceBufferMemoryRequirements {
7599 VkStructureType sType;
7600 const void* pNext;
7601 const VkBufferCreateInfo* pCreateInfo;
7602} VkDeviceBufferMemoryRequirements;
7603
7604typedef struct VkDeviceImageMemoryRequirements {
7605 VkStructureType sType;
7606 const void* pNext;
7607 const VkImageCreateInfo* pCreateInfo;
7608 VkImageAspectFlagBits planeAspect;
7609} VkDeviceImageMemoryRequirements;
7610
7611typedef struct VkPipelineCreationFeedback {
7612 VkPipelineCreationFeedbackFlags flags;
7613 uint64_t duration;
7614} VkPipelineCreationFeedback;
7615
7616typedef struct VkPipelineCreationFeedbackCreateInfo {
7617 VkStructureType sType;
7618 const void* pNext;
7619 VkPipelineCreationFeedback* pPipelineCreationFeedback;
7620 uint32_t pipelineStageCreationFeedbackCount;
7621 VkPipelineCreationFeedback* pPipelineStageCreationFeedbacks;
7622} VkPipelineCreationFeedbackCreateInfo;
7623
7624typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
7625 VkStructureType sType;
7626 void* pNext;
7627 VkBool32 shaderTerminateInvocation;
7628} VkPhysicalDeviceShaderTerminateInvocationFeatures;
7629
7630typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
7631 VkStructureType sType;
7632 void* pNext;
7633 VkBool32 shaderDemoteToHelperInvocation;
7634} VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
7635
7636typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
7637 VkStructureType sType;
7638 void* pNext;
7639 VkBool32 pipelineCreationCacheControl;
7640} VkPhysicalDevicePipelineCreationCacheControlFeatures;
7641
7642typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
7643 VkStructureType sType;
7644 void* pNext;
7645 VkBool32 shaderZeroInitializeWorkgroupMemory;
7646} VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
7647
7648typedef struct VkPhysicalDeviceImageRobustnessFeatures {
7649 VkStructureType sType;
7650 void* pNext;
7651 VkBool32 robustImageAccess;
7652} VkPhysicalDeviceImageRobustnessFeatures;
7653
7654typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
7655 VkStructureType sType;
7656 void* pNext;
7657 VkBool32 subgroupSizeControl;
7658 VkBool32 computeFullSubgroups;
7659} VkPhysicalDeviceSubgroupSizeControlFeatures;
7660
7661typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
7662 VkStructureType sType;
7663 void* pNext;
7664 uint32_t minSubgroupSize;
7665 uint32_t maxSubgroupSize;
7666 uint32_t maxComputeWorkgroupSubgroups;
7667 VkShaderStageFlags requiredSubgroupSizeStages;
7668} VkPhysicalDeviceSubgroupSizeControlProperties;
7669
7670typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
7671 VkStructureType sType;
7672 const void* pNext;
7673 uint32_t requiredSubgroupSize;
7674} VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
7675
7676typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
7677 VkStructureType sType;
7678 void* pNext;
7679 VkBool32 inlineUniformBlock;
7680 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
7681} VkPhysicalDeviceInlineUniformBlockFeatures;
7682
7683typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
7684 VkStructureType sType;
7685 void* pNext;
7686 uint32_t maxInlineUniformBlockSize;
7687 uint32_t maxPerStageDescriptorInlineUniformBlocks;
7688 uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7689 uint32_t maxDescriptorSetInlineUniformBlocks;
7690 uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7691} VkPhysicalDeviceInlineUniformBlockProperties;
7692
7693typedef struct VkWriteDescriptorSetInlineUniformBlock {
7694 VkStructureType sType;
7695 const void* pNext;
7696 uint32_t dataSize;
7697 const void* pData;
7698} VkWriteDescriptorSetInlineUniformBlock;
7699
7700typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
7701 VkStructureType sType;
7702 const void* pNext;
7703 uint32_t maxInlineUniformBlockBindings;
7704} VkDescriptorPoolInlineUniformBlockCreateInfo;
7705
7706typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
7707 VkStructureType sType;
7708 void* pNext;
7709 VkBool32 shaderIntegerDotProduct;
7710} VkPhysicalDeviceShaderIntegerDotProductFeatures;
7711
7712typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
7713 VkStructureType sType;
7714 void* pNext;
7715 VkBool32 integerDotProduct8BitUnsignedAccelerated;
7716 VkBool32 integerDotProduct8BitSignedAccelerated;
7717 VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
7718 VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
7719 VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
7720 VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7721 VkBool32 integerDotProduct16BitUnsignedAccelerated;
7722 VkBool32 integerDotProduct16BitSignedAccelerated;
7723 VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
7724 VkBool32 integerDotProduct32BitUnsignedAccelerated;
7725 VkBool32 integerDotProduct32BitSignedAccelerated;
7726 VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
7727 VkBool32 integerDotProduct64BitUnsignedAccelerated;
7728 VkBool32 integerDotProduct64BitSignedAccelerated;
7729 VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
7730 VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7731 VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7732 VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7733 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7734 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7735 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7736 VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7737 VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7738 VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7739 VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7740 VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7741 VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7742 VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7743 VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7744 VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7745} VkPhysicalDeviceShaderIntegerDotProductProperties;
7746
7747typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
7748 VkStructureType sType;
7749 void* pNext;
7750 VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
7751 VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
7752 VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
7753 VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
7754} VkPhysicalDeviceTexelBufferAlignmentProperties;
7755
7756typedef struct VkImageBlit2 {
7757 VkStructureType sType;
7758 const void* pNext;
7759 VkImageSubresourceLayers srcSubresource;
7760 VkOffset3D srcOffsets[2];
7761 VkImageSubresourceLayers dstSubresource;
7762 VkOffset3D dstOffsets[2];
7763} VkImageBlit2;
7764
7765typedef struct VkBlitImageInfo2 {
7766 VkStructureType sType;
7767 const void* pNext;
7768 VkImage srcImage;
7769 VkImageLayout srcImageLayout;
7770 VkImage dstImage;
7771 VkImageLayout dstImageLayout;
7772 uint32_t regionCount;
7773 const VkImageBlit2* pRegions;
7774 VkFilter filter;
7775} VkBlitImageInfo2;
7776
7777typedef struct VkImageResolve2 {
7778 VkStructureType sType;
7779 const void* pNext;
7780 VkImageSubresourceLayers srcSubresource;
7781 VkOffset3D srcOffset;
7782 VkImageSubresourceLayers dstSubresource;
7783 VkOffset3D dstOffset;
7784 VkExtent3D extent;
7785} VkImageResolve2;
7786
7787typedef struct VkResolveImageInfo2 {
7788 VkStructureType sType;
7789 const void* pNext;
7790 VkImage srcImage;
7791 VkImageLayout srcImageLayout;
7792 VkImage dstImage;
7793 VkImageLayout dstImageLayout;
7794 uint32_t regionCount;
7795 const VkImageResolve2* pRegions;
7796} VkResolveImageInfo2;
7797
7798typedef struct VkRenderingAttachmentInfo {
7799 VkStructureType sType;
7800 const void* pNext;
7801 VkImageView imageView;
7802 VkImageLayout imageLayout;
7803 VkResolveModeFlagBits resolveMode;
7804 VkImageView resolveImageView;
7805 VkImageLayout resolveImageLayout;
7806 VkAttachmentLoadOp loadOp;
7807 VkAttachmentStoreOp storeOp;
7808 VkClearValue clearValue;
7809} VkRenderingAttachmentInfo;
7810
7811typedef struct VkRenderingInfo {
7812 VkStructureType sType;
7813 const void* pNext;
7814 VkRenderingFlags flags;
7815 VkRect2D renderArea;
7816 uint32_t layerCount;
7817 uint32_t viewMask;
7818 uint32_t colorAttachmentCount;
7819 const VkRenderingAttachmentInfo* pColorAttachments;
7820 const VkRenderingAttachmentInfo* pDepthAttachment;
7821 const VkRenderingAttachmentInfo* pStencilAttachment;
7822} VkRenderingInfo;
7823
7824typedef struct VkPipelineRenderingCreateInfo {
7825 VkStructureType sType;
7826 const void* pNext;
7827 uint32_t viewMask;
7828 uint32_t colorAttachmentCount;
7829 const VkFormat* pColorAttachmentFormats;
7830 VkFormat depthAttachmentFormat;
7831 VkFormat stencilAttachmentFormat;
7832} VkPipelineRenderingCreateInfo;
7833
7834typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
7835 VkStructureType sType;
7836 void* pNext;
7837 VkBool32 dynamicRendering;
7838} VkPhysicalDeviceDynamicRenderingFeatures;
7839
7840typedef struct VkCommandBufferInheritanceRenderingInfo {
7841 VkStructureType sType;
7842 const void* pNext;
7843 VkRenderingFlags flags;
7844 uint32_t viewMask;
7845 uint32_t colorAttachmentCount;
7846 const VkFormat* pColorAttachmentFormats;
7847 VkFormat depthAttachmentFormat;
7848 VkFormat stencilAttachmentFormat;
7849 VkSampleCountFlagBits rasterizationSamples;
7850} VkCommandBufferInheritanceRenderingInfo;
7851
7852typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
7853typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
7854typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
7855typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
7856typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
7857typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
7858typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
7859typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
7860typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
7861typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
7862typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
7863typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
7864typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7865typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7866typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
7867typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
7868typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
7869typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
7870typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
7871typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
7872typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
7873typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer commandBuffer);
7874typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
7875typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
7876typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
7877typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
7878typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
7879typedef 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);
7880typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
7881typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
7882typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
7883typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
7884typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
7885typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
7886typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
7887typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
7888typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
7889
7890#ifndef VK_NO_PROTOTYPES
7891VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties(
7892 VkPhysicalDevice physicalDevice,
7893 uint32_t* pToolCount,
7894 VkPhysicalDeviceToolProperties* pToolProperties);
7895
7896VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot(
7897 VkDevice device,
7898 const VkPrivateDataSlotCreateInfo* pCreateInfo,
7899 const VkAllocationCallbacks* pAllocator,
7900 VkPrivateDataSlot* pPrivateDataSlot);
7901
7902VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot(
7903 VkDevice device,
7904 VkPrivateDataSlot privateDataSlot,
7905 const VkAllocationCallbacks* pAllocator);
7906
7907VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData(
7908 VkDevice device,
7909 VkObjectType objectType,
7910 uint64_t objectHandle,
7911 VkPrivateDataSlot privateDataSlot,
7912 uint64_t data);
7913
7914VKAPI_ATTR void VKAPI_CALL vkGetPrivateData(
7915 VkDevice device,
7916 VkObjectType objectType,
7917 uint64_t objectHandle,
7918 VkPrivateDataSlot privateDataSlot,
7919 uint64_t* pData);
7920
7921VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2(
7922 VkCommandBuffer commandBuffer,
7923 const VkDependencyInfo* pDependencyInfo);
7924
7925VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2(
7926 VkCommandBuffer commandBuffer,
7927 VkPipelineStageFlags2 stage,
7928 VkQueryPool queryPool,
7929 uint32_t query);
7930
7931VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2(
7932 VkQueue queue,
7933 uint32_t submitCount,
7934 const VkSubmitInfo2* pSubmits,
7935 VkFence fence);
7936
7937VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2(
7938 VkCommandBuffer commandBuffer,
7939 const VkCopyBufferInfo2* pCopyBufferInfo);
7940
7941VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2(
7942 VkCommandBuffer commandBuffer,
7943 const VkCopyImageInfo2* pCopyImageInfo);
7944
7945VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2(
7946 VkCommandBuffer commandBuffer,
7947 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
7948
7949VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2(
7950 VkCommandBuffer commandBuffer,
7951 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
7952
7953VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements(
7954 VkDevice device,
7955 const VkDeviceBufferMemoryRequirements* pInfo,
7956 VkMemoryRequirements2* pMemoryRequirements);
7957
7958VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements(
7959 VkDevice device,
7960 const VkDeviceImageMemoryRequirements* pInfo,
7961 VkMemoryRequirements2* pMemoryRequirements);
7962
7963VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements(
7964 VkDevice device,
7965 const VkDeviceImageMemoryRequirements* pInfo,
7966 uint32_t* pSparseMemoryRequirementCount,
7967 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
7968
7969VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2(
7970 VkCommandBuffer commandBuffer,
7971 VkEvent event,
7972 const VkDependencyInfo* pDependencyInfo);
7973
7974VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2(
7975 VkCommandBuffer commandBuffer,
7976 VkEvent event,
7977 VkPipelineStageFlags2 stageMask);
7978
7979VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2(
7980 VkCommandBuffer commandBuffer,
7981 uint32_t eventCount,
7982 const VkEvent* pEvents,
7983 const VkDependencyInfo* pDependencyInfos);
7984
7985VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2(
7986 VkCommandBuffer commandBuffer,
7987 const VkBlitImageInfo2* pBlitImageInfo);
7988
7989VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2(
7990 VkCommandBuffer commandBuffer,
7991 const VkResolveImageInfo2* pResolveImageInfo);
7992
7993VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering(
7994 VkCommandBuffer commandBuffer,
7995 const VkRenderingInfo* pRenderingInfo);
7996
7997VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering(
7998 VkCommandBuffer commandBuffer);
7999
8000VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode(
8001 VkCommandBuffer commandBuffer,
8002 VkCullModeFlags cullMode);
8003
8004VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace(
8005 VkCommandBuffer commandBuffer,
8006 VkFrontFace frontFace);
8007
8008VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology(
8009 VkCommandBuffer commandBuffer,
8010 VkPrimitiveTopology primitiveTopology);
8011
8012VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount(
8013 VkCommandBuffer commandBuffer,
8014 uint32_t viewportCount,
8015 const VkViewport* pViewports);
8016
8017VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount(
8018 VkCommandBuffer commandBuffer,
8019 uint32_t scissorCount,
8020 const VkRect2D* pScissors);
8021
8022VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2(
8023 VkCommandBuffer commandBuffer,
8024 uint32_t firstBinding,
8025 uint32_t bindingCount,
8026 const VkBuffer* pBuffers,
8027 const VkDeviceSize* pOffsets,
8028 const VkDeviceSize* pSizes,
8029 const VkDeviceSize* pStrides);
8030
8031VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable(
8032 VkCommandBuffer commandBuffer,
8033 VkBool32 depthTestEnable);
8034
8035VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable(
8036 VkCommandBuffer commandBuffer,
8037 VkBool32 depthWriteEnable);
8038
8039VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp(
8040 VkCommandBuffer commandBuffer,
8041 VkCompareOp depthCompareOp);
8042
8043VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable(
8044 VkCommandBuffer commandBuffer,
8045 VkBool32 depthBoundsTestEnable);
8046
8047VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable(
8048 VkCommandBuffer commandBuffer,
8049 VkBool32 stencilTestEnable);
8050
8051VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp(
8052 VkCommandBuffer commandBuffer,
8053 VkStencilFaceFlags faceMask,
8054 VkStencilOp failOp,
8055 VkStencilOp passOp,
8056 VkStencilOp depthFailOp,
8057 VkCompareOp compareOp);
8058
8059VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable(
8060 VkCommandBuffer commandBuffer,
8061 VkBool32 rasterizerDiscardEnable);
8062
8063VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable(
8064 VkCommandBuffer commandBuffer,
8065 VkBool32 depthBiasEnable);
8066
8067VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable(
8068 VkCommandBuffer commandBuffer,
8069 VkBool32 primitiveRestartEnable);
8070#endif
8071
8072
8073// VK_VERSION_1_4 is a preprocessor guard. Do not pass it to API calls.
8074#define VK_VERSION_1_4 1
8075// Vulkan 1.4 version number
8076#define VK_API_VERSION_1_4 VK_MAKE_API_VERSION(0, 1, 4, 0)// Patch version should always be set to 0
8077
8078#define VK_MAX_GLOBAL_PRIORITY_SIZE 16U
8079
8080typedef enum VkPipelineRobustnessBufferBehavior {
8081 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT = 0,
8082 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED = 1,
8083 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS = 2,
8084 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 = 3,
8085 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT,
8086 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED,
8087 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,
8088 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,
8089 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
8090} VkPipelineRobustnessBufferBehavior;
8091
8092typedef enum VkPipelineRobustnessImageBehavior {
8093 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT = 0,
8094 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED = 1,
8095 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS = 2,
8096 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2 = 3,
8097 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT,
8098 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED,
8099 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS,
8100 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2,
8101 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
8102} VkPipelineRobustnessImageBehavior;
8103
8104typedef enum VkQueueGlobalPriority {
8105 VK_QUEUE_GLOBAL_PRIORITY_LOW = 128,
8106 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM = 256,
8107 VK_QUEUE_GLOBAL_PRIORITY_HIGH = 512,
8108 VK_QUEUE_GLOBAL_PRIORITY_REALTIME = 1024,
8109 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW,
8110 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
8111 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
8112 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
8113 VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = VK_QUEUE_GLOBAL_PRIORITY_LOW,
8114 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
8115 VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
8116 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
8117 VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM = 0x7FFFFFFF
8118} VkQueueGlobalPriority;
8119
8120typedef enum VkLineRasterizationMode {
8121 VK_LINE_RASTERIZATION_MODE_DEFAULT = 0,
8122 VK_LINE_RASTERIZATION_MODE_RECTANGULAR = 1,
8123 VK_LINE_RASTERIZATION_MODE_BRESENHAM = 2,
8124 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH = 3,
8125 VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT,
8126 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
8127 VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
8128 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
8129 VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR = VK_LINE_RASTERIZATION_MODE_DEFAULT,
8130 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
8131 VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
8132 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
8133 VK_LINE_RASTERIZATION_MODE_MAX_ENUM = 0x7FFFFFFF
8134} VkLineRasterizationMode;
8135
8136typedef enum VkMemoryUnmapFlagBits {
8137 VK_MEMORY_UNMAP_RESERVE_BIT_EXT = 0x00000001,
8138 VK_MEMORY_UNMAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
8139} VkMemoryUnmapFlagBits;
8140typedef VkFlags VkMemoryUnmapFlags;
8141typedef VkFlags64 VkBufferUsageFlags2;
8142
8143// Flag bits for VkBufferUsageFlagBits2
8144typedef VkFlags64 VkBufferUsageFlagBits2;
8145static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT = 0x00000001ULL;
8146static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT = 0x00000002ULL;
8147static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004ULL;
8148static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000008ULL;
8149static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT = 0x00000010ULL;
8150static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT = 0x00000020ULL;
8151static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT = 0x00000040ULL;
8152static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT = 0x00000080ULL;
8153static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT = 0x00000100ULL;
8154static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT = 0x00020000ULL;
8155#ifdef VK_ENABLE_BETA_EXTENSIONS
8156static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL;
8157#endif
8158static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXT = 0x10000000ULL;
8159static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL;
8160static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL;
8161static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL;
8162static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
8163static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x00000010ULL;
8164static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x00000020ULL;
8165static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL;
8166static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL;
8167static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL;
8168static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL;
8169static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL;
8170static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL;
8171static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL;
8172static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL;
8173static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL;
8174static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL;
8175static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL;
8176static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL;
8177static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ULL;
8178static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL;
8179static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL;
8180static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL;
8181static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL;
8182static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL;
8183static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL;
8184static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL;
8185#ifdef VK_ENABLE_BETA_EXTENSIONS
8186static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX = 0x200000000ULL;
8187#endif
8188static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM = 0x20000000ULL;
8189static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM = 0x08000000ULL;
8190static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT = 0x100000000ULL;
8191static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT = 0x80000000ULL;
8192
8193
8194typedef enum VkHostImageCopyFlagBits {
8195 VK_HOST_IMAGE_COPY_MEMCPY_BIT = 0x00000001,
8196 // VK_HOST_IMAGE_COPY_MEMCPY is a legacy alias
8197 VK_HOST_IMAGE_COPY_MEMCPY = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
8198 VK_HOST_IMAGE_COPY_MEMCPY_BIT_EXT = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
8199 // VK_HOST_IMAGE_COPY_MEMCPY_EXT is a legacy alias
8200 VK_HOST_IMAGE_COPY_MEMCPY_EXT = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
8201 VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
8202} VkHostImageCopyFlagBits;
8203typedef VkFlags VkHostImageCopyFlags;
8204typedef VkFlags64 VkPipelineCreateFlags2;
8205
8206// Flag bits for VkPipelineCreateFlagBits2
8207typedef VkFlags64 VkPipelineCreateFlagBits2;
8208static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT = 0x00000001ULL;
8209static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT = 0x00000002ULL;
8210static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT = 0x00000004ULL;
8211static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008ULL;
8212static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT = 0x00000010ULL;
8213static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100ULL;
8214static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200ULL;
8215static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT = 0x08000000ULL;
8216static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT = 0x40000000ULL;
8217#ifdef VK_ENABLE_BETA_EXTENSIONS
8218static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX = 0x100000000ULL;
8219#endif
8220static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT = 0x1000000000ULL;
8221static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_BUILT_IN_PRIMITIVES_BIT_KHR = 0x00001000ULL;
8222static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_BIT_NV = 0x200000000ULL;
8223static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x400000000ULL;
8224static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL;
8225static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL;
8226static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL;
8227static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL;
8228static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL;
8229static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ULL;
8230static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ULL;
8231static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ULL;
8232static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ULL;
8233static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ULL;
8234static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ULL;
8235static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ULL;
8236static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ULL;
8237static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ULL;
8238static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ULL;
8239static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000ULL;
8240static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ULL;
8241static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ULL;
8242static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ULL;
8243static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ULL;
8244static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ULL;
8245static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL;
8246static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL;
8247static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL;
8248static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL;
8249static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL;
8250static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL;
8251static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL;
8252static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL;
8253static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL;
8254static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL;
8255static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISALLOW_OPACITY_MICROMAP_BIT_ARM = 0x2000000000ULL;
8256static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = 0x80000000ULL;
8257static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT = 0x4000000000ULL;
8258static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x10000000000ULL;
8259static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_64_BIT_INDEXING_BIT_EXT = 0x80000000000ULL;
8260
8261typedef struct VkPhysicalDeviceVulkan14Features {
8262 VkStructureType sType;
8263 void* pNext;
8264 VkBool32 globalPriorityQuery;
8265 VkBool32 shaderSubgroupRotate;
8266 VkBool32 shaderSubgroupRotateClustered;
8267 VkBool32 shaderFloatControls2;
8268 VkBool32 shaderExpectAssume;
8269 VkBool32 rectangularLines;
8270 VkBool32 bresenhamLines;
8271 VkBool32 smoothLines;
8272 VkBool32 stippledRectangularLines;
8273 VkBool32 stippledBresenhamLines;
8274 VkBool32 stippledSmoothLines;
8275 VkBool32 vertexAttributeInstanceRateDivisor;
8276 VkBool32 vertexAttributeInstanceRateZeroDivisor;
8277 VkBool32 indexTypeUint8;
8278 VkBool32 dynamicRenderingLocalRead;
8279 VkBool32 maintenance5;
8280 VkBool32 maintenance6;
8281 VkBool32 pipelineProtectedAccess;
8282 VkBool32 pipelineRobustness;
8283 VkBool32 hostImageCopy;
8284 VkBool32 pushDescriptor;
8285} VkPhysicalDeviceVulkan14Features;
8286
8287typedef struct VkPhysicalDeviceVulkan14Properties {
8288 VkStructureType sType;
8289 void* pNext;
8290 uint32_t lineSubPixelPrecisionBits;
8291 uint32_t maxVertexAttribDivisor;
8292 VkBool32 supportsNonZeroFirstInstance;
8293 uint32_t maxPushDescriptors;
8294 VkBool32 dynamicRenderingLocalReadDepthStencilAttachments;
8295 VkBool32 dynamicRenderingLocalReadMultisampledAttachments;
8296 VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting;
8297 VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting;
8298 VkBool32 depthStencilSwizzleOneSupport;
8299 VkBool32 polygonModePointSize;
8300 VkBool32 nonStrictSinglePixelWideLinesUseParallelogram;
8301 VkBool32 nonStrictWideLinesUseParallelogram;
8302 VkBool32 blockTexelViewCompatibleMultipleLayers;
8303 uint32_t maxCombinedImageSamplerDescriptorCount;
8304 VkBool32 fragmentShadingRateClampCombinerInputs;
8305 VkPipelineRobustnessBufferBehavior defaultRobustnessStorageBuffers;
8306 VkPipelineRobustnessBufferBehavior defaultRobustnessUniformBuffers;
8307 VkPipelineRobustnessBufferBehavior defaultRobustnessVertexInputs;
8308 VkPipelineRobustnessImageBehavior defaultRobustnessImages;
8309 uint32_t copySrcLayoutCount;
8310 VkImageLayout* pCopySrcLayouts;
8311 uint32_t copyDstLayoutCount;
8312 VkImageLayout* pCopyDstLayouts;
8313 uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE];
8314 VkBool32 identicalMemoryTypeRequirements;
8315} VkPhysicalDeviceVulkan14Properties;
8316
8317typedef struct VkDeviceQueueGlobalPriorityCreateInfo {
8318 VkStructureType sType;
8319 const void* pNext;
8320 VkQueueGlobalPriority globalPriority;
8321} VkDeviceQueueGlobalPriorityCreateInfo;
8322
8323typedef struct VkPhysicalDeviceGlobalPriorityQueryFeatures {
8324 VkStructureType sType;
8325 void* pNext;
8326 VkBool32 globalPriorityQuery;
8327} VkPhysicalDeviceGlobalPriorityQueryFeatures;
8328
8329typedef struct VkQueueFamilyGlobalPriorityProperties {
8330 VkStructureType sType;
8331 void* pNext;
8332 uint32_t priorityCount;
8333 VkQueueGlobalPriority priorities[VK_MAX_GLOBAL_PRIORITY_SIZE];
8334} VkQueueFamilyGlobalPriorityProperties;
8335
8336typedef struct VkPhysicalDeviceIndexTypeUint8Features {
8337 VkStructureType sType;
8338 void* pNext;
8339 VkBool32 indexTypeUint8;
8340} VkPhysicalDeviceIndexTypeUint8Features;
8341
8342typedef struct VkMemoryMapInfo {
8343 VkStructureType sType;
8344 const void* pNext;
8345 VkMemoryMapFlags flags;
8346 VkDeviceMemory memory;
8347 VkDeviceSize offset;
8348 VkDeviceSize size;
8349} VkMemoryMapInfo;
8350
8351typedef struct VkMemoryUnmapInfo {
8352 VkStructureType sType;
8353 const void* pNext;
8354 VkMemoryUnmapFlags flags;
8355 VkDeviceMemory memory;
8356} VkMemoryUnmapInfo;
8357
8358typedef struct VkPhysicalDeviceMaintenance5Features {
8359 VkStructureType sType;
8360 void* pNext;
8361 VkBool32 maintenance5;
8362} VkPhysicalDeviceMaintenance5Features;
8363
8364typedef struct VkPhysicalDeviceMaintenance5Properties {
8365 VkStructureType sType;
8366 void* pNext;
8367 VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting;
8368 VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting;
8369 VkBool32 depthStencilSwizzleOneSupport;
8370 VkBool32 polygonModePointSize;
8371 VkBool32 nonStrictSinglePixelWideLinesUseParallelogram;
8372 VkBool32 nonStrictWideLinesUseParallelogram;
8373} VkPhysicalDeviceMaintenance5Properties;
8374
8375typedef struct VkImageSubresource2 {
8376 VkStructureType sType;
8377 void* pNext;
8378 VkImageSubresource imageSubresource;
8379} VkImageSubresource2;
8380
8381typedef struct VkDeviceImageSubresourceInfo {
8382 VkStructureType sType;
8383 const void* pNext;
8384 const VkImageCreateInfo* pCreateInfo;
8385 const VkImageSubresource2* pSubresource;
8386} VkDeviceImageSubresourceInfo;
8387
8388typedef struct VkSubresourceLayout2 {
8389 VkStructureType sType;
8390 void* pNext;
8391 VkSubresourceLayout subresourceLayout;
8392} VkSubresourceLayout2;
8393
8394typedef struct VkBufferUsageFlags2CreateInfo {
8395 VkStructureType sType;
8396 const void* pNext;
8397 VkBufferUsageFlags2 usage;
8398} VkBufferUsageFlags2CreateInfo;
8399
8400typedef struct VkPhysicalDeviceMaintenance6Features {
8401 VkStructureType sType;
8402 void* pNext;
8403 VkBool32 maintenance6;
8404} VkPhysicalDeviceMaintenance6Features;
8405
8406typedef struct VkPhysicalDeviceMaintenance6Properties {
8407 VkStructureType sType;
8408 void* pNext;
8409 VkBool32 blockTexelViewCompatibleMultipleLayers;
8410 uint32_t maxCombinedImageSamplerDescriptorCount;
8411 VkBool32 fragmentShadingRateClampCombinerInputs;
8412} VkPhysicalDeviceMaintenance6Properties;
8413
8414typedef struct VkBindMemoryStatus {
8415 VkStructureType sType;
8416 const void* pNext;
8417 VkResult* pResult;
8418} VkBindMemoryStatus;
8419
8420typedef struct VkPhysicalDeviceHostImageCopyFeatures {
8421 VkStructureType sType;
8422 void* pNext;
8423 VkBool32 hostImageCopy;
8424} VkPhysicalDeviceHostImageCopyFeatures;
8425
8426typedef struct VkPhysicalDeviceHostImageCopyProperties {
8427 VkStructureType sType;
8428 void* pNext;
8429 uint32_t copySrcLayoutCount;
8430 VkImageLayout* pCopySrcLayouts;
8431 uint32_t copyDstLayoutCount;
8432 VkImageLayout* pCopyDstLayouts;
8433 uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE];
8434 VkBool32 identicalMemoryTypeRequirements;
8435} VkPhysicalDeviceHostImageCopyProperties;
8436
8437typedef struct VkMemoryToImageCopy {
8438 VkStructureType sType;
8439 const void* pNext;
8440 const void* pHostPointer;
8441 uint32_t memoryRowLength;
8442 uint32_t memoryImageHeight;
8443 VkImageSubresourceLayers imageSubresource;
8444 VkOffset3D imageOffset;
8445 VkExtent3D imageExtent;
8446} VkMemoryToImageCopy;
8447
8448typedef struct VkImageToMemoryCopy {
8449 VkStructureType sType;
8450 const void* pNext;
8451 void* pHostPointer;
8452 uint32_t memoryRowLength;
8453 uint32_t memoryImageHeight;
8454 VkImageSubresourceLayers imageSubresource;
8455 VkOffset3D imageOffset;
8456 VkExtent3D imageExtent;
8457} VkImageToMemoryCopy;
8458
8459typedef struct VkCopyMemoryToImageInfo {
8460 VkStructureType sType;
8461 const void* pNext;
8462 VkHostImageCopyFlags flags;
8463 VkImage dstImage;
8464 VkImageLayout dstImageLayout;
8465 uint32_t regionCount;
8466 const VkMemoryToImageCopy* pRegions;
8467} VkCopyMemoryToImageInfo;
8468
8469typedef struct VkCopyImageToMemoryInfo {
8470 VkStructureType sType;
8471 const void* pNext;
8472 VkHostImageCopyFlags flags;
8473 VkImage srcImage;
8474 VkImageLayout srcImageLayout;
8475 uint32_t regionCount;
8476 const VkImageToMemoryCopy* pRegions;
8477} VkCopyImageToMemoryInfo;
8478
8479typedef struct VkCopyImageToImageInfo {
8480 VkStructureType sType;
8481 const void* pNext;
8482 VkHostImageCopyFlags flags;
8483 VkImage srcImage;
8484 VkImageLayout srcImageLayout;
8485 VkImage dstImage;
8486 VkImageLayout dstImageLayout;
8487 uint32_t regionCount;
8488 const VkImageCopy2* pRegions;
8489} VkCopyImageToImageInfo;
8490
8491typedef struct VkHostImageLayoutTransitionInfo {
8492 VkStructureType sType;
8493 const void* pNext;
8494 VkImage image;
8495 VkImageLayout oldLayout;
8496 VkImageLayout newLayout;
8497 VkImageSubresourceRange subresourceRange;
8498} VkHostImageLayoutTransitionInfo;
8499
8500typedef struct VkSubresourceHostMemcpySize {
8501 VkStructureType sType;
8502 void* pNext;
8503 VkDeviceSize size;
8504} VkSubresourceHostMemcpySize;
8505
8506typedef struct VkHostImageCopyDevicePerformanceQuery {
8507 VkStructureType sType;
8508 void* pNext;
8509 VkBool32 optimalDeviceAccess;
8510 VkBool32 identicalMemoryLayout;
8511} VkHostImageCopyDevicePerformanceQuery;
8512
8513typedef struct VkPhysicalDeviceShaderSubgroupRotateFeatures {
8514 VkStructureType sType;
8515 void* pNext;
8516 VkBool32 shaderSubgroupRotate;
8517 VkBool32 shaderSubgroupRotateClustered;
8518} VkPhysicalDeviceShaderSubgroupRotateFeatures;
8519
8520typedef struct VkPhysicalDeviceShaderFloatControls2Features {
8521 VkStructureType sType;
8522 void* pNext;
8523 VkBool32 shaderFloatControls2;
8524} VkPhysicalDeviceShaderFloatControls2Features;
8525
8526typedef struct VkPhysicalDeviceShaderExpectAssumeFeatures {
8527 VkStructureType sType;
8528 void* pNext;
8529 VkBool32 shaderExpectAssume;
8530} VkPhysicalDeviceShaderExpectAssumeFeatures;
8531
8532typedef struct VkPipelineCreateFlags2CreateInfo {
8533 VkStructureType sType;
8534 const void* pNext;
8535 VkPipelineCreateFlags2 flags;
8536} VkPipelineCreateFlags2CreateInfo;
8537
8538typedef struct VkPhysicalDevicePushDescriptorProperties {
8539 VkStructureType sType;
8540 void* pNext;
8541 uint32_t maxPushDescriptors;
8542} VkPhysicalDevicePushDescriptorProperties;
8543
8544typedef struct VkBindDescriptorSetsInfo {
8545 VkStructureType sType;
8546 const void* pNext;
8547 VkShaderStageFlags stageFlags;
8548 VkPipelineLayout layout;
8549 uint32_t firstSet;
8550 uint32_t descriptorSetCount;
8551 const VkDescriptorSet* pDescriptorSets;
8552 uint32_t dynamicOffsetCount;
8553 const uint32_t* pDynamicOffsets;
8554} VkBindDescriptorSetsInfo;
8555
8556typedef struct VkPushConstantsInfo {
8557 VkStructureType sType;
8558 const void* pNext;
8559 VkPipelineLayout layout;
8560 VkShaderStageFlags stageFlags;
8561 uint32_t offset;
8562 uint32_t size;
8563 const void* pValues;
8564} VkPushConstantsInfo;
8565
8566typedef struct VkPushDescriptorSetInfo {
8567 VkStructureType sType;
8568 const void* pNext;
8569 VkShaderStageFlags stageFlags;
8570 VkPipelineLayout layout;
8571 uint32_t set;
8572 uint32_t descriptorWriteCount;
8573 const VkWriteDescriptorSet* pDescriptorWrites;
8574} VkPushDescriptorSetInfo;
8575
8576typedef struct VkPushDescriptorSetWithTemplateInfo {
8577 VkStructureType sType;
8578 const void* pNext;
8579 VkDescriptorUpdateTemplate descriptorUpdateTemplate;
8580 VkPipelineLayout layout;
8581 uint32_t set;
8582 const void* pData;
8583} VkPushDescriptorSetWithTemplateInfo;
8584
8585typedef struct VkPhysicalDevicePipelineProtectedAccessFeatures {
8586 VkStructureType sType;
8587 void* pNext;
8588 VkBool32 pipelineProtectedAccess;
8589} VkPhysicalDevicePipelineProtectedAccessFeatures;
8590
8591typedef struct VkPhysicalDevicePipelineRobustnessFeatures {
8592 VkStructureType sType;
8593 void* pNext;
8594 VkBool32 pipelineRobustness;
8595} VkPhysicalDevicePipelineRobustnessFeatures;
8596
8597typedef struct VkPhysicalDevicePipelineRobustnessProperties {
8598 VkStructureType sType;
8599 void* pNext;
8600 VkPipelineRobustnessBufferBehavior defaultRobustnessStorageBuffers;
8601 VkPipelineRobustnessBufferBehavior defaultRobustnessUniformBuffers;
8602 VkPipelineRobustnessBufferBehavior defaultRobustnessVertexInputs;
8603 VkPipelineRobustnessImageBehavior defaultRobustnessImages;
8604} VkPhysicalDevicePipelineRobustnessProperties;
8605
8606typedef struct VkPipelineRobustnessCreateInfo {
8607 VkStructureType sType;
8608 const void* pNext;
8609 VkPipelineRobustnessBufferBehavior storageBuffers;
8610 VkPipelineRobustnessBufferBehavior uniformBuffers;
8611 VkPipelineRobustnessBufferBehavior vertexInputs;
8612 VkPipelineRobustnessImageBehavior images;
8613} VkPipelineRobustnessCreateInfo;
8614
8615typedef struct VkPhysicalDeviceLineRasterizationFeatures {
8616 VkStructureType sType;
8617 void* pNext;
8618 VkBool32 rectangularLines;
8619 VkBool32 bresenhamLines;
8620 VkBool32 smoothLines;
8621 VkBool32 stippledRectangularLines;
8622 VkBool32 stippledBresenhamLines;
8623 VkBool32 stippledSmoothLines;
8624} VkPhysicalDeviceLineRasterizationFeatures;
8625
8626typedef struct VkPhysicalDeviceLineRasterizationProperties {
8627 VkStructureType sType;
8628 void* pNext;
8629 uint32_t lineSubPixelPrecisionBits;
8630} VkPhysicalDeviceLineRasterizationProperties;
8631
8632typedef struct VkPipelineRasterizationLineStateCreateInfo {
8633 VkStructureType sType;
8634 const void* pNext;
8635 VkLineRasterizationMode lineRasterizationMode;
8636 VkBool32 stippledLineEnable;
8637 uint32_t lineStippleFactor;
8638 uint16_t lineStipplePattern;
8639} VkPipelineRasterizationLineStateCreateInfo;
8640
8641typedef struct VkPhysicalDeviceVertexAttributeDivisorProperties {
8642 VkStructureType sType;
8643 void* pNext;
8644 uint32_t maxVertexAttribDivisor;
8645 VkBool32 supportsNonZeroFirstInstance;
8646} VkPhysicalDeviceVertexAttributeDivisorProperties;
8647
8648typedef struct VkVertexInputBindingDivisorDescription {
8649 uint32_t binding;
8650 uint32_t divisor;
8651} VkVertexInputBindingDivisorDescription;
8652
8653typedef struct VkPipelineVertexInputDivisorStateCreateInfo {
8654 VkStructureType sType;
8655 const void* pNext;
8656 uint32_t vertexBindingDivisorCount;
8657 const VkVertexInputBindingDivisorDescription* pVertexBindingDivisors;
8658} VkPipelineVertexInputDivisorStateCreateInfo;
8659
8660typedef struct VkPhysicalDeviceVertexAttributeDivisorFeatures {
8661 VkStructureType sType;
8662 void* pNext;
8663 VkBool32 vertexAttributeInstanceRateDivisor;
8664 VkBool32 vertexAttributeInstanceRateZeroDivisor;
8665} VkPhysicalDeviceVertexAttributeDivisorFeatures;
8666
8667typedef struct VkRenderingAreaInfo {
8668 VkStructureType sType;
8669 const void* pNext;
8670 uint32_t viewMask;
8671 uint32_t colorAttachmentCount;
8672 const VkFormat* pColorAttachmentFormats;
8673 VkFormat depthAttachmentFormat;
8674 VkFormat stencilAttachmentFormat;
8675} VkRenderingAreaInfo;
8676
8677typedef struct VkPhysicalDeviceDynamicRenderingLocalReadFeatures {
8678 VkStructureType sType;
8679 void* pNext;
8680 VkBool32 dynamicRenderingLocalRead;
8681} VkPhysicalDeviceDynamicRenderingLocalReadFeatures;
8682
8683typedef struct VkRenderingAttachmentLocationInfo {
8684 VkStructureType sType;
8685 const void* pNext;
8686 uint32_t colorAttachmentCount;
8687 const uint32_t* pColorAttachmentLocations;
8688} VkRenderingAttachmentLocationInfo;
8689
8690typedef struct VkRenderingInputAttachmentIndexInfo {
8691 VkStructureType sType;
8692 const void* pNext;
8693 uint32_t colorAttachmentCount;
8694 const uint32_t* pColorAttachmentInputIndices;
8695 const uint32_t* pDepthInputAttachmentIndex;
8696 const uint32_t* pStencilInputAttachmentIndex;
8697} VkRenderingInputAttachmentIndexInfo;
8698
8699typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
8700typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
8701typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayout)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
8702typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
8703typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImage)(VkDevice device, const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
8704typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemory)(VkDevice device, const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
8705typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImage)(VkDevice device, const VkCopyImageToImageInfo* pCopyImageToImageInfo);
8706typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayout)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions);
8707typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
8708typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
8709typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
8710typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo* pPushConstantsInfo);
8711typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
8712typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
8713typedef void (VKAPI_PTR *PFN_vkCmdSetLineStipple)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
8714typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
8715typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularity)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
8716typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocations)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
8717typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndices)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
8718
8719#ifndef VK_NO_PROTOTYPES
8720VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2(
8721 VkDevice device,
8722 const VkMemoryMapInfo* pMemoryMapInfo,
8723 void** ppData);
8724
8725VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2(
8726 VkDevice device,
8727 const VkMemoryUnmapInfo* pMemoryUnmapInfo);
8728
8729VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayout(
8730 VkDevice device,
8731 const VkDeviceImageSubresourceInfo* pInfo,
8732 VkSubresourceLayout2* pLayout);
8733
8734VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2(
8735 VkDevice device,
8736 VkImage image,
8737 const VkImageSubresource2* pSubresource,
8738 VkSubresourceLayout2* pLayout);
8739
8740VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImage(
8741 VkDevice device,
8742 const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
8743
8744VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemory(
8745 VkDevice device,
8746 const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
8747
8748VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImage(
8749 VkDevice device,
8750 const VkCopyImageToImageInfo* pCopyImageToImageInfo);
8751
8752VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayout(
8753 VkDevice device,
8754 uint32_t transitionCount,
8755 const VkHostImageLayoutTransitionInfo* pTransitions);
8756
8757VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet(
8758 VkCommandBuffer commandBuffer,
8759 VkPipelineBindPoint pipelineBindPoint,
8760 VkPipelineLayout layout,
8761 uint32_t set,
8762 uint32_t descriptorWriteCount,
8763 const VkWriteDescriptorSet* pDescriptorWrites);
8764
8765VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate(
8766 VkCommandBuffer commandBuffer,
8767 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
8768 VkPipelineLayout layout,
8769 uint32_t set,
8770 const void* pData);
8771
8772VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2(
8773 VkCommandBuffer commandBuffer,
8774 const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
8775
8776VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2(
8777 VkCommandBuffer commandBuffer,
8778 const VkPushConstantsInfo* pPushConstantsInfo);
8779
8780VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2(
8781 VkCommandBuffer commandBuffer,
8782 const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
8783
8784VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2(
8785 VkCommandBuffer commandBuffer,
8786 const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
8787
8788VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStipple(
8789 VkCommandBuffer commandBuffer,
8790 uint32_t lineStippleFactor,
8791 uint16_t lineStipplePattern);
8792
8793VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2(
8794 VkCommandBuffer commandBuffer,
8795 VkBuffer buffer,
8796 VkDeviceSize offset,
8797 VkDeviceSize size,
8798 VkIndexType indexType);
8799
8800VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularity(
8801 VkDevice device,
8802 const VkRenderingAreaInfo* pRenderingAreaInfo,
8803 VkExtent2D* pGranularity);
8804
8805VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocations(
8806 VkCommandBuffer commandBuffer,
8807 const VkRenderingAttachmentLocationInfo* pLocationInfo);
8808
8809VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndices(
8810 VkCommandBuffer commandBuffer,
8811 const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
8812#endif
8813
8814
8815// VK_KHR_surface is a preprocessor guard. Do not pass it to API calls.
8816#define VK_KHR_surface 1
8817VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
8818#define VK_KHR_SURFACE_SPEC_VERSION 25
8819#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
8820
8821typedef enum VkPresentModeKHR {
8822 VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
8823 VK_PRESENT_MODE_MAILBOX_KHR = 1,
8824 VK_PRESENT_MODE_FIFO_KHR = 2,
8825 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
8826 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
8827 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
8828 VK_PRESENT_MODE_FIFO_LATEST_READY_KHR = 1000361000,
8829 VK_PRESENT_MODE_FIFO_LATEST_READY_EXT = VK_PRESENT_MODE_FIFO_LATEST_READY_KHR,
8830 VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
8831} VkPresentModeKHR;
8832
8833typedef enum VkColorSpaceKHR {
8834 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
8835 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
8836 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
8837 VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
8838 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
8839 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
8840 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
8841 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
8842 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
8843 // VK_COLOR_SPACE_DOLBYVISION_EXT is legacy, but no reason was given in the API XML
8844 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
8845 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
8846 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
8847 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
8848 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
8849 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
8850 VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
8851 // VK_COLORSPACE_SRGB_NONLINEAR_KHR is a legacy alias
8852 VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
8853 // VK_COLOR_SPACE_DCI_P3_LINEAR_EXT is a legacy alias
8854 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
8855 VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
8856} VkColorSpaceKHR;
8857
8858typedef enum VkSurfaceTransformFlagBitsKHR {
8859 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
8860 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
8861 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
8862 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
8863 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
8864 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
8865 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
8866 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
8867 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
8868 VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8869} VkSurfaceTransformFlagBitsKHR;
8870
8871typedef enum VkCompositeAlphaFlagBitsKHR {
8872 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
8873 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
8874 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
8875 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
8876 VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8877} VkCompositeAlphaFlagBitsKHR;
8878typedef VkFlags VkCompositeAlphaFlagsKHR;
8879typedef VkFlags VkSurfaceTransformFlagsKHR;
8880typedef struct VkSurfaceCapabilitiesKHR {
8881 uint32_t minImageCount;
8882 uint32_t maxImageCount;
8883 VkExtent2D currentExtent;
8884 VkExtent2D minImageExtent;
8885 VkExtent2D maxImageExtent;
8886 uint32_t maxImageArrayLayers;
8887 VkSurfaceTransformFlagsKHR supportedTransforms;
8888 VkSurfaceTransformFlagBitsKHR currentTransform;
8889 VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
8890 VkImageUsageFlags supportedUsageFlags;
8891} VkSurfaceCapabilitiesKHR;
8892
8893typedef struct VkSurfaceFormatKHR {
8894 VkFormat format;
8895 VkColorSpaceKHR colorSpace;
8896} VkSurfaceFormatKHR;
8897
8898typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
8899typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
8900typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
8901typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
8902typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
8903
8904#ifndef VK_NO_PROTOTYPES
8905#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8906VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
8907 VkInstance instance,
8908 VkSurfaceKHR surface,
8909 const VkAllocationCallbacks* pAllocator);
8910#endif
8911
8912#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8913VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
8914 VkPhysicalDevice physicalDevice,
8915 uint32_t queueFamilyIndex,
8916 VkSurfaceKHR surface,
8917 VkBool32* pSupported);
8918#endif
8919
8920#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8921VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
8922 VkPhysicalDevice physicalDevice,
8923 VkSurfaceKHR surface,
8924 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
8925#endif
8926
8927#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8928VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
8929 VkPhysicalDevice physicalDevice,
8930 VkSurfaceKHR surface,
8931 uint32_t* pSurfaceFormatCount,
8932 VkSurfaceFormatKHR* pSurfaceFormats);
8933#endif
8934
8935#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8936VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
8937 VkPhysicalDevice physicalDevice,
8938 VkSurfaceKHR surface,
8939 uint32_t* pPresentModeCount,
8940 VkPresentModeKHR* pPresentModes);
8941#endif
8942#endif
8943
8944
8945// VK_KHR_swapchain is a preprocessor guard. Do not pass it to API calls.
8946#define VK_KHR_swapchain 1
8947VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
8948#define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
8949#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
8950
8951typedef enum VkSwapchainCreateFlagBitsKHR {
8952 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
8953 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
8954 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
8955 VK_SWAPCHAIN_CREATE_PRESENT_TIMING_BIT_EXT = 0x00000200,
8956 VK_SWAPCHAIN_CREATE_PRESENT_ID_2_BIT_KHR = 0x00000040,
8957 VK_SWAPCHAIN_CREATE_PRESENT_WAIT_2_BIT_KHR = 0x00000080,
8958 VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR = 0x00000008,
8959 VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR,
8960 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8961} VkSwapchainCreateFlagBitsKHR;
8962typedef VkFlags VkSwapchainCreateFlagsKHR;
8963
8964typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
8965 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
8966 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
8967 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
8968 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
8969 VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8970} VkDeviceGroupPresentModeFlagBitsKHR;
8971typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
8972typedef struct VkSwapchainCreateInfoKHR {
8973 VkStructureType sType;
8974 const void* pNext;
8975 VkSwapchainCreateFlagsKHR flags;
8976 VkSurfaceKHR surface;
8977 uint32_t minImageCount;
8978 VkFormat imageFormat;
8979 VkColorSpaceKHR imageColorSpace;
8980 VkExtent2D imageExtent;
8981 uint32_t imageArrayLayers;
8982 VkImageUsageFlags imageUsage;
8983 VkSharingMode imageSharingMode;
8984 uint32_t queueFamilyIndexCount;
8985 const uint32_t* pQueueFamilyIndices;
8986 VkSurfaceTransformFlagBitsKHR preTransform;
8987 VkCompositeAlphaFlagBitsKHR compositeAlpha;
8988 VkPresentModeKHR presentMode;
8989 VkBool32 clipped;
8990 VkSwapchainKHR oldSwapchain;
8991} VkSwapchainCreateInfoKHR;
8992
8993typedef struct VkPresentInfoKHR {
8994 VkStructureType sType;
8995 const void* pNext;
8996 uint32_t waitSemaphoreCount;
8997 const VkSemaphore* pWaitSemaphores;
8998 uint32_t swapchainCount;
8999 const VkSwapchainKHR* pSwapchains;
9000 const uint32_t* pImageIndices;
9001 VkResult* pResults;
9002} VkPresentInfoKHR;
9003
9004typedef struct VkImageSwapchainCreateInfoKHR {
9005 VkStructureType sType;
9006 const void* pNext;
9007 VkSwapchainKHR swapchain;
9008} VkImageSwapchainCreateInfoKHR;
9009
9010typedef struct VkBindImageMemorySwapchainInfoKHR {
9011 VkStructureType sType;
9012 const void* pNext;
9013 VkSwapchainKHR swapchain;
9014 uint32_t imageIndex;
9015} VkBindImageMemorySwapchainInfoKHR;
9016
9017typedef struct VkAcquireNextImageInfoKHR {
9018 VkStructureType sType;
9019 const void* pNext;
9020 VkSwapchainKHR swapchain;
9021 uint64_t timeout;
9022 VkSemaphore semaphore;
9023 VkFence fence;
9024 uint32_t deviceMask;
9025} VkAcquireNextImageInfoKHR;
9026
9027typedef struct VkDeviceGroupPresentCapabilitiesKHR {
9028 VkStructureType sType;
9029 void* pNext;
9030 uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE];
9031 VkDeviceGroupPresentModeFlagsKHR modes;
9032} VkDeviceGroupPresentCapabilitiesKHR;
9033
9034typedef struct VkDeviceGroupPresentInfoKHR {
9035 VkStructureType sType;
9036 const void* pNext;
9037 uint32_t swapchainCount;
9038 const uint32_t* pDeviceMasks;
9039 VkDeviceGroupPresentModeFlagBitsKHR mode;
9040} VkDeviceGroupPresentInfoKHR;
9041
9042typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
9043 VkStructureType sType;
9044 const void* pNext;
9045 VkDeviceGroupPresentModeFlagsKHR modes;
9046} VkDeviceGroupSwapchainCreateInfoKHR;
9047
9048typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
9049typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
9050typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
9051typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
9052typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
9053typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
9054typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
9055typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
9056typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
9057
9058#ifndef VK_NO_PROTOTYPES
9059#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9060VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
9061 VkDevice device,
9062 const VkSwapchainCreateInfoKHR* pCreateInfo,
9063 const VkAllocationCallbacks* pAllocator,
9064 VkSwapchainKHR* pSwapchain);
9065#endif
9066
9067#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9068VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
9069 VkDevice device,
9070 VkSwapchainKHR swapchain,
9071 const VkAllocationCallbacks* pAllocator);
9072#endif
9073
9074#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9075VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
9076 VkDevice device,
9077 VkSwapchainKHR swapchain,
9078 uint32_t* pSwapchainImageCount,
9079 VkImage* pSwapchainImages);
9080#endif
9081
9082#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9083VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
9084 VkDevice device,
9085 VkSwapchainKHR swapchain,
9086 uint64_t timeout,
9087 VkSemaphore semaphore,
9088 VkFence fence,
9089 uint32_t* pImageIndex);
9090#endif
9091
9092#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9093VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
9094 VkQueue queue,
9095 const VkPresentInfoKHR* pPresentInfo);
9096#endif
9097
9098#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9099VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
9100 VkDevice device,
9101 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
9102#endif
9103
9104#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9105VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
9106 VkDevice device,
9107 VkSurfaceKHR surface,
9108 VkDeviceGroupPresentModeFlagsKHR* pModes);
9109#endif
9110
9111#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9112VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
9113 VkPhysicalDevice physicalDevice,
9114 VkSurfaceKHR surface,
9115 uint32_t* pRectCount,
9116 VkRect2D* pRects);
9117#endif
9118
9119#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9120VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
9121 VkDevice device,
9122 const VkAcquireNextImageInfoKHR* pAcquireInfo,
9123 uint32_t* pImageIndex);
9124#endif
9125#endif
9126
9127
9128// VK_KHR_display is a preprocessor guard. Do not pass it to API calls.
9129#define VK_KHR_display 1
9130VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
9131VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
9132#define VK_KHR_DISPLAY_SPEC_VERSION 23
9133#define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
9134typedef VkFlags VkDisplayModeCreateFlagsKHR;
9135
9136typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
9137 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
9138 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
9139 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
9140 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
9141 VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9142} VkDisplayPlaneAlphaFlagBitsKHR;
9143typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
9144typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
9145typedef struct VkDisplayModeParametersKHR {
9146 VkExtent2D visibleRegion;
9147 uint32_t refreshRate;
9148} VkDisplayModeParametersKHR;
9149
9150typedef struct VkDisplayModeCreateInfoKHR {
9151 VkStructureType sType;
9152 const void* pNext;
9153 VkDisplayModeCreateFlagsKHR flags;
9154 VkDisplayModeParametersKHR parameters;
9155} VkDisplayModeCreateInfoKHR;
9156
9157typedef struct VkDisplayModePropertiesKHR {
9158 VkDisplayModeKHR displayMode;
9159 VkDisplayModeParametersKHR parameters;
9160} VkDisplayModePropertiesKHR;
9161
9162typedef struct VkDisplayPlaneCapabilitiesKHR {
9163 VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
9164 VkOffset2D minSrcPosition;
9165 VkOffset2D maxSrcPosition;
9166 VkExtent2D minSrcExtent;
9167 VkExtent2D maxSrcExtent;
9168 VkOffset2D minDstPosition;
9169 VkOffset2D maxDstPosition;
9170 VkExtent2D minDstExtent;
9171 VkExtent2D maxDstExtent;
9172} VkDisplayPlaneCapabilitiesKHR;
9173
9174typedef struct VkDisplayPlanePropertiesKHR {
9175 VkDisplayKHR currentDisplay;
9176 uint32_t currentStackIndex;
9177} VkDisplayPlanePropertiesKHR;
9178
9179typedef struct VkDisplayPropertiesKHR {
9180 VkDisplayKHR display;
9181 const char* displayName;
9182 VkExtent2D physicalDimensions;
9183 VkExtent2D physicalResolution;
9184 VkSurfaceTransformFlagsKHR supportedTransforms;
9185 VkBool32 planeReorderPossible;
9186 VkBool32 persistentContent;
9187} VkDisplayPropertiesKHR;
9188
9189typedef struct VkDisplaySurfaceCreateInfoKHR {
9190 VkStructureType sType;
9191 const void* pNext;
9192 VkDisplaySurfaceCreateFlagsKHR flags;
9193 VkDisplayModeKHR displayMode;
9194 uint32_t planeIndex;
9195 uint32_t planeStackIndex;
9196 VkSurfaceTransformFlagBitsKHR transform;
9197 float globalAlpha;
9198 VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
9199 VkExtent2D imageExtent;
9200} VkDisplaySurfaceCreateInfoKHR;
9201
9202typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
9203typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
9204typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
9205typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
9206typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
9207typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
9208typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
9209
9210#ifndef VK_NO_PROTOTYPES
9211#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9212VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
9213 VkPhysicalDevice physicalDevice,
9214 uint32_t* pPropertyCount,
9215 VkDisplayPropertiesKHR* pProperties);
9216#endif
9217
9218#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9219VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
9220 VkPhysicalDevice physicalDevice,
9221 uint32_t* pPropertyCount,
9222 VkDisplayPlanePropertiesKHR* pProperties);
9223#endif
9224
9225#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9226VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
9227 VkPhysicalDevice physicalDevice,
9228 uint32_t planeIndex,
9229 uint32_t* pDisplayCount,
9230 VkDisplayKHR* pDisplays);
9231#endif
9232
9233#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9234VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
9235 VkPhysicalDevice physicalDevice,
9236 VkDisplayKHR display,
9237 uint32_t* pPropertyCount,
9238 VkDisplayModePropertiesKHR* pProperties);
9239#endif
9240
9241#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9242VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
9243 VkPhysicalDevice physicalDevice,
9244 VkDisplayKHR display,
9245 const VkDisplayModeCreateInfoKHR* pCreateInfo,
9246 const VkAllocationCallbacks* pAllocator,
9247 VkDisplayModeKHR* pMode);
9248#endif
9249
9250#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9251VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
9252 VkPhysicalDevice physicalDevice,
9253 VkDisplayModeKHR mode,
9254 uint32_t planeIndex,
9255 VkDisplayPlaneCapabilitiesKHR* pCapabilities);
9256#endif
9257
9258#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9259VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
9260 VkInstance instance,
9261 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
9262 const VkAllocationCallbacks* pAllocator,
9263 VkSurfaceKHR* pSurface);
9264#endif
9265#endif
9266
9267
9268// VK_KHR_display_swapchain is a preprocessor guard. Do not pass it to API calls.
9269#define VK_KHR_display_swapchain 1
9270#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
9271#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
9272typedef struct VkDisplayPresentInfoKHR {
9273 VkStructureType sType;
9274 const void* pNext;
9275 VkRect2D srcRect;
9276 VkRect2D dstRect;
9277 VkBool32 persistent;
9278} VkDisplayPresentInfoKHR;
9279
9280typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
9281
9282#ifndef VK_NO_PROTOTYPES
9283#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9284VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
9285 VkDevice device,
9286 uint32_t swapchainCount,
9287 const VkSwapchainCreateInfoKHR* pCreateInfos,
9288 const VkAllocationCallbacks* pAllocator,
9289 VkSwapchainKHR* pSwapchains);
9290#endif
9291#endif
9292
9293
9294// VK_KHR_sampler_mirror_clamp_to_edge is a preprocessor guard. Do not pass it to API calls.
9295#define VK_KHR_sampler_mirror_clamp_to_edge 1
9296#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
9297#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
9298
9299
9300// VK_KHR_video_queue is a preprocessor guard. Do not pass it to API calls.
9301#define VK_KHR_video_queue 1
9302VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
9303VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
9304#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 8
9305#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
9306
9307typedef enum VkQueryResultStatusKHR {
9308 VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,
9309 VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,
9310 VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,
9311 VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR = -1000299000,
9312 VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF
9313} VkQueryResultStatusKHR;
9314
9315typedef enum VkVideoCodecOperationFlagBitsKHR {
9316 VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0,
9317 VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR = 0x00010000,
9318 VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR = 0x00020000,
9319 VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0x00000001,
9320 VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002,
9321 VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x00000004,
9322 VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR = 0x00040000,
9323 VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR = 0x00000008,
9324 VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9325} VkVideoCodecOperationFlagBitsKHR;
9326typedef VkFlags VkVideoCodecOperationFlagsKHR;
9327
9328typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
9329 VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0,
9330 VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
9331 VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
9332 VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
9333 VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,
9334 VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9335} VkVideoChromaSubsamplingFlagBitsKHR;
9336typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
9337
9338typedef enum VkVideoComponentBitDepthFlagBitsKHR {
9339 VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,
9340 VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,
9341 VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,
9342 VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,
9343 VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9344} VkVideoComponentBitDepthFlagBitsKHR;
9345typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
9346
9347typedef enum VkVideoCapabilityFlagBitsKHR {
9348 VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
9349 VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
9350 VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9351} VkVideoCapabilityFlagBitsKHR;
9352typedef VkFlags VkVideoCapabilityFlagsKHR;
9353
9354typedef enum VkVideoSessionCreateFlagBitsKHR {
9355 VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
9356 VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR = 0x00000002,
9357 VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x00000004,
9358 VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000008,
9359 VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x00000010,
9360 VK_VIDEO_SESSION_CREATE_INLINE_SESSION_PARAMETERS_BIT_KHR = 0x00000020,
9361 VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9362} VkVideoSessionCreateFlagBitsKHR;
9363typedef VkFlags VkVideoSessionCreateFlagsKHR;
9364
9365typedef enum VkVideoSessionParametersCreateFlagBitsKHR {
9366 VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR = 0x00000001,
9367 VK_VIDEO_SESSION_PARAMETERS_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9368} VkVideoSessionParametersCreateFlagBitsKHR;
9369typedef VkFlags VkVideoSessionParametersCreateFlagsKHR;
9370typedef VkFlags VkVideoBeginCodingFlagsKHR;
9371typedef VkFlags VkVideoEndCodingFlagsKHR;
9372
9373typedef enum VkVideoCodingControlFlagBitsKHR {
9374 VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
9375 VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002,
9376 VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR = 0x00000004,
9377 VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9378} VkVideoCodingControlFlagBitsKHR;
9379typedef VkFlags VkVideoCodingControlFlagsKHR;
9380typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR {
9381 VkStructureType sType;
9382 void* pNext;
9383 VkBool32 queryResultStatusSupport;
9384} VkQueueFamilyQueryResultStatusPropertiesKHR;
9385
9386typedef struct VkQueueFamilyVideoPropertiesKHR {
9387 VkStructureType sType;
9388 void* pNext;
9389 VkVideoCodecOperationFlagsKHR videoCodecOperations;
9390} VkQueueFamilyVideoPropertiesKHR;
9391
9392typedef struct VkVideoProfileInfoKHR {
9393 VkStructureType sType;
9394 const void* pNext;
9395 VkVideoCodecOperationFlagBitsKHR videoCodecOperation;
9396 VkVideoChromaSubsamplingFlagsKHR chromaSubsampling;
9397 VkVideoComponentBitDepthFlagsKHR lumaBitDepth;
9398 VkVideoComponentBitDepthFlagsKHR chromaBitDepth;
9399} VkVideoProfileInfoKHR;
9400
9401typedef struct VkVideoProfileListInfoKHR {
9402 VkStructureType sType;
9403 const void* pNext;
9404 uint32_t profileCount;
9405 const VkVideoProfileInfoKHR* pProfiles;
9406} VkVideoProfileListInfoKHR;
9407
9408typedef struct VkVideoCapabilitiesKHR {
9409 VkStructureType sType;
9410 void* pNext;
9411 VkVideoCapabilityFlagsKHR flags;
9412 VkDeviceSize minBitstreamBufferOffsetAlignment;
9413 VkDeviceSize minBitstreamBufferSizeAlignment;
9414 VkExtent2D pictureAccessGranularity;
9415 VkExtent2D minCodedExtent;
9416 VkExtent2D maxCodedExtent;
9417 uint32_t maxDpbSlots;
9418 uint32_t maxActiveReferencePictures;
9419 VkExtensionProperties stdHeaderVersion;
9420} VkVideoCapabilitiesKHR;
9421
9422typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
9423 VkStructureType sType;
9424 const void* pNext;
9425 VkImageUsageFlags imageUsage;
9426} VkPhysicalDeviceVideoFormatInfoKHR;
9427
9428typedef struct VkVideoFormatPropertiesKHR {
9429 VkStructureType sType;
9430 void* pNext;
9431 VkFormat format;
9432 VkComponentMapping componentMapping;
9433 VkImageCreateFlags imageCreateFlags;
9434 VkImageType imageType;
9435 VkImageTiling imageTiling;
9436 VkImageUsageFlags imageUsageFlags;
9437} VkVideoFormatPropertiesKHR;
9438
9439typedef struct VkVideoPictureResourceInfoKHR {
9440 VkStructureType sType;
9441 const void* pNext;
9442 VkOffset2D codedOffset;
9443 VkExtent2D codedExtent;
9444 uint32_t baseArrayLayer;
9445 VkImageView imageViewBinding;
9446} VkVideoPictureResourceInfoKHR;
9447
9448typedef struct VkVideoReferenceSlotInfoKHR {
9449 VkStructureType sType;
9450 const void* pNext;
9451 int32_t slotIndex;
9452 const VkVideoPictureResourceInfoKHR* pPictureResource;
9453} VkVideoReferenceSlotInfoKHR;
9454
9455typedef struct VkVideoSessionMemoryRequirementsKHR {
9456 VkStructureType sType;
9457 void* pNext;
9458 uint32_t memoryBindIndex;
9459 VkMemoryRequirements memoryRequirements;
9460} VkVideoSessionMemoryRequirementsKHR;
9461
9462typedef struct VkBindVideoSessionMemoryInfoKHR {
9463 VkStructureType sType;
9464 const void* pNext;
9465 uint32_t memoryBindIndex;
9466 VkDeviceMemory memory;
9467 VkDeviceSize memoryOffset;
9468 VkDeviceSize memorySize;
9469} VkBindVideoSessionMemoryInfoKHR;
9470
9471typedef struct VkVideoSessionCreateInfoKHR {
9472 VkStructureType sType;
9473 const void* pNext;
9474 uint32_t queueFamilyIndex;
9475 VkVideoSessionCreateFlagsKHR flags;
9476 const VkVideoProfileInfoKHR* pVideoProfile;
9477 VkFormat pictureFormat;
9478 VkExtent2D maxCodedExtent;
9479 VkFormat referencePictureFormat;
9480 uint32_t maxDpbSlots;
9481 uint32_t maxActiveReferencePictures;
9482 const VkExtensionProperties* pStdHeaderVersion;
9483} VkVideoSessionCreateInfoKHR;
9484
9485typedef struct VkVideoSessionParametersCreateInfoKHR {
9486 VkStructureType sType;
9487 const void* pNext;
9488 VkVideoSessionParametersCreateFlagsKHR flags;
9489 VkVideoSessionParametersKHR videoSessionParametersTemplate;
9490 VkVideoSessionKHR videoSession;
9491} VkVideoSessionParametersCreateInfoKHR;
9492
9493typedef struct VkVideoSessionParametersUpdateInfoKHR {
9494 VkStructureType sType;
9495 const void* pNext;
9496 uint32_t updateSequenceCount;
9497} VkVideoSessionParametersUpdateInfoKHR;
9498
9499typedef struct VkVideoBeginCodingInfoKHR {
9500 VkStructureType sType;
9501 const void* pNext;
9502 VkVideoBeginCodingFlagsKHR flags;
9503 VkVideoSessionKHR videoSession;
9504 VkVideoSessionParametersKHR videoSessionParameters;
9505 uint32_t referenceSlotCount;
9506 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
9507} VkVideoBeginCodingInfoKHR;
9508
9509typedef struct VkVideoEndCodingInfoKHR {
9510 VkStructureType sType;
9511 const void* pNext;
9512 VkVideoEndCodingFlagsKHR flags;
9513} VkVideoEndCodingInfoKHR;
9514
9515typedef struct VkVideoCodingControlInfoKHR {
9516 VkStructureType sType;
9517 const void* pNext;
9518 VkVideoCodingControlFlagsKHR flags;
9519} VkVideoCodingControlInfoKHR;
9520
9521typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
9522typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
9523typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
9524typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
9525typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
9526typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
9527typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
9528typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
9529typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
9530typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
9531typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
9532typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
9533
9534#ifndef VK_NO_PROTOTYPES
9535#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9536VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
9537 VkPhysicalDevice physicalDevice,
9538 const VkVideoProfileInfoKHR* pVideoProfile,
9539 VkVideoCapabilitiesKHR* pCapabilities);
9540#endif
9541
9542#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9543VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
9544 VkPhysicalDevice physicalDevice,
9545 const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
9546 uint32_t* pVideoFormatPropertyCount,
9547 VkVideoFormatPropertiesKHR* pVideoFormatProperties);
9548#endif
9549
9550#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9551VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(
9552 VkDevice device,
9553 const VkVideoSessionCreateInfoKHR* pCreateInfo,
9554 const VkAllocationCallbacks* pAllocator,
9555 VkVideoSessionKHR* pVideoSession);
9556#endif
9557
9558#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9559VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
9560 VkDevice device,
9561 VkVideoSessionKHR videoSession,
9562 const VkAllocationCallbacks* pAllocator);
9563#endif
9564
9565#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9566VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
9567 VkDevice device,
9568 VkVideoSessionKHR videoSession,
9569 uint32_t* pMemoryRequirementsCount,
9570 VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
9571#endif
9572
9573#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9574VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
9575 VkDevice device,
9576 VkVideoSessionKHR videoSession,
9577 uint32_t bindSessionMemoryInfoCount,
9578 const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
9579#endif
9580
9581#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9582VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
9583 VkDevice device,
9584 const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
9585 const VkAllocationCallbacks* pAllocator,
9586 VkVideoSessionParametersKHR* pVideoSessionParameters);
9587#endif
9588
9589#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9590VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(
9591 VkDevice device,
9592 VkVideoSessionParametersKHR videoSessionParameters,
9593 const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
9594#endif
9595
9596#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9597VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(
9598 VkDevice device,
9599 VkVideoSessionParametersKHR videoSessionParameters,
9600 const VkAllocationCallbacks* pAllocator);
9601#endif
9602
9603#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9604VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(
9605 VkCommandBuffer commandBuffer,
9606 const VkVideoBeginCodingInfoKHR* pBeginInfo);
9607#endif
9608
9609#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9610VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(
9611 VkCommandBuffer commandBuffer,
9612 const VkVideoEndCodingInfoKHR* pEndCodingInfo);
9613#endif
9614
9615#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9616VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
9617 VkCommandBuffer commandBuffer,
9618 const VkVideoCodingControlInfoKHR* pCodingControlInfo);
9619#endif
9620#endif
9621
9622
9623// VK_KHR_video_decode_queue is a preprocessor guard. Do not pass it to API calls.
9624#define VK_KHR_video_decode_queue 1
9625#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 8
9626#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
9627
9628typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
9629 VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
9630 VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
9631 VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9632} VkVideoDecodeCapabilityFlagBitsKHR;
9633typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
9634
9635typedef enum VkVideoDecodeUsageFlagBitsKHR {
9636 VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0,
9637 VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
9638 VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002,
9639 VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004,
9640 VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9641} VkVideoDecodeUsageFlagBitsKHR;
9642typedef VkFlags VkVideoDecodeUsageFlagsKHR;
9643typedef VkFlags VkVideoDecodeFlagsKHR;
9644typedef struct VkVideoDecodeCapabilitiesKHR {
9645 VkStructureType sType;
9646 void* pNext;
9647 VkVideoDecodeCapabilityFlagsKHR flags;
9648} VkVideoDecodeCapabilitiesKHR;
9649
9650typedef struct VkVideoDecodeUsageInfoKHR {
9651 VkStructureType sType;
9652 const void* pNext;
9653 VkVideoDecodeUsageFlagsKHR videoUsageHints;
9654} VkVideoDecodeUsageInfoKHR;
9655
9656typedef struct VkVideoDecodeInfoKHR {
9657 VkStructureType sType;
9658 const void* pNext;
9659 VkVideoDecodeFlagsKHR flags;
9660 VkBuffer srcBuffer;
9661 VkDeviceSize srcBufferOffset;
9662 VkDeviceSize srcBufferRange;
9663 VkVideoPictureResourceInfoKHR dstPictureResource;
9664 const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
9665 uint32_t referenceSlotCount;
9666 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
9667} VkVideoDecodeInfoKHR;
9668
9669typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo);
9670
9671#ifndef VK_NO_PROTOTYPES
9672#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9673VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
9674 VkCommandBuffer commandBuffer,
9675 const VkVideoDecodeInfoKHR* pDecodeInfo);
9676#endif
9677#endif
9678
9679
9680// VK_KHR_video_encode_h264 is a preprocessor guard. Do not pass it to API calls.
9681#define VK_KHR_video_encode_h264 1
9682#include "vk_video/vulkan_video_codec_h264std.h"
9683#include "vk_video/vulkan_video_codec_h264std_encode.h"
9684#define VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION 14
9685#define VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_KHR_video_encode_h264"
9686
9687typedef enum VkVideoEncodeH264CapabilityFlagBitsKHR {
9688 VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9689 VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
9690 VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR = 0x00000004,
9691 VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR = 0x00000008,
9692 VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
9693 VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
9694 VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
9695 VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR = 0x00000080,
9696 VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x00000100,
9697 VK_VIDEO_ENCODE_H264_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR = 0x00000400,
9698 VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR = 0x00000200,
9699 VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9700} VkVideoEncodeH264CapabilityFlagBitsKHR;
9701typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR;
9702
9703typedef enum VkVideoEncodeH264StdFlagBitsKHR {
9704 VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
9705 VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR = 0x00000002,
9706 VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
9707 VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000008,
9708 VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000010,
9709 VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
9710 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
9711 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR = 0x00000080,
9712 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR = 0x00000100,
9713 VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR = 0x00000200,
9714 VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR = 0x00000400,
9715 VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR = 0x00000800,
9716 VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR = 0x00001000,
9717 VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR = 0x00002000,
9718 VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
9719 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR = 0x00008000,
9720 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR = 0x00010000,
9721 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR = 0x00020000,
9722 VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
9723 VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
9724 VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9725} VkVideoEncodeH264StdFlagBitsKHR;
9726typedef VkFlags VkVideoEncodeH264StdFlagsKHR;
9727
9728typedef enum VkVideoEncodeH264RateControlFlagBitsKHR {
9729 VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9730 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
9731 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
9732 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
9733 VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
9734 VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9735} VkVideoEncodeH264RateControlFlagBitsKHR;
9736typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR;
9737typedef struct VkVideoEncodeH264CapabilitiesKHR {
9738 VkStructureType sType;
9739 void* pNext;
9740 VkVideoEncodeH264CapabilityFlagsKHR flags;
9741 StdVideoH264LevelIdc maxLevelIdc;
9742 uint32_t maxSliceCount;
9743 uint32_t maxPPictureL0ReferenceCount;
9744 uint32_t maxBPictureL0ReferenceCount;
9745 uint32_t maxL1ReferenceCount;
9746 uint32_t maxTemporalLayerCount;
9747 VkBool32 expectDyadicTemporalLayerPattern;
9748 int32_t minQp;
9749 int32_t maxQp;
9750 VkBool32 prefersGopRemainingFrames;
9751 VkBool32 requiresGopRemainingFrames;
9752 VkVideoEncodeH264StdFlagsKHR stdSyntaxFlags;
9753} VkVideoEncodeH264CapabilitiesKHR;
9754
9755typedef struct VkVideoEncodeH264QpKHR {
9756 int32_t qpI;
9757 int32_t qpP;
9758 int32_t qpB;
9759} VkVideoEncodeH264QpKHR;
9760
9761typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR {
9762 VkStructureType sType;
9763 void* pNext;
9764 VkVideoEncodeH264RateControlFlagsKHR preferredRateControlFlags;
9765 uint32_t preferredGopFrameCount;
9766 uint32_t preferredIdrPeriod;
9767 uint32_t preferredConsecutiveBFrameCount;
9768 uint32_t preferredTemporalLayerCount;
9769 VkVideoEncodeH264QpKHR preferredConstantQp;
9770 uint32_t preferredMaxL0ReferenceCount;
9771 uint32_t preferredMaxL1ReferenceCount;
9772 VkBool32 preferredStdEntropyCodingModeFlag;
9773} VkVideoEncodeH264QualityLevelPropertiesKHR;
9774
9775typedef struct VkVideoEncodeH264SessionCreateInfoKHR {
9776 VkStructureType sType;
9777 const void* pNext;
9778 VkBool32 useMaxLevelIdc;
9779 StdVideoH264LevelIdc maxLevelIdc;
9780} VkVideoEncodeH264SessionCreateInfoKHR;
9781
9782typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR {
9783 VkStructureType sType;
9784 const void* pNext;
9785 uint32_t stdSPSCount;
9786 const StdVideoH264SequenceParameterSet* pStdSPSs;
9787 uint32_t stdPPSCount;
9788 const StdVideoH264PictureParameterSet* pStdPPSs;
9789} VkVideoEncodeH264SessionParametersAddInfoKHR;
9790
9791typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR {
9792 VkStructureType sType;
9793 const void* pNext;
9794 uint32_t maxStdSPSCount;
9795 uint32_t maxStdPPSCount;
9796 const VkVideoEncodeH264SessionParametersAddInfoKHR* pParametersAddInfo;
9797} VkVideoEncodeH264SessionParametersCreateInfoKHR;
9798
9799typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR {
9800 VkStructureType sType;
9801 const void* pNext;
9802 VkBool32 writeStdSPS;
9803 VkBool32 writeStdPPS;
9804 uint32_t stdSPSId;
9805 uint32_t stdPPSId;
9806} VkVideoEncodeH264SessionParametersGetInfoKHR;
9807
9808typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR {
9809 VkStructureType sType;
9810 void* pNext;
9811 VkBool32 hasStdSPSOverrides;
9812 VkBool32 hasStdPPSOverrides;
9813} VkVideoEncodeH264SessionParametersFeedbackInfoKHR;
9814
9815typedef struct VkVideoEncodeH264NaluSliceInfoKHR {
9816 VkStructureType sType;
9817 const void* pNext;
9818 int32_t constantQp;
9819 const StdVideoEncodeH264SliceHeader* pStdSliceHeader;
9820} VkVideoEncodeH264NaluSliceInfoKHR;
9821
9822typedef struct VkVideoEncodeH264PictureInfoKHR {
9823 VkStructureType sType;
9824 const void* pNext;
9825 uint32_t naluSliceEntryCount;
9826 const VkVideoEncodeH264NaluSliceInfoKHR* pNaluSliceEntries;
9827 const StdVideoEncodeH264PictureInfo* pStdPictureInfo;
9828 VkBool32 generatePrefixNalu;
9829} VkVideoEncodeH264PictureInfoKHR;
9830
9831typedef struct VkVideoEncodeH264DpbSlotInfoKHR {
9832 VkStructureType sType;
9833 const void* pNext;
9834 const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo;
9835} VkVideoEncodeH264DpbSlotInfoKHR;
9836
9837typedef struct VkVideoEncodeH264ProfileInfoKHR {
9838 VkStructureType sType;
9839 const void* pNext;
9840 StdVideoH264ProfileIdc stdProfileIdc;
9841} VkVideoEncodeH264ProfileInfoKHR;
9842
9843typedef struct VkVideoEncodeH264RateControlInfoKHR {
9844 VkStructureType sType;
9845 const void* pNext;
9846 VkVideoEncodeH264RateControlFlagsKHR flags;
9847 uint32_t gopFrameCount;
9848 uint32_t idrPeriod;
9849 uint32_t consecutiveBFrameCount;
9850 uint32_t temporalLayerCount;
9851} VkVideoEncodeH264RateControlInfoKHR;
9852
9853typedef struct VkVideoEncodeH264FrameSizeKHR {
9854 uint32_t frameISize;
9855 uint32_t framePSize;
9856 uint32_t frameBSize;
9857} VkVideoEncodeH264FrameSizeKHR;
9858
9859typedef struct VkVideoEncodeH264RateControlLayerInfoKHR {
9860 VkStructureType sType;
9861 const void* pNext;
9862 VkBool32 useMinQp;
9863 VkVideoEncodeH264QpKHR minQp;
9864 VkBool32 useMaxQp;
9865 VkVideoEncodeH264QpKHR maxQp;
9866 VkBool32 useMaxFrameSize;
9867 VkVideoEncodeH264FrameSizeKHR maxFrameSize;
9868} VkVideoEncodeH264RateControlLayerInfoKHR;
9869
9870typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR {
9871 VkStructureType sType;
9872 const void* pNext;
9873 VkBool32 useGopRemainingFrames;
9874 uint32_t gopRemainingI;
9875 uint32_t gopRemainingP;
9876 uint32_t gopRemainingB;
9877} VkVideoEncodeH264GopRemainingFrameInfoKHR;
9878
9879
9880
9881// VK_KHR_video_encode_h265 is a preprocessor guard. Do not pass it to API calls.
9882#define VK_KHR_video_encode_h265 1
9883#include "vk_video/vulkan_video_codec_h265std.h"
9884#include "vk_video/vulkan_video_codec_h265std_encode.h"
9885#define VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION 14
9886#define VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_KHR_video_encode_h265"
9887
9888typedef enum VkVideoEncodeH265CapabilityFlagBitsKHR {
9889 VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9890 VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
9891 VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR = 0x00000004,
9892 VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR = 0x00000008,
9893 VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
9894 VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
9895 VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
9896 VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR = 0x00000080,
9897 VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR = 0x00000100,
9898 VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x00000200,
9899 VK_VIDEO_ENCODE_H265_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR = 0x00000800,
9900 VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR = 0x00000400,
9901 VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9902} VkVideoEncodeH265CapabilityFlagBitsKHR;
9903typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR;
9904
9905typedef enum VkVideoEncodeH265StdFlagBitsKHR {
9906 VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
9907 VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR = 0x00000002,
9908 VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
9909 VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR = 0x00000008,
9910 VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR = 0x00000010,
9911 VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
9912 VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
9913 VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR = 0x00000080,
9914 VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR = 0x00000100,
9915 VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR = 0x00000200,
9916 VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR = 0x00000400,
9917 VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR = 0x00000800,
9918 VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR = 0x00001000,
9919 VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR = 0x00002000,
9920 VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
9921 VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR = 0x00008000,
9922 VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR = 0x00010000,
9923 VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR = 0x00020000,
9924 VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR = 0x00040000,
9925 VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
9926 VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
9927 VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9928} VkVideoEncodeH265StdFlagBitsKHR;
9929typedef VkFlags VkVideoEncodeH265StdFlagsKHR;
9930
9931typedef enum VkVideoEncodeH265CtbSizeFlagBitsKHR {
9932 VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR = 0x00000001,
9933 VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR = 0x00000002,
9934 VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR = 0x00000004,
9935 VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9936} VkVideoEncodeH265CtbSizeFlagBitsKHR;
9937typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR;
9938
9939typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsKHR {
9940 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR = 0x00000001,
9941 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR = 0x00000002,
9942 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR = 0x00000004,
9943 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR = 0x00000008,
9944 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9945} VkVideoEncodeH265TransformBlockSizeFlagBitsKHR;
9946typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR;
9947
9948typedef enum VkVideoEncodeH265RateControlFlagBitsKHR {
9949 VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9950 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
9951 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
9952 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
9953 VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
9954 VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9955} VkVideoEncodeH265RateControlFlagBitsKHR;
9956typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR;
9957typedef struct VkVideoEncodeH265CapabilitiesKHR {
9958 VkStructureType sType;
9959 void* pNext;
9960 VkVideoEncodeH265CapabilityFlagsKHR flags;
9961 StdVideoH265LevelIdc maxLevelIdc;
9962 uint32_t maxSliceSegmentCount;
9963 VkExtent2D maxTiles;
9964 VkVideoEncodeH265CtbSizeFlagsKHR ctbSizes;
9965 VkVideoEncodeH265TransformBlockSizeFlagsKHR transformBlockSizes;
9966 uint32_t maxPPictureL0ReferenceCount;
9967 uint32_t maxBPictureL0ReferenceCount;
9968 uint32_t maxL1ReferenceCount;
9969 uint32_t maxSubLayerCount;
9970 VkBool32 expectDyadicTemporalSubLayerPattern;
9971 int32_t minQp;
9972 int32_t maxQp;
9973 VkBool32 prefersGopRemainingFrames;
9974 VkBool32 requiresGopRemainingFrames;
9975 VkVideoEncodeH265StdFlagsKHR stdSyntaxFlags;
9976} VkVideoEncodeH265CapabilitiesKHR;
9977
9978typedef struct VkVideoEncodeH265SessionCreateInfoKHR {
9979 VkStructureType sType;
9980 const void* pNext;
9981 VkBool32 useMaxLevelIdc;
9982 StdVideoH265LevelIdc maxLevelIdc;
9983} VkVideoEncodeH265SessionCreateInfoKHR;
9984
9985typedef struct VkVideoEncodeH265QpKHR {
9986 int32_t qpI;
9987 int32_t qpP;
9988 int32_t qpB;
9989} VkVideoEncodeH265QpKHR;
9990
9991typedef struct VkVideoEncodeH265QualityLevelPropertiesKHR {
9992 VkStructureType sType;
9993 void* pNext;
9994 VkVideoEncodeH265RateControlFlagsKHR preferredRateControlFlags;
9995 uint32_t preferredGopFrameCount;
9996 uint32_t preferredIdrPeriod;
9997 uint32_t preferredConsecutiveBFrameCount;
9998 uint32_t preferredSubLayerCount;
9999 VkVideoEncodeH265QpKHR preferredConstantQp;
10000 uint32_t preferredMaxL0ReferenceCount;
10001 uint32_t preferredMaxL1ReferenceCount;
10002} VkVideoEncodeH265QualityLevelPropertiesKHR;
10003
10004typedef struct VkVideoEncodeH265SessionParametersAddInfoKHR {
10005 VkStructureType sType;
10006 const void* pNext;
10007 uint32_t stdVPSCount;
10008 const StdVideoH265VideoParameterSet* pStdVPSs;
10009 uint32_t stdSPSCount;
10010 const StdVideoH265SequenceParameterSet* pStdSPSs;
10011 uint32_t stdPPSCount;
10012 const StdVideoH265PictureParameterSet* pStdPPSs;
10013} VkVideoEncodeH265SessionParametersAddInfoKHR;
10014
10015typedef struct VkVideoEncodeH265SessionParametersCreateInfoKHR {
10016 VkStructureType sType;
10017 const void* pNext;
10018 uint32_t maxStdVPSCount;
10019 uint32_t maxStdSPSCount;
10020 uint32_t maxStdPPSCount;
10021 const VkVideoEncodeH265SessionParametersAddInfoKHR* pParametersAddInfo;
10022} VkVideoEncodeH265SessionParametersCreateInfoKHR;
10023
10024typedef struct VkVideoEncodeH265SessionParametersGetInfoKHR {
10025 VkStructureType sType;
10026 const void* pNext;
10027 VkBool32 writeStdVPS;
10028 VkBool32 writeStdSPS;
10029 VkBool32 writeStdPPS;
10030 uint32_t stdVPSId;
10031 uint32_t stdSPSId;
10032 uint32_t stdPPSId;
10033} VkVideoEncodeH265SessionParametersGetInfoKHR;
10034
10035typedef struct VkVideoEncodeH265SessionParametersFeedbackInfoKHR {
10036 VkStructureType sType;
10037 void* pNext;
10038 VkBool32 hasStdVPSOverrides;
10039 VkBool32 hasStdSPSOverrides;
10040 VkBool32 hasStdPPSOverrides;
10041} VkVideoEncodeH265SessionParametersFeedbackInfoKHR;
10042
10043typedef struct VkVideoEncodeH265NaluSliceSegmentInfoKHR {
10044 VkStructureType sType;
10045 const void* pNext;
10046 int32_t constantQp;
10047 const StdVideoEncodeH265SliceSegmentHeader* pStdSliceSegmentHeader;
10048} VkVideoEncodeH265NaluSliceSegmentInfoKHR;
10049
10050typedef struct VkVideoEncodeH265PictureInfoKHR {
10051 VkStructureType sType;
10052 const void* pNext;
10053 uint32_t naluSliceSegmentEntryCount;
10054 const VkVideoEncodeH265NaluSliceSegmentInfoKHR* pNaluSliceSegmentEntries;
10055 const StdVideoEncodeH265PictureInfo* pStdPictureInfo;
10056} VkVideoEncodeH265PictureInfoKHR;
10057
10058typedef struct VkVideoEncodeH265DpbSlotInfoKHR {
10059 VkStructureType sType;
10060 const void* pNext;
10061 const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo;
10062} VkVideoEncodeH265DpbSlotInfoKHR;
10063
10064typedef struct VkVideoEncodeH265ProfileInfoKHR {
10065 VkStructureType sType;
10066 const void* pNext;
10067 StdVideoH265ProfileIdc stdProfileIdc;
10068} VkVideoEncodeH265ProfileInfoKHR;
10069
10070typedef struct VkVideoEncodeH265RateControlInfoKHR {
10071 VkStructureType sType;
10072 const void* pNext;
10073 VkVideoEncodeH265RateControlFlagsKHR flags;
10074 uint32_t gopFrameCount;
10075 uint32_t idrPeriod;
10076 uint32_t consecutiveBFrameCount;
10077 uint32_t subLayerCount;
10078} VkVideoEncodeH265RateControlInfoKHR;
10079
10080typedef struct VkVideoEncodeH265FrameSizeKHR {
10081 uint32_t frameISize;
10082 uint32_t framePSize;
10083 uint32_t frameBSize;
10084} VkVideoEncodeH265FrameSizeKHR;
10085
10086typedef struct VkVideoEncodeH265RateControlLayerInfoKHR {
10087 VkStructureType sType;
10088 const void* pNext;
10089 VkBool32 useMinQp;
10090 VkVideoEncodeH265QpKHR minQp;
10091 VkBool32 useMaxQp;
10092 VkVideoEncodeH265QpKHR maxQp;
10093 VkBool32 useMaxFrameSize;
10094 VkVideoEncodeH265FrameSizeKHR maxFrameSize;
10095} VkVideoEncodeH265RateControlLayerInfoKHR;
10096
10097typedef struct VkVideoEncodeH265GopRemainingFrameInfoKHR {
10098 VkStructureType sType;
10099 const void* pNext;
10100 VkBool32 useGopRemainingFrames;
10101 uint32_t gopRemainingI;
10102 uint32_t gopRemainingP;
10103 uint32_t gopRemainingB;
10104} VkVideoEncodeH265GopRemainingFrameInfoKHR;
10105
10106
10107
10108// VK_KHR_video_decode_h264 is a preprocessor guard. Do not pass it to API calls.
10109#define VK_KHR_video_decode_h264 1
10110#include "vk_video/vulkan_video_codec_h264std_decode.h"
10111#define VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION 9
10112#define VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME "VK_KHR_video_decode_h264"
10113
10114typedef enum VkVideoDecodeH264PictureLayoutFlagBitsKHR {
10115 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0,
10116 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0x00000001,
10117 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0x00000002,
10118 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10119} VkVideoDecodeH264PictureLayoutFlagBitsKHR;
10120typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR;
10121typedef struct VkVideoDecodeH264ProfileInfoKHR {
10122 VkStructureType sType;
10123 const void* pNext;
10124 StdVideoH264ProfileIdc stdProfileIdc;
10125 VkVideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout;
10126} VkVideoDecodeH264ProfileInfoKHR;
10127
10128typedef struct VkVideoDecodeH264CapabilitiesKHR {
10129 VkStructureType sType;
10130 void* pNext;
10131 StdVideoH264LevelIdc maxLevelIdc;
10132 VkOffset2D fieldOffsetGranularity;
10133} VkVideoDecodeH264CapabilitiesKHR;
10134
10135typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR {
10136 VkStructureType sType;
10137 const void* pNext;
10138 uint32_t stdSPSCount;
10139 const StdVideoH264SequenceParameterSet* pStdSPSs;
10140 uint32_t stdPPSCount;
10141 const StdVideoH264PictureParameterSet* pStdPPSs;
10142} VkVideoDecodeH264SessionParametersAddInfoKHR;
10143
10144typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR {
10145 VkStructureType sType;
10146 const void* pNext;
10147 uint32_t maxStdSPSCount;
10148 uint32_t maxStdPPSCount;
10149 const VkVideoDecodeH264SessionParametersAddInfoKHR* pParametersAddInfo;
10150} VkVideoDecodeH264SessionParametersCreateInfoKHR;
10151
10152typedef struct VkVideoDecodeH264PictureInfoKHR {
10153 VkStructureType sType;
10154 const void* pNext;
10155 const StdVideoDecodeH264PictureInfo* pStdPictureInfo;
10156 uint32_t sliceCount;
10157 const uint32_t* pSliceOffsets;
10158} VkVideoDecodeH264PictureInfoKHR;
10159
10160typedef struct VkVideoDecodeH264DpbSlotInfoKHR {
10161 VkStructureType sType;
10162 const void* pNext;
10163 const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo;
10164} VkVideoDecodeH264DpbSlotInfoKHR;
10165
10166
10167
10168// VK_KHR_dynamic_rendering is a preprocessor guard. Do not pass it to API calls.
10169#define VK_KHR_dynamic_rendering 1
10170#define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
10171#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
10172typedef VkRenderingFlags VkRenderingFlagsKHR;
10173
10174typedef VkRenderingFlagBits VkRenderingFlagBitsKHR;
10175
10176typedef VkRenderingInfo VkRenderingInfoKHR;
10177
10178typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
10179
10180typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
10181
10182typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
10183
10184typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
10185
10186typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
10187typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer commandBuffer);
10188
10189#ifndef VK_NO_PROTOTYPES
10190#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10191VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
10192 VkCommandBuffer commandBuffer,
10193 const VkRenderingInfo* pRenderingInfo);
10194#endif
10195
10196#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10197VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
10198 VkCommandBuffer commandBuffer);
10199#endif
10200#endif
10201
10202
10203// VK_KHR_multiview is a preprocessor guard. Do not pass it to API calls.
10204#define VK_KHR_multiview 1
10205#define VK_KHR_MULTIVIEW_SPEC_VERSION 1
10206#define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
10207typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
10208
10209typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
10210
10211typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
10212
10213
10214
10215// VK_KHR_get_physical_device_properties2 is a preprocessor guard. Do not pass it to API calls.
10216#define VK_KHR_get_physical_device_properties2 1
10217#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
10218#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
10219typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
10220
10221typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
10222
10223typedef VkFormatProperties2 VkFormatProperties2KHR;
10224
10225typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
10226
10227typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
10228
10229typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
10230
10231typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
10232
10233typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
10234
10235typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
10236
10237typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
10238typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
10239typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
10240typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
10241typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
10242typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
10243typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
10244
10245#ifndef VK_NO_PROTOTYPES
10246#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10247VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
10248 VkPhysicalDevice physicalDevice,
10249 VkPhysicalDeviceFeatures2* pFeatures);
10250#endif
10251
10252#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10253VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
10254 VkPhysicalDevice physicalDevice,
10255 VkPhysicalDeviceProperties2* pProperties);
10256#endif
10257
10258#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10259VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
10260 VkPhysicalDevice physicalDevice,
10261 VkFormat format,
10262 VkFormatProperties2* pFormatProperties);
10263#endif
10264
10265#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10266VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
10267 VkPhysicalDevice physicalDevice,
10268 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
10269 VkImageFormatProperties2* pImageFormatProperties);
10270#endif
10271
10272#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10273VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
10274 VkPhysicalDevice physicalDevice,
10275 uint32_t* pQueueFamilyPropertyCount,
10276 VkQueueFamilyProperties2* pQueueFamilyProperties);
10277#endif
10278
10279#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10280VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
10281 VkPhysicalDevice physicalDevice,
10282 VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
10283#endif
10284
10285#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10286VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
10287 VkPhysicalDevice physicalDevice,
10288 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
10289 uint32_t* pPropertyCount,
10290 VkSparseImageFormatProperties2* pProperties);
10291#endif
10292#endif
10293
10294
10295// VK_KHR_device_group is a preprocessor guard. Do not pass it to API calls.
10296#define VK_KHR_device_group 1
10297#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4
10298#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
10299typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
10300
10301typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
10302
10303typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
10304
10305typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
10306
10307typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
10308
10309typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
10310
10311typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
10312
10313typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
10314
10315typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
10316
10317typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
10318
10319typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
10320
10321typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
10322typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
10323typedef 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);
10324
10325#ifndef VK_NO_PROTOTYPES
10326#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10327VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
10328 VkDevice device,
10329 uint32_t heapIndex,
10330 uint32_t localDeviceIndex,
10331 uint32_t remoteDeviceIndex,
10332 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
10333#endif
10334
10335#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10336VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
10337 VkCommandBuffer commandBuffer,
10338 uint32_t deviceMask);
10339#endif
10340
10341#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10342VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
10343 VkCommandBuffer commandBuffer,
10344 uint32_t baseGroupX,
10345 uint32_t baseGroupY,
10346 uint32_t baseGroupZ,
10347 uint32_t groupCountX,
10348 uint32_t groupCountY,
10349 uint32_t groupCountZ);
10350#endif
10351#endif
10352
10353
10354// VK_KHR_shader_draw_parameters is a preprocessor guard. Do not pass it to API calls.
10355#define VK_KHR_shader_draw_parameters 1
10356#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
10357#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
10358
10359
10360// VK_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
10361#define VK_KHR_maintenance1 1
10362#define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
10363#define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
10364// VK_KHR_MAINTENANCE1_SPEC_VERSION is a legacy alias
10365#define VK_KHR_MAINTENANCE1_SPEC_VERSION VK_KHR_MAINTENANCE_1_SPEC_VERSION
10366// VK_KHR_MAINTENANCE1_EXTENSION_NAME is a legacy alias
10367#define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME
10368typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
10369
10370typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
10371
10372#ifndef VK_NO_PROTOTYPES
10373#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10374VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
10375 VkDevice device,
10376 VkCommandPool commandPool,
10377 VkCommandPoolTrimFlags flags);
10378#endif
10379#endif
10380
10381
10382// VK_KHR_device_group_creation is a preprocessor guard. Do not pass it to API calls.
10383#define VK_KHR_device_group_creation 1
10384#define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
10385#define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
10386#define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE
10387typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
10388
10389typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
10390
10391typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
10392
10393#ifndef VK_NO_PROTOTYPES
10394#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10395VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
10396 VkInstance instance,
10397 uint32_t* pPhysicalDeviceGroupCount,
10398 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
10399#endif
10400#endif
10401
10402
10403// VK_KHR_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
10404#define VK_KHR_external_memory_capabilities 1
10405#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
10406#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
10407#define VK_LUID_SIZE_KHR VK_LUID_SIZE
10408typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
10409
10410typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
10411
10412typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
10413
10414typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
10415
10416typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
10417
10418typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
10419
10420typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
10421
10422typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
10423
10424typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
10425
10426typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
10427
10428typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
10429
10430#ifndef VK_NO_PROTOTYPES
10431#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10432VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
10433 VkPhysicalDevice physicalDevice,
10434 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
10435 VkExternalBufferProperties* pExternalBufferProperties);
10436#endif
10437#endif
10438
10439
10440// VK_KHR_external_memory is a preprocessor guard. Do not pass it to API calls.
10441#define VK_KHR_external_memory 1
10442#define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
10443#define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
10444#define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL
10445typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
10446
10447typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
10448
10449typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
10450
10451
10452
10453// VK_KHR_external_memory_fd is a preprocessor guard. Do not pass it to API calls.
10454#define VK_KHR_external_memory_fd 1
10455#define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
10456#define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
10457typedef struct VkImportMemoryFdInfoKHR {
10458 VkStructureType sType;
10459 const void* pNext;
10460 VkExternalMemoryHandleTypeFlagBits handleType;
10461 int fd;
10462} VkImportMemoryFdInfoKHR;
10463
10464typedef struct VkMemoryFdPropertiesKHR {
10465 VkStructureType sType;
10466 void* pNext;
10467 uint32_t memoryTypeBits;
10468} VkMemoryFdPropertiesKHR;
10469
10470typedef struct VkMemoryGetFdInfoKHR {
10471 VkStructureType sType;
10472 const void* pNext;
10473 VkDeviceMemory memory;
10474 VkExternalMemoryHandleTypeFlagBits handleType;
10475} VkMemoryGetFdInfoKHR;
10476
10477typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
10478typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
10479
10480#ifndef VK_NO_PROTOTYPES
10481#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10482VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
10483 VkDevice device,
10484 const VkMemoryGetFdInfoKHR* pGetFdInfo,
10485 int* pFd);
10486#endif
10487
10488#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10489VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
10490 VkDevice device,
10491 VkExternalMemoryHandleTypeFlagBits handleType,
10492 int fd,
10493 VkMemoryFdPropertiesKHR* pMemoryFdProperties);
10494#endif
10495#endif
10496
10497
10498// VK_KHR_external_semaphore_capabilities is a preprocessor guard. Do not pass it to API calls.
10499#define VK_KHR_external_semaphore_capabilities 1
10500#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
10501#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
10502typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
10503
10504typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
10505
10506typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
10507
10508typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
10509
10510typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
10511
10512typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
10513
10514typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
10515
10516#ifndef VK_NO_PROTOTYPES
10517#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10518VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
10519 VkPhysicalDevice physicalDevice,
10520 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
10521 VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
10522#endif
10523#endif
10524
10525
10526// VK_KHR_external_semaphore is a preprocessor guard. Do not pass it to API calls.
10527#define VK_KHR_external_semaphore 1
10528#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
10529#define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
10530typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
10531
10532typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
10533
10534typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
10535
10536
10537
10538// VK_KHR_external_semaphore_fd is a preprocessor guard. Do not pass it to API calls.
10539#define VK_KHR_external_semaphore_fd 1
10540#define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
10541#define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
10542typedef struct VkImportSemaphoreFdInfoKHR {
10543 VkStructureType sType;
10544 const void* pNext;
10545 VkSemaphore semaphore;
10546 VkSemaphoreImportFlags flags;
10547 VkExternalSemaphoreHandleTypeFlagBits handleType;
10548 int fd;
10549} VkImportSemaphoreFdInfoKHR;
10550
10551typedef struct VkSemaphoreGetFdInfoKHR {
10552 VkStructureType sType;
10553 const void* pNext;
10554 VkSemaphore semaphore;
10555 VkExternalSemaphoreHandleTypeFlagBits handleType;
10556} VkSemaphoreGetFdInfoKHR;
10557
10558typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
10559typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
10560
10561#ifndef VK_NO_PROTOTYPES
10562#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10563VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
10564 VkDevice device,
10565 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
10566#endif
10567
10568#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10569VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
10570 VkDevice device,
10571 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
10572 int* pFd);
10573#endif
10574#endif
10575
10576
10577// VK_KHR_push_descriptor is a preprocessor guard. Do not pass it to API calls.
10578#define VK_KHR_push_descriptor 1
10579#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
10580#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
10581typedef VkPhysicalDevicePushDescriptorProperties VkPhysicalDevicePushDescriptorPropertiesKHR;
10582
10583typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
10584typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
10585
10586#ifndef VK_NO_PROTOTYPES
10587#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10588VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
10589 VkCommandBuffer commandBuffer,
10590 VkPipelineBindPoint pipelineBindPoint,
10591 VkPipelineLayout layout,
10592 uint32_t set,
10593 uint32_t descriptorWriteCount,
10594 const VkWriteDescriptorSet* pDescriptorWrites);
10595#endif
10596
10597#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10598VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
10599 VkCommandBuffer commandBuffer,
10600 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10601 VkPipelineLayout layout,
10602 uint32_t set,
10603 const void* pData);
10604#endif
10605#endif
10606
10607
10608// VK_KHR_shader_float16_int8 is a preprocessor guard. Do not pass it to API calls.
10609#define VK_KHR_shader_float16_int8 1
10610#define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
10611#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
10612typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
10613
10614typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
10615
10616
10617
10618// VK_KHR_16bit_storage is a preprocessor guard. Do not pass it to API calls.
10619#define VK_KHR_16bit_storage 1
10620#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
10621#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
10622typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
10623
10624
10625
10626// VK_KHR_incremental_present is a preprocessor guard. Do not pass it to API calls.
10627#define VK_KHR_incremental_present 1
10628#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
10629#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
10630typedef struct VkRectLayerKHR {
10631 VkOffset2D offset;
10632 VkExtent2D extent;
10633 uint32_t layer;
10634} VkRectLayerKHR;
10635
10636typedef struct VkPresentRegionKHR {
10637 uint32_t rectangleCount;
10638 const VkRectLayerKHR* pRectangles;
10639} VkPresentRegionKHR;
10640
10641typedef struct VkPresentRegionsKHR {
10642 VkStructureType sType;
10643 const void* pNext;
10644 uint32_t swapchainCount;
10645 const VkPresentRegionKHR* pRegions;
10646} VkPresentRegionsKHR;
10647
10648
10649
10650// VK_KHR_descriptor_update_template is a preprocessor guard. Do not pass it to API calls.
10651#define VK_KHR_descriptor_update_template 1
10652typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
10653
10654#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
10655#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
10656typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
10657
10658typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
10659
10660typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
10661
10662typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
10663
10664typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
10665typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
10666typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
10667
10668#ifndef VK_NO_PROTOTYPES
10669#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10670VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
10671 VkDevice device,
10672 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
10673 const VkAllocationCallbacks* pAllocator,
10674 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
10675#endif
10676
10677#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10678VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
10679 VkDevice device,
10680 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10681 const VkAllocationCallbacks* pAllocator);
10682#endif
10683
10684#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10685VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
10686 VkDevice device,
10687 VkDescriptorSet descriptorSet,
10688 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10689 const void* pData);
10690#endif
10691#endif
10692
10693
10694// VK_KHR_imageless_framebuffer is a preprocessor guard. Do not pass it to API calls.
10695#define VK_KHR_imageless_framebuffer 1
10696#define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
10697#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
10698typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
10699
10700typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
10701
10702typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
10703
10704typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
10705
10706
10707
10708// VK_KHR_create_renderpass2 is a preprocessor guard. Do not pass it to API calls.
10709#define VK_KHR_create_renderpass2 1
10710#define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
10711#define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
10712typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
10713
10714typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
10715
10716typedef VkAttachmentReference2 VkAttachmentReference2KHR;
10717
10718typedef VkSubpassDescription2 VkSubpassDescription2KHR;
10719
10720typedef VkSubpassDependency2 VkSubpassDependency2KHR;
10721
10722typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
10723
10724typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
10725
10726typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
10727typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
10728typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
10729typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
10730
10731#ifndef VK_NO_PROTOTYPES
10732#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10733VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
10734 VkDevice device,
10735 const VkRenderPassCreateInfo2* pCreateInfo,
10736 const VkAllocationCallbacks* pAllocator,
10737 VkRenderPass* pRenderPass);
10738#endif
10739
10740#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10741VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
10742 VkCommandBuffer commandBuffer,
10743 const VkRenderPassBeginInfo* pRenderPassBegin,
10744 const VkSubpassBeginInfo* pSubpassBeginInfo);
10745#endif
10746
10747#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10748VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
10749 VkCommandBuffer commandBuffer,
10750 const VkSubpassBeginInfo* pSubpassBeginInfo,
10751 const VkSubpassEndInfo* pSubpassEndInfo);
10752#endif
10753
10754#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10755VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
10756 VkCommandBuffer commandBuffer,
10757 const VkSubpassEndInfo* pSubpassEndInfo);
10758#endif
10759#endif
10760
10761
10762// VK_KHR_shared_presentable_image is a preprocessor guard. Do not pass it to API calls.
10763#define VK_KHR_shared_presentable_image 1
10764#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
10765#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
10766typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
10767 VkStructureType sType;
10768 void* pNext;
10769 VkImageUsageFlags sharedPresentSupportedUsageFlags;
10770} VkSharedPresentSurfaceCapabilitiesKHR;
10771
10772typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
10773
10774#ifndef VK_NO_PROTOTYPES
10775#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10776VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
10777 VkDevice device,
10778 VkSwapchainKHR swapchain);
10779#endif
10780#endif
10781
10782
10783// VK_KHR_external_fence_capabilities is a preprocessor guard. Do not pass it to API calls.
10784#define VK_KHR_external_fence_capabilities 1
10785#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
10786#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
10787typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
10788
10789typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
10790
10791typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
10792
10793typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
10794
10795typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
10796
10797typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
10798
10799typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
10800
10801#ifndef VK_NO_PROTOTYPES
10802#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10803VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
10804 VkPhysicalDevice physicalDevice,
10805 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
10806 VkExternalFenceProperties* pExternalFenceProperties);
10807#endif
10808#endif
10809
10810
10811// VK_KHR_external_fence is a preprocessor guard. Do not pass it to API calls.
10812#define VK_KHR_external_fence 1
10813#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
10814#define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
10815typedef VkFenceImportFlags VkFenceImportFlagsKHR;
10816
10817typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
10818
10819typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
10820
10821
10822
10823// VK_KHR_external_fence_fd is a preprocessor guard. Do not pass it to API calls.
10824#define VK_KHR_external_fence_fd 1
10825#define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
10826#define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
10827typedef struct VkImportFenceFdInfoKHR {
10828 VkStructureType sType;
10829 const void* pNext;
10830 VkFence fence;
10831 VkFenceImportFlags flags;
10832 VkExternalFenceHandleTypeFlagBits handleType;
10833 int fd;
10834} VkImportFenceFdInfoKHR;
10835
10836typedef struct VkFenceGetFdInfoKHR {
10837 VkStructureType sType;
10838 const void* pNext;
10839 VkFence fence;
10840 VkExternalFenceHandleTypeFlagBits handleType;
10841} VkFenceGetFdInfoKHR;
10842
10843typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
10844typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
10845
10846#ifndef VK_NO_PROTOTYPES
10847#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10848VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
10849 VkDevice device,
10850 const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
10851#endif
10852
10853#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10854VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
10855 VkDevice device,
10856 const VkFenceGetFdInfoKHR* pGetFdInfo,
10857 int* pFd);
10858#endif
10859#endif
10860
10861
10862// VK_KHR_performance_query is a preprocessor guard. Do not pass it to API calls.
10863#define VK_KHR_performance_query 1
10864#define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
10865#define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
10866
10867typedef enum VkPerformanceCounterUnitKHR {
10868 VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
10869 VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
10870 VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
10871 VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
10872 VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
10873 VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
10874 VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
10875 VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
10876 VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
10877 VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
10878 VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
10879 VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
10880} VkPerformanceCounterUnitKHR;
10881
10882typedef enum VkPerformanceCounterScopeKHR {
10883 VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
10884 VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
10885 VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
10886 // VK_QUERY_SCOPE_COMMAND_BUFFER_KHR is a legacy alias
10887 VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
10888 // VK_QUERY_SCOPE_RENDER_PASS_KHR is a legacy alias
10889 VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
10890 // VK_QUERY_SCOPE_COMMAND_KHR is a legacy alias
10891 VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
10892 VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
10893} VkPerformanceCounterScopeKHR;
10894
10895typedef enum VkPerformanceCounterStorageKHR {
10896 VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
10897 VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
10898 VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
10899 VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
10900 VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
10901 VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
10902 VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
10903} VkPerformanceCounterStorageKHR;
10904
10905typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
10906 VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001,
10907 VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002,
10908 // VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR is a legacy alias
10909 VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
10910 // VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR is a legacy alias
10911 VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
10912 VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10913} VkPerformanceCounterDescriptionFlagBitsKHR;
10914typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
10915
10916typedef enum VkAcquireProfilingLockFlagBitsKHR {
10917 VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10918} VkAcquireProfilingLockFlagBitsKHR;
10919typedef VkFlags VkAcquireProfilingLockFlagsKHR;
10920typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
10921 VkStructureType sType;
10922 void* pNext;
10923 VkBool32 performanceCounterQueryPools;
10924 VkBool32 performanceCounterMultipleQueryPools;
10925} VkPhysicalDevicePerformanceQueryFeaturesKHR;
10926
10927typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
10928 VkStructureType sType;
10929 void* pNext;
10930 VkBool32 allowCommandBufferQueryCopies;
10931} VkPhysicalDevicePerformanceQueryPropertiesKHR;
10932
10933typedef struct VkPerformanceCounterKHR {
10934 VkStructureType sType;
10935 void* pNext;
10936 VkPerformanceCounterUnitKHR unit;
10937 VkPerformanceCounterScopeKHR scope;
10938 VkPerformanceCounterStorageKHR storage;
10939 uint8_t uuid[VK_UUID_SIZE];
10940} VkPerformanceCounterKHR;
10941
10942typedef struct VkPerformanceCounterDescriptionKHR {
10943 VkStructureType sType;
10944 void* pNext;
10945 VkPerformanceCounterDescriptionFlagsKHR flags;
10946 char name[VK_MAX_DESCRIPTION_SIZE];
10947 char category[VK_MAX_DESCRIPTION_SIZE];
10948 char description[VK_MAX_DESCRIPTION_SIZE];
10949} VkPerformanceCounterDescriptionKHR;
10950
10951typedef struct VkQueryPoolPerformanceCreateInfoKHR {
10952 VkStructureType sType;
10953 const void* pNext;
10954 uint32_t queueFamilyIndex;
10955 uint32_t counterIndexCount;
10956 const uint32_t* pCounterIndices;
10957} VkQueryPoolPerformanceCreateInfoKHR;
10958
10959typedef union VkPerformanceCounterResultKHR {
10960 int32_t int32;
10961 int64_t int64;
10962 uint32_t uint32;
10963 uint64_t uint64;
10964 float float32;
10965 double float64;
10966} VkPerformanceCounterResultKHR;
10967
10968typedef struct VkAcquireProfilingLockInfoKHR {
10969 VkStructureType sType;
10970 const void* pNext;
10971 VkAcquireProfilingLockFlagsKHR flags;
10972 uint64_t timeout;
10973} VkAcquireProfilingLockInfoKHR;
10974
10975typedef struct VkPerformanceQuerySubmitInfoKHR {
10976 VkStructureType sType;
10977 const void* pNext;
10978 uint32_t counterPassIndex;
10979} VkPerformanceQuerySubmitInfoKHR;
10980
10981typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
10982typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
10983typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
10984typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
10985
10986#ifndef VK_NO_PROTOTYPES
10987#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10988VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
10989 VkPhysicalDevice physicalDevice,
10990 uint32_t queueFamilyIndex,
10991 uint32_t* pCounterCount,
10992 VkPerformanceCounterKHR* pCounters,
10993 VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
10994#endif
10995
10996#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10997VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
10998 VkPhysicalDevice physicalDevice,
10999 const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
11000 uint32_t* pNumPasses);
11001#endif
11002
11003#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11004VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
11005 VkDevice device,
11006 const VkAcquireProfilingLockInfoKHR* pInfo);
11007#endif
11008
11009#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11010VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
11011 VkDevice device);
11012#endif
11013#endif
11014
11015
11016// VK_KHR_maintenance2 is a preprocessor guard. Do not pass it to API calls.
11017#define VK_KHR_maintenance2 1
11018#define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
11019#define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
11020// VK_KHR_MAINTENANCE2_SPEC_VERSION is a legacy alias
11021#define VK_KHR_MAINTENANCE2_SPEC_VERSION VK_KHR_MAINTENANCE_2_SPEC_VERSION
11022// VK_KHR_MAINTENANCE2_EXTENSION_NAME is a legacy alias
11023#define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME
11024typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
11025
11026typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
11027
11028typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
11029
11030typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
11031
11032typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
11033
11034typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
11035
11036typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
11037
11038
11039
11040// VK_KHR_get_surface_capabilities2 is a preprocessor guard. Do not pass it to API calls.
11041#define VK_KHR_get_surface_capabilities2 1
11042#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
11043#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
11044typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
11045 VkStructureType sType;
11046 const void* pNext;
11047 VkSurfaceKHR surface;
11048} VkPhysicalDeviceSurfaceInfo2KHR;
11049
11050typedef struct VkSurfaceCapabilities2KHR {
11051 VkStructureType sType;
11052 void* pNext;
11053 VkSurfaceCapabilitiesKHR surfaceCapabilities;
11054} VkSurfaceCapabilities2KHR;
11055
11056typedef struct VkSurfaceFormat2KHR {
11057 VkStructureType sType;
11058 void* pNext;
11059 VkSurfaceFormatKHR surfaceFormat;
11060} VkSurfaceFormat2KHR;
11061
11062typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
11063typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
11064
11065#ifndef VK_NO_PROTOTYPES
11066#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11067VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
11068 VkPhysicalDevice physicalDevice,
11069 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11070 VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
11071#endif
11072
11073#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11074VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
11075 VkPhysicalDevice physicalDevice,
11076 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11077 uint32_t* pSurfaceFormatCount,
11078 VkSurfaceFormat2KHR* pSurfaceFormats);
11079#endif
11080#endif
11081
11082
11083// VK_KHR_variable_pointers is a preprocessor guard. Do not pass it to API calls.
11084#define VK_KHR_variable_pointers 1
11085#define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
11086#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
11087typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
11088
11089typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
11090
11091
11092
11093// VK_KHR_get_display_properties2 is a preprocessor guard. Do not pass it to API calls.
11094#define VK_KHR_get_display_properties2 1
11095#define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
11096#define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
11097typedef struct VkDisplayProperties2KHR {
11098 VkStructureType sType;
11099 void* pNext;
11100 VkDisplayPropertiesKHR displayProperties;
11101} VkDisplayProperties2KHR;
11102
11103typedef struct VkDisplayPlaneProperties2KHR {
11104 VkStructureType sType;
11105 void* pNext;
11106 VkDisplayPlanePropertiesKHR displayPlaneProperties;
11107} VkDisplayPlaneProperties2KHR;
11108
11109typedef struct VkDisplayModeProperties2KHR {
11110 VkStructureType sType;
11111 void* pNext;
11112 VkDisplayModePropertiesKHR displayModeProperties;
11113} VkDisplayModeProperties2KHR;
11114
11115typedef struct VkDisplayPlaneInfo2KHR {
11116 VkStructureType sType;
11117 const void* pNext;
11118 VkDisplayModeKHR mode;
11119 uint32_t planeIndex;
11120} VkDisplayPlaneInfo2KHR;
11121
11122typedef struct VkDisplayPlaneCapabilities2KHR {
11123 VkStructureType sType;
11124 void* pNext;
11125 VkDisplayPlaneCapabilitiesKHR capabilities;
11126} VkDisplayPlaneCapabilities2KHR;
11127
11128typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
11129typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
11130typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
11131typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
11132
11133#ifndef VK_NO_PROTOTYPES
11134#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11135VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
11136 VkPhysicalDevice physicalDevice,
11137 uint32_t* pPropertyCount,
11138 VkDisplayProperties2KHR* pProperties);
11139#endif
11140
11141#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11142VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
11143 VkPhysicalDevice physicalDevice,
11144 uint32_t* pPropertyCount,
11145 VkDisplayPlaneProperties2KHR* pProperties);
11146#endif
11147
11148#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11149VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
11150 VkPhysicalDevice physicalDevice,
11151 VkDisplayKHR display,
11152 uint32_t* pPropertyCount,
11153 VkDisplayModeProperties2KHR* pProperties);
11154#endif
11155
11156#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11157VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
11158 VkPhysicalDevice physicalDevice,
11159 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
11160 VkDisplayPlaneCapabilities2KHR* pCapabilities);
11161#endif
11162#endif
11163
11164
11165// VK_KHR_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
11166#define VK_KHR_dedicated_allocation 1
11167#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
11168#define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
11169typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
11170
11171typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
11172
11173
11174
11175// VK_KHR_storage_buffer_storage_class is a preprocessor guard. Do not pass it to API calls.
11176#define VK_KHR_storage_buffer_storage_class 1
11177#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
11178#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
11179
11180
11181// VK_KHR_shader_bfloat16 is a preprocessor guard. Do not pass it to API calls.
11182#define VK_KHR_shader_bfloat16 1
11183#define VK_KHR_SHADER_BFLOAT16_SPEC_VERSION 1
11184#define VK_KHR_SHADER_BFLOAT16_EXTENSION_NAME "VK_KHR_shader_bfloat16"
11185typedef struct VkPhysicalDeviceShaderBfloat16FeaturesKHR {
11186 VkStructureType sType;
11187 void* pNext;
11188 VkBool32 shaderBFloat16Type;
11189 VkBool32 shaderBFloat16DotProduct;
11190 VkBool32 shaderBFloat16CooperativeMatrix;
11191} VkPhysicalDeviceShaderBfloat16FeaturesKHR;
11192
11193
11194
11195// VK_KHR_relaxed_block_layout is a preprocessor guard. Do not pass it to API calls.
11196#define VK_KHR_relaxed_block_layout 1
11197#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
11198#define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
11199
11200
11201// VK_KHR_get_memory_requirements2 is a preprocessor guard. Do not pass it to API calls.
11202#define VK_KHR_get_memory_requirements2 1
11203#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
11204#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
11205typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
11206
11207typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
11208
11209typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
11210
11211typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
11212
11213typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
11214
11215typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11216typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11217typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11218
11219#ifndef VK_NO_PROTOTYPES
11220#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11221VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
11222 VkDevice device,
11223 const VkImageMemoryRequirementsInfo2* pInfo,
11224 VkMemoryRequirements2* pMemoryRequirements);
11225#endif
11226
11227#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11228VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
11229 VkDevice device,
11230 const VkBufferMemoryRequirementsInfo2* pInfo,
11231 VkMemoryRequirements2* pMemoryRequirements);
11232#endif
11233
11234#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11235VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
11236 VkDevice device,
11237 const VkImageSparseMemoryRequirementsInfo2* pInfo,
11238 uint32_t* pSparseMemoryRequirementCount,
11239 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11240#endif
11241#endif
11242
11243
11244// VK_KHR_image_format_list is a preprocessor guard. Do not pass it to API calls.
11245#define VK_KHR_image_format_list 1
11246#define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
11247#define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
11248typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
11249
11250
11251
11252// VK_KHR_sampler_ycbcr_conversion is a preprocessor guard. Do not pass it to API calls.
11253#define VK_KHR_sampler_ycbcr_conversion 1
11254typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
11255
11256#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
11257#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
11258typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
11259
11260typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
11261
11262typedef VkChromaLocation VkChromaLocationKHR;
11263
11264typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
11265
11266typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
11267
11268typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
11269
11270typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
11271
11272typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
11273
11274typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
11275
11276typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
11277typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
11278
11279#ifndef VK_NO_PROTOTYPES
11280#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11281VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
11282 VkDevice device,
11283 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
11284 const VkAllocationCallbacks* pAllocator,
11285 VkSamplerYcbcrConversion* pYcbcrConversion);
11286#endif
11287
11288#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11289VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
11290 VkDevice device,
11291 VkSamplerYcbcrConversion ycbcrConversion,
11292 const VkAllocationCallbacks* pAllocator);
11293#endif
11294#endif
11295
11296
11297// VK_KHR_bind_memory2 is a preprocessor guard. Do not pass it to API calls.
11298#define VK_KHR_bind_memory2 1
11299#define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
11300#define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
11301typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
11302
11303typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
11304
11305typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
11306typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
11307
11308#ifndef VK_NO_PROTOTYPES
11309#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11310VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
11311 VkDevice device,
11312 uint32_t bindInfoCount,
11313 const VkBindBufferMemoryInfo* pBindInfos);
11314#endif
11315
11316#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11317VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
11318 VkDevice device,
11319 uint32_t bindInfoCount,
11320 const VkBindImageMemoryInfo* pBindInfos);
11321#endif
11322#endif
11323
11324
11325// VK_KHR_maintenance3 is a preprocessor guard. Do not pass it to API calls.
11326#define VK_KHR_maintenance3 1
11327#define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
11328#define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
11329// VK_KHR_MAINTENANCE3_SPEC_VERSION is a legacy alias
11330#define VK_KHR_MAINTENANCE3_SPEC_VERSION VK_KHR_MAINTENANCE_3_SPEC_VERSION
11331// VK_KHR_MAINTENANCE3_EXTENSION_NAME is a legacy alias
11332#define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME
11333typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
11334
11335typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
11336
11337typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
11338
11339#ifndef VK_NO_PROTOTYPES
11340#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11341VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
11342 VkDevice device,
11343 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
11344 VkDescriptorSetLayoutSupport* pSupport);
11345#endif
11346#endif
11347
11348
11349// VK_KHR_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
11350#define VK_KHR_draw_indirect_count 1
11351#define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
11352#define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
11353typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
11354typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
11355
11356#ifndef VK_NO_PROTOTYPES
11357#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11358VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
11359 VkCommandBuffer commandBuffer,
11360 VkBuffer buffer,
11361 VkDeviceSize offset,
11362 VkBuffer countBuffer,
11363 VkDeviceSize countBufferOffset,
11364 uint32_t maxDrawCount,
11365 uint32_t stride);
11366#endif
11367
11368#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11369VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
11370 VkCommandBuffer commandBuffer,
11371 VkBuffer buffer,
11372 VkDeviceSize offset,
11373 VkBuffer countBuffer,
11374 VkDeviceSize countBufferOffset,
11375 uint32_t maxDrawCount,
11376 uint32_t stride);
11377#endif
11378#endif
11379
11380
11381// VK_KHR_shader_subgroup_extended_types is a preprocessor guard. Do not pass it to API calls.
11382#define VK_KHR_shader_subgroup_extended_types 1
11383#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
11384#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
11385typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
11386
11387
11388
11389// VK_KHR_8bit_storage is a preprocessor guard. Do not pass it to API calls.
11390#define VK_KHR_8bit_storage 1
11391#define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
11392#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
11393typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
11394
11395
11396
11397// VK_KHR_shader_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
11398#define VK_KHR_shader_atomic_int64 1
11399#define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
11400#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
11401typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
11402
11403
11404
11405// VK_KHR_shader_clock is a preprocessor guard. Do not pass it to API calls.
11406#define VK_KHR_shader_clock 1
11407#define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1
11408#define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
11409typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
11410 VkStructureType sType;
11411 void* pNext;
11412 VkBool32 shaderSubgroupClock;
11413 VkBool32 shaderDeviceClock;
11414} VkPhysicalDeviceShaderClockFeaturesKHR;
11415
11416
11417
11418// VK_KHR_video_decode_h265 is a preprocessor guard. Do not pass it to API calls.
11419#define VK_KHR_video_decode_h265 1
11420#include "vk_video/vulkan_video_codec_h265std_decode.h"
11421#define VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION 8
11422#define VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME "VK_KHR_video_decode_h265"
11423typedef struct VkVideoDecodeH265ProfileInfoKHR {
11424 VkStructureType sType;
11425 const void* pNext;
11426 StdVideoH265ProfileIdc stdProfileIdc;
11427} VkVideoDecodeH265ProfileInfoKHR;
11428
11429typedef struct VkVideoDecodeH265CapabilitiesKHR {
11430 VkStructureType sType;
11431 void* pNext;
11432 StdVideoH265LevelIdc maxLevelIdc;
11433} VkVideoDecodeH265CapabilitiesKHR;
11434
11435typedef struct VkVideoDecodeH265SessionParametersAddInfoKHR {
11436 VkStructureType sType;
11437 const void* pNext;
11438 uint32_t stdVPSCount;
11439 const StdVideoH265VideoParameterSet* pStdVPSs;
11440 uint32_t stdSPSCount;
11441 const StdVideoH265SequenceParameterSet* pStdSPSs;
11442 uint32_t stdPPSCount;
11443 const StdVideoH265PictureParameterSet* pStdPPSs;
11444} VkVideoDecodeH265SessionParametersAddInfoKHR;
11445
11446typedef struct VkVideoDecodeH265SessionParametersCreateInfoKHR {
11447 VkStructureType sType;
11448 const void* pNext;
11449 uint32_t maxStdVPSCount;
11450 uint32_t maxStdSPSCount;
11451 uint32_t maxStdPPSCount;
11452 const VkVideoDecodeH265SessionParametersAddInfoKHR* pParametersAddInfo;
11453} VkVideoDecodeH265SessionParametersCreateInfoKHR;
11454
11455typedef struct VkVideoDecodeH265PictureInfoKHR {
11456 VkStructureType sType;
11457 const void* pNext;
11458 const StdVideoDecodeH265PictureInfo* pStdPictureInfo;
11459 uint32_t sliceSegmentCount;
11460 const uint32_t* pSliceSegmentOffsets;
11461} VkVideoDecodeH265PictureInfoKHR;
11462
11463typedef struct VkVideoDecodeH265DpbSlotInfoKHR {
11464 VkStructureType sType;
11465 const void* pNext;
11466 const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo;
11467} VkVideoDecodeH265DpbSlotInfoKHR;
11468
11469
11470
11471// VK_KHR_global_priority is a preprocessor guard. Do not pass it to API calls.
11472#define VK_KHR_global_priority 1
11473#define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
11474#define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
11475#define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR VK_MAX_GLOBAL_PRIORITY_SIZE
11476typedef VkQueueGlobalPriority VkQueueGlobalPriorityKHR;
11477
11478typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoKHR;
11479
11480typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
11481
11482typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesKHR;
11483
11484
11485
11486// VK_KHR_driver_properties is a preprocessor guard. Do not pass it to API calls.
11487#define VK_KHR_driver_properties 1
11488#define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
11489#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
11490#define VK_MAX_DRIVER_NAME_SIZE_KHR VK_MAX_DRIVER_NAME_SIZE
11491#define VK_MAX_DRIVER_INFO_SIZE_KHR VK_MAX_DRIVER_INFO_SIZE
11492typedef VkDriverId VkDriverIdKHR;
11493
11494typedef VkConformanceVersion VkConformanceVersionKHR;
11495
11496typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
11497
11498
11499
11500// VK_KHR_shader_float_controls is a preprocessor guard. Do not pass it to API calls.
11501#define VK_KHR_shader_float_controls 1
11502#define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
11503#define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
11504typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
11505
11506typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
11507
11508
11509
11510// VK_KHR_depth_stencil_resolve is a preprocessor guard. Do not pass it to API calls.
11511#define VK_KHR_depth_stencil_resolve 1
11512#define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
11513#define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
11514typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
11515
11516typedef VkResolveModeFlags VkResolveModeFlagsKHR;
11517
11518typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
11519
11520typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
11521
11522
11523
11524// VK_KHR_swapchain_mutable_format is a preprocessor guard. Do not pass it to API calls.
11525#define VK_KHR_swapchain_mutable_format 1
11526#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
11527#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
11528
11529
11530// VK_KHR_timeline_semaphore is a preprocessor guard. Do not pass it to API calls.
11531#define VK_KHR_timeline_semaphore 1
11532#define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
11533#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
11534typedef VkSemaphoreType VkSemaphoreTypeKHR;
11535
11536typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
11537
11538typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
11539
11540typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
11541
11542typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
11543
11544typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
11545
11546typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
11547
11548typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
11549
11550typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
11551
11552typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
11553typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
11554typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
11555
11556#ifndef VK_NO_PROTOTYPES
11557#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11558VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
11559 VkDevice device,
11560 VkSemaphore semaphore,
11561 uint64_t* pValue);
11562#endif
11563
11564#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11565VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
11566 VkDevice device,
11567 const VkSemaphoreWaitInfo* pWaitInfo,
11568 uint64_t timeout);
11569#endif
11570
11571#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11572VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
11573 VkDevice device,
11574 const VkSemaphoreSignalInfo* pSignalInfo);
11575#endif
11576#endif
11577
11578
11579// VK_KHR_vulkan_memory_model is a preprocessor guard. Do not pass it to API calls.
11580#define VK_KHR_vulkan_memory_model 1
11581#define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
11582#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
11583typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
11584
11585
11586
11587// VK_KHR_shader_terminate_invocation is a preprocessor guard. Do not pass it to API calls.
11588#define VK_KHR_shader_terminate_invocation 1
11589#define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
11590#define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
11591typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
11592
11593
11594
11595// VK_KHR_fragment_shading_rate is a preprocessor guard. Do not pass it to API calls.
11596#define VK_KHR_fragment_shading_rate 1
11597#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
11598#define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
11599
11600typedef enum VkFragmentShadingRateCombinerOpKHR {
11601 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
11602 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
11603 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
11604 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
11605 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
11606 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
11607} VkFragmentShadingRateCombinerOpKHR;
11608typedef struct VkFragmentShadingRateAttachmentInfoKHR {
11609 VkStructureType sType;
11610 const void* pNext;
11611 const VkAttachmentReference2* pFragmentShadingRateAttachment;
11612 VkExtent2D shadingRateAttachmentTexelSize;
11613} VkFragmentShadingRateAttachmentInfoKHR;
11614
11615typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
11616 VkStructureType sType;
11617 const void* pNext;
11618 VkExtent2D fragmentSize;
11619 VkFragmentShadingRateCombinerOpKHR combinerOps[2];
11620} VkPipelineFragmentShadingRateStateCreateInfoKHR;
11621
11622typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
11623 VkStructureType sType;
11624 void* pNext;
11625 VkBool32 pipelineFragmentShadingRate;
11626 VkBool32 primitiveFragmentShadingRate;
11627 VkBool32 attachmentFragmentShadingRate;
11628} VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
11629
11630typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
11631 VkStructureType sType;
11632 void* pNext;
11633 VkExtent2D minFragmentShadingRateAttachmentTexelSize;
11634 VkExtent2D maxFragmentShadingRateAttachmentTexelSize;
11635 uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
11636 VkBool32 primitiveFragmentShadingRateWithMultipleViewports;
11637 VkBool32 layeredShadingRateAttachments;
11638 VkBool32 fragmentShadingRateNonTrivialCombinerOps;
11639 VkExtent2D maxFragmentSize;
11640 uint32_t maxFragmentSizeAspectRatio;
11641 uint32_t maxFragmentShadingRateCoverageSamples;
11642 VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples;
11643 VkBool32 fragmentShadingRateWithShaderDepthStencilWrites;
11644 VkBool32 fragmentShadingRateWithSampleMask;
11645 VkBool32 fragmentShadingRateWithShaderSampleMask;
11646 VkBool32 fragmentShadingRateWithConservativeRasterization;
11647 VkBool32 fragmentShadingRateWithFragmentShaderInterlock;
11648 VkBool32 fragmentShadingRateWithCustomSampleLocations;
11649 VkBool32 fragmentShadingRateStrictMultiplyCombiner;
11650} VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
11651
11652typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
11653 VkStructureType sType;
11654 void* pNext;
11655 VkSampleCountFlags sampleCounts;
11656 VkExtent2D fragmentSize;
11657} VkPhysicalDeviceFragmentShadingRateKHR;
11658
11659typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
11660 VkStructureType sType;
11661 const void* pNext;
11662 VkImageView imageView;
11663 VkImageLayout imageLayout;
11664 VkExtent2D shadingRateAttachmentTexelSize;
11665} VkRenderingFragmentShadingRateAttachmentInfoKHR;
11666
11667typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
11668typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
11669
11670#ifndef VK_NO_PROTOTYPES
11671#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11672VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
11673 VkPhysicalDevice physicalDevice,
11674 uint32_t* pFragmentShadingRateCount,
11675 VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
11676#endif
11677
11678#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11679VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
11680 VkCommandBuffer commandBuffer,
11681 const VkExtent2D* pFragmentSize,
11682 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
11683#endif
11684#endif
11685
11686
11687// VK_KHR_dynamic_rendering_local_read is a preprocessor guard. Do not pass it to API calls.
11688#define VK_KHR_dynamic_rendering_local_read 1
11689#define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION 1
11690#define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME "VK_KHR_dynamic_rendering_local_read"
11691typedef VkPhysicalDeviceDynamicRenderingLocalReadFeatures VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR;
11692
11693typedef VkRenderingAttachmentLocationInfo VkRenderingAttachmentLocationInfoKHR;
11694
11695typedef VkRenderingInputAttachmentIndexInfo VkRenderingInputAttachmentIndexInfoKHR;
11696
11697typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocationsKHR)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
11698typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
11699
11700#ifndef VK_NO_PROTOTYPES
11701#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11702VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocationsKHR(
11703 VkCommandBuffer commandBuffer,
11704 const VkRenderingAttachmentLocationInfo* pLocationInfo);
11705#endif
11706
11707#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11708VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndicesKHR(
11709 VkCommandBuffer commandBuffer,
11710 const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
11711#endif
11712#endif
11713
11714
11715// VK_KHR_shader_quad_control is a preprocessor guard. Do not pass it to API calls.
11716#define VK_KHR_shader_quad_control 1
11717#define VK_KHR_SHADER_QUAD_CONTROL_SPEC_VERSION 1
11718#define VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME "VK_KHR_shader_quad_control"
11719typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR {
11720 VkStructureType sType;
11721 void* pNext;
11722 VkBool32 shaderQuadControl;
11723} VkPhysicalDeviceShaderQuadControlFeaturesKHR;
11724
11725
11726
11727// VK_KHR_spirv_1_4 is a preprocessor guard. Do not pass it to API calls.
11728#define VK_KHR_spirv_1_4 1
11729#define VK_KHR_SPIRV_1_4_SPEC_VERSION 1
11730#define VK_KHR_SPIRV_1_4_EXTENSION_NAME "VK_KHR_spirv_1_4"
11731
11732
11733// VK_KHR_surface_protected_capabilities is a preprocessor guard. Do not pass it to API calls.
11734#define VK_KHR_surface_protected_capabilities 1
11735#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
11736#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
11737typedef struct VkSurfaceProtectedCapabilitiesKHR {
11738 VkStructureType sType;
11739 void* pNext;
11740 VkBool32 supportsProtected;
11741} VkSurfaceProtectedCapabilitiesKHR;
11742
11743
11744
11745// VK_KHR_separate_depth_stencil_layouts is a preprocessor guard. Do not pass it to API calls.
11746#define VK_KHR_separate_depth_stencil_layouts 1
11747#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
11748#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
11749typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
11750
11751typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
11752
11753typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
11754
11755
11756
11757// VK_KHR_present_wait is a preprocessor guard. Do not pass it to API calls.
11758#define VK_KHR_present_wait 1
11759#define VK_KHR_PRESENT_WAIT_SPEC_VERSION 1
11760#define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
11761typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
11762 VkStructureType sType;
11763 void* pNext;
11764 VkBool32 presentWait;
11765} VkPhysicalDevicePresentWaitFeaturesKHR;
11766
11767typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
11768
11769#ifndef VK_NO_PROTOTYPES
11770#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11771VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
11772 VkDevice device,
11773 VkSwapchainKHR swapchain,
11774 uint64_t presentId,
11775 uint64_t timeout);
11776#endif
11777#endif
11778
11779
11780// VK_KHR_uniform_buffer_standard_layout is a preprocessor guard. Do not pass it to API calls.
11781#define VK_KHR_uniform_buffer_standard_layout 1
11782#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
11783#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
11784typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
11785
11786
11787
11788// VK_KHR_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
11789#define VK_KHR_buffer_device_address 1
11790#define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
11791#define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
11792typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
11793
11794typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
11795
11796typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
11797
11798typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
11799
11800typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
11801
11802typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
11803typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
11804typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
11805
11806#ifndef VK_NO_PROTOTYPES
11807#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11808VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
11809 VkDevice device,
11810 const VkBufferDeviceAddressInfo* pInfo);
11811#endif
11812
11813#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11814VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
11815 VkDevice device,
11816 const VkBufferDeviceAddressInfo* pInfo);
11817#endif
11818
11819#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11820VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
11821 VkDevice device,
11822 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
11823#endif
11824#endif
11825
11826
11827// VK_KHR_deferred_host_operations is a preprocessor guard. Do not pass it to API calls.
11828#define VK_KHR_deferred_host_operations 1
11829VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
11830#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
11831#define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
11832typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
11833typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
11834typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
11835typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
11836typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
11837
11838#ifndef VK_NO_PROTOTYPES
11839#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11840VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
11841 VkDevice device,
11842 const VkAllocationCallbacks* pAllocator,
11843 VkDeferredOperationKHR* pDeferredOperation);
11844#endif
11845
11846#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11847VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
11848 VkDevice device,
11849 VkDeferredOperationKHR operation,
11850 const VkAllocationCallbacks* pAllocator);
11851#endif
11852
11853#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11854VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
11855 VkDevice device,
11856 VkDeferredOperationKHR operation);
11857#endif
11858
11859#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11860VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
11861 VkDevice device,
11862 VkDeferredOperationKHR operation);
11863#endif
11864
11865#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11866VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
11867 VkDevice device,
11868 VkDeferredOperationKHR operation);
11869#endif
11870#endif
11871
11872
11873// VK_KHR_pipeline_executable_properties is a preprocessor guard. Do not pass it to API calls.
11874#define VK_KHR_pipeline_executable_properties 1
11875#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
11876#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
11877
11878typedef enum VkPipelineExecutableStatisticFormatKHR {
11879 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
11880 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
11881 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
11882 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
11883 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
11884} VkPipelineExecutableStatisticFormatKHR;
11885typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
11886 VkStructureType sType;
11887 void* pNext;
11888 VkBool32 pipelineExecutableInfo;
11889} VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
11890
11891typedef struct VkPipelineInfoKHR {
11892 VkStructureType sType;
11893 const void* pNext;
11894 VkPipeline pipeline;
11895} VkPipelineInfoKHR;
11896
11897typedef struct VkPipelineExecutablePropertiesKHR {
11898 VkStructureType sType;
11899 void* pNext;
11900 VkShaderStageFlags stages;
11901 char name[VK_MAX_DESCRIPTION_SIZE];
11902 char description[VK_MAX_DESCRIPTION_SIZE];
11903 uint32_t subgroupSize;
11904} VkPipelineExecutablePropertiesKHR;
11905
11906typedef struct VkPipelineExecutableInfoKHR {
11907 VkStructureType sType;
11908 const void* pNext;
11909 VkPipeline pipeline;
11910 uint32_t executableIndex;
11911} VkPipelineExecutableInfoKHR;
11912
11913typedef union VkPipelineExecutableStatisticValueKHR {
11914 VkBool32 b32;
11915 int64_t i64;
11916 uint64_t u64;
11917 double f64;
11918} VkPipelineExecutableStatisticValueKHR;
11919
11920typedef struct VkPipelineExecutableStatisticKHR {
11921 VkStructureType sType;
11922 void* pNext;
11923 char name[VK_MAX_DESCRIPTION_SIZE];
11924 char description[VK_MAX_DESCRIPTION_SIZE];
11925 VkPipelineExecutableStatisticFormatKHR format;
11926 VkPipelineExecutableStatisticValueKHR value;
11927} VkPipelineExecutableStatisticKHR;
11928
11929typedef struct VkPipelineExecutableInternalRepresentationKHR {
11930 VkStructureType sType;
11931 void* pNext;
11932 char name[VK_MAX_DESCRIPTION_SIZE];
11933 char description[VK_MAX_DESCRIPTION_SIZE];
11934 VkBool32 isText;
11935 size_t dataSize;
11936 void* pData;
11937} VkPipelineExecutableInternalRepresentationKHR;
11938
11939typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
11940typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
11941typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
11942
11943#ifndef VK_NO_PROTOTYPES
11944#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11945VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
11946 VkDevice device,
11947 const VkPipelineInfoKHR* pPipelineInfo,
11948 uint32_t* pExecutableCount,
11949 VkPipelineExecutablePropertiesKHR* pProperties);
11950#endif
11951
11952#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11953VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
11954 VkDevice device,
11955 const VkPipelineExecutableInfoKHR* pExecutableInfo,
11956 uint32_t* pStatisticCount,
11957 VkPipelineExecutableStatisticKHR* pStatistics);
11958#endif
11959
11960#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11961VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
11962 VkDevice device,
11963 const VkPipelineExecutableInfoKHR* pExecutableInfo,
11964 uint32_t* pInternalRepresentationCount,
11965 VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
11966#endif
11967#endif
11968
11969
11970// VK_KHR_map_memory2 is a preprocessor guard. Do not pass it to API calls.
11971#define VK_KHR_map_memory2 1
11972#define VK_KHR_MAP_MEMORY_2_SPEC_VERSION 1
11973#define VK_KHR_MAP_MEMORY_2_EXTENSION_NAME "VK_KHR_map_memory2"
11974typedef VkMemoryUnmapFlagBits VkMemoryUnmapFlagBitsKHR;
11975
11976typedef VkMemoryUnmapFlags VkMemoryUnmapFlagsKHR;
11977
11978typedef VkMemoryMapInfo VkMemoryMapInfoKHR;
11979
11980typedef VkMemoryUnmapInfo VkMemoryUnmapInfoKHR;
11981
11982typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
11983typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2KHR)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
11984
11985#ifndef VK_NO_PROTOTYPES
11986#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11987VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2KHR(
11988 VkDevice device,
11989 const VkMemoryMapInfo* pMemoryMapInfo,
11990 void** ppData);
11991#endif
11992
11993#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11994VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2KHR(
11995 VkDevice device,
11996 const VkMemoryUnmapInfo* pMemoryUnmapInfo);
11997#endif
11998#endif
11999
12000
12001// VK_KHR_shader_integer_dot_product is a preprocessor guard. Do not pass it to API calls.
12002#define VK_KHR_shader_integer_dot_product 1
12003#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
12004#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
12005typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
12006
12007typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
12008
12009
12010
12011// VK_KHR_pipeline_library is a preprocessor guard. Do not pass it to API calls.
12012#define VK_KHR_pipeline_library 1
12013#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
12014#define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
12015typedef struct VkPipelineLibraryCreateInfoKHR {
12016 VkStructureType sType;
12017 const void* pNext;
12018 uint32_t libraryCount;
12019 const VkPipeline* pLibraries;
12020} VkPipelineLibraryCreateInfoKHR;
12021
12022
12023
12024// VK_KHR_shader_non_semantic_info is a preprocessor guard. Do not pass it to API calls.
12025#define VK_KHR_shader_non_semantic_info 1
12026#define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
12027#define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
12028
12029
12030// VK_KHR_present_id is a preprocessor guard. Do not pass it to API calls.
12031#define VK_KHR_present_id 1
12032#define VK_KHR_PRESENT_ID_SPEC_VERSION 1
12033#define VK_KHR_PRESENT_ID_EXTENSION_NAME "VK_KHR_present_id"
12034typedef struct VkPresentIdKHR {
12035 VkStructureType sType;
12036 const void* pNext;
12037 uint32_t swapchainCount;
12038 const uint64_t* pPresentIds;
12039} VkPresentIdKHR;
12040
12041typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
12042 VkStructureType sType;
12043 void* pNext;
12044 VkBool32 presentId;
12045} VkPhysicalDevicePresentIdFeaturesKHR;
12046
12047
12048
12049// VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls.
12050#define VK_KHR_video_encode_queue 1
12051#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 12
12052#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
12053
12054typedef enum VkVideoEncodeTuningModeKHR {
12055 VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
12056 VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
12057 VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
12058 VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
12059 VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
12060 VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
12061} VkVideoEncodeTuningModeKHR;
12062
12063typedef enum VkVideoEncodeFlagBitsKHR {
12064 VK_VIDEO_ENCODE_INTRA_REFRESH_BIT_KHR = 0x00000004,
12065 VK_VIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000001,
12066 VK_VIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR = 0x00000002,
12067 VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12068} VkVideoEncodeFlagBitsKHR;
12069typedef VkFlags VkVideoEncodeFlagsKHR;
12070
12071typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
12072 VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
12073 VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x00000002,
12074 VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000004,
12075 VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR = 0x00000008,
12076 VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12077} VkVideoEncodeCapabilityFlagBitsKHR;
12078typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
12079
12080typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
12081 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0,
12082 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001,
12083 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002,
12084 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004,
12085 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12086} VkVideoEncodeRateControlModeFlagBitsKHR;
12087typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
12088
12089typedef enum VkVideoEncodeFeedbackFlagBitsKHR {
12090 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001,
12091 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002,
12092 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR = 0x00000004,
12093 VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12094} VkVideoEncodeFeedbackFlagBitsKHR;
12095typedef VkFlags VkVideoEncodeFeedbackFlagsKHR;
12096
12097typedef enum VkVideoEncodeUsageFlagBitsKHR {
12098 VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
12099 VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
12100 VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
12101 VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
12102 VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
12103 VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12104} VkVideoEncodeUsageFlagBitsKHR;
12105typedef VkFlags VkVideoEncodeUsageFlagsKHR;
12106
12107typedef enum VkVideoEncodeContentFlagBitsKHR {
12108 VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
12109 VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
12110 VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
12111 VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
12112 VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12113} VkVideoEncodeContentFlagBitsKHR;
12114typedef VkFlags VkVideoEncodeContentFlagsKHR;
12115typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
12116typedef struct VkVideoEncodeInfoKHR {
12117 VkStructureType sType;
12118 const void* pNext;
12119 VkVideoEncodeFlagsKHR flags;
12120 VkBuffer dstBuffer;
12121 VkDeviceSize dstBufferOffset;
12122 VkDeviceSize dstBufferRange;
12123 VkVideoPictureResourceInfoKHR srcPictureResource;
12124 const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
12125 uint32_t referenceSlotCount;
12126 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
12127 uint32_t precedingExternallyEncodedBytes;
12128} VkVideoEncodeInfoKHR;
12129
12130typedef struct VkVideoEncodeCapabilitiesKHR {
12131 VkStructureType sType;
12132 void* pNext;
12133 VkVideoEncodeCapabilityFlagsKHR flags;
12134 VkVideoEncodeRateControlModeFlagsKHR rateControlModes;
12135 uint32_t maxRateControlLayers;
12136 uint64_t maxBitrate;
12137 uint32_t maxQualityLevels;
12138 VkExtent2D encodeInputPictureGranularity;
12139 VkVideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags;
12140} VkVideoEncodeCapabilitiesKHR;
12141
12142typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR {
12143 VkStructureType sType;
12144 const void* pNext;
12145 VkVideoEncodeFeedbackFlagsKHR encodeFeedbackFlags;
12146} VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
12147
12148typedef struct VkVideoEncodeUsageInfoKHR {
12149 VkStructureType sType;
12150 const void* pNext;
12151 VkVideoEncodeUsageFlagsKHR videoUsageHints;
12152 VkVideoEncodeContentFlagsKHR videoContentHints;
12153 VkVideoEncodeTuningModeKHR tuningMode;
12154} VkVideoEncodeUsageInfoKHR;
12155
12156typedef struct VkVideoEncodeRateControlLayerInfoKHR {
12157 VkStructureType sType;
12158 const void* pNext;
12159 uint64_t averageBitrate;
12160 uint64_t maxBitrate;
12161 uint32_t frameRateNumerator;
12162 uint32_t frameRateDenominator;
12163} VkVideoEncodeRateControlLayerInfoKHR;
12164
12165typedef struct VkVideoEncodeRateControlInfoKHR {
12166 VkStructureType sType;
12167 const void* pNext;
12168 VkVideoEncodeRateControlFlagsKHR flags;
12169 VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode;
12170 uint32_t layerCount;
12171 const VkVideoEncodeRateControlLayerInfoKHR* pLayers;
12172 uint32_t virtualBufferSizeInMs;
12173 uint32_t initialVirtualBufferSizeInMs;
12174} VkVideoEncodeRateControlInfoKHR;
12175
12176typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR {
12177 VkStructureType sType;
12178 const void* pNext;
12179 const VkVideoProfileInfoKHR* pVideoProfile;
12180 uint32_t qualityLevel;
12181} VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
12182
12183typedef struct VkVideoEncodeQualityLevelPropertiesKHR {
12184 VkStructureType sType;
12185 void* pNext;
12186 VkVideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode;
12187 uint32_t preferredRateControlLayerCount;
12188} VkVideoEncodeQualityLevelPropertiesKHR;
12189
12190typedef struct VkVideoEncodeQualityLevelInfoKHR {
12191 VkStructureType sType;
12192 const void* pNext;
12193 uint32_t qualityLevel;
12194} VkVideoEncodeQualityLevelInfoKHR;
12195
12196typedef struct VkVideoEncodeSessionParametersGetInfoKHR {
12197 VkStructureType sType;
12198 const void* pNext;
12199 VkVideoSessionParametersKHR videoSessionParameters;
12200} VkVideoEncodeSessionParametersGetInfoKHR;
12201
12202typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR {
12203 VkStructureType sType;
12204 void* pNext;
12205 VkBool32 hasOverrides;
12206} VkVideoEncodeSessionParametersFeedbackInfoKHR;
12207
12208typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
12209typedef VkResult (VKAPI_PTR *PFN_vkGetEncodedVideoSessionParametersKHR)(VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData);
12210typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
12211
12212#ifndef VK_NO_PROTOTYPES
12213#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12214VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
12215 VkPhysicalDevice physicalDevice,
12216 const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
12217 VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
12218#endif
12219
12220#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12221VKAPI_ATTR VkResult VKAPI_CALL vkGetEncodedVideoSessionParametersKHR(
12222 VkDevice device,
12223 const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
12224 VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
12225 size_t* pDataSize,
12226 void* pData);
12227#endif
12228
12229#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12230VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
12231 VkCommandBuffer commandBuffer,
12232 const VkVideoEncodeInfoKHR* pEncodeInfo);
12233#endif
12234#endif
12235
12236
12237// VK_KHR_synchronization2 is a preprocessor guard. Do not pass it to API calls.
12238#define VK_KHR_synchronization2 1
12239#define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
12240#define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
12241typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
12242
12243typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
12244
12245typedef VkAccessFlags2 VkAccessFlags2KHR;
12246
12247typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
12248
12249typedef VkSubmitFlagBits VkSubmitFlagBitsKHR;
12250
12251typedef VkSubmitFlags VkSubmitFlagsKHR;
12252
12253typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
12254
12255typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
12256
12257typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
12258
12259typedef VkDependencyInfo VkDependencyInfoKHR;
12260
12261typedef VkSubmitInfo2 VkSubmitInfo2KHR;
12262
12263typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
12264
12265typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
12266
12267typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
12268
12269typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
12270typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
12271typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
12272typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
12273typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
12274typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
12275
12276#ifndef VK_NO_PROTOTYPES
12277#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12278VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR(
12279 VkCommandBuffer commandBuffer,
12280 VkEvent event,
12281 const VkDependencyInfo* pDependencyInfo);
12282#endif
12283
12284#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12285VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR(
12286 VkCommandBuffer commandBuffer,
12287 VkEvent event,
12288 VkPipelineStageFlags2 stageMask);
12289#endif
12290
12291#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12292VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR(
12293 VkCommandBuffer commandBuffer,
12294 uint32_t eventCount,
12295 const VkEvent* pEvents,
12296 const VkDependencyInfo* pDependencyInfos);
12297#endif
12298
12299#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12300VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR(
12301 VkCommandBuffer commandBuffer,
12302 const VkDependencyInfo* pDependencyInfo);
12303#endif
12304
12305#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12306VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR(
12307 VkCommandBuffer commandBuffer,
12308 VkPipelineStageFlags2 stage,
12309 VkQueryPool queryPool,
12310 uint32_t query);
12311#endif
12312
12313#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12314VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR(
12315 VkQueue queue,
12316 uint32_t submitCount,
12317 const VkSubmitInfo2* pSubmits,
12318 VkFence fence);
12319#endif
12320#endif
12321
12322
12323// VK_KHR_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
12324#define VK_KHR_fragment_shader_barycentric 1
12325#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
12326#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
12327typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
12328 VkStructureType sType;
12329 void* pNext;
12330 VkBool32 fragmentShaderBarycentric;
12331} VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
12332
12333typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
12334 VkStructureType sType;
12335 void* pNext;
12336 VkBool32 triStripVertexOrderIndependentOfProvokingVertex;
12337} VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
12338
12339
12340
12341// VK_KHR_shader_subgroup_uniform_control_flow is a preprocessor guard. Do not pass it to API calls.
12342#define VK_KHR_shader_subgroup_uniform_control_flow 1
12343#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
12344#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
12345typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
12346 VkStructureType sType;
12347 void* pNext;
12348 VkBool32 shaderSubgroupUniformControlFlow;
12349} VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
12350
12351
12352
12353// VK_KHR_zero_initialize_workgroup_memory is a preprocessor guard. Do not pass it to API calls.
12354#define VK_KHR_zero_initialize_workgroup_memory 1
12355#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
12356#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
12357typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
12358
12359
12360
12361// VK_KHR_workgroup_memory_explicit_layout is a preprocessor guard. Do not pass it to API calls.
12362#define VK_KHR_workgroup_memory_explicit_layout 1
12363#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
12364#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
12365typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
12366 VkStructureType sType;
12367 void* pNext;
12368 VkBool32 workgroupMemoryExplicitLayout;
12369 VkBool32 workgroupMemoryExplicitLayoutScalarBlockLayout;
12370 VkBool32 workgroupMemoryExplicitLayout8BitAccess;
12371 VkBool32 workgroupMemoryExplicitLayout16BitAccess;
12372} VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
12373
12374
12375
12376// VK_KHR_copy_commands2 is a preprocessor guard. Do not pass it to API calls.
12377#define VK_KHR_copy_commands2 1
12378#define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
12379#define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
12380typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
12381
12382typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
12383
12384typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
12385
12386typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
12387
12388typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
12389
12390typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
12391
12392typedef VkBufferCopy2 VkBufferCopy2KHR;
12393
12394typedef VkImageCopy2 VkImageCopy2KHR;
12395
12396typedef VkImageBlit2 VkImageBlit2KHR;
12397
12398typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
12399
12400typedef VkImageResolve2 VkImageResolve2KHR;
12401
12402typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
12403typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
12404typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
12405typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
12406typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
12407typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
12408
12409#ifndef VK_NO_PROTOTYPES
12410#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12411VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
12412 VkCommandBuffer commandBuffer,
12413 const VkCopyBufferInfo2* pCopyBufferInfo);
12414#endif
12415
12416#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12417VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
12418 VkCommandBuffer commandBuffer,
12419 const VkCopyImageInfo2* pCopyImageInfo);
12420#endif
12421
12422#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12423VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
12424 VkCommandBuffer commandBuffer,
12425 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
12426#endif
12427
12428#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12429VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
12430 VkCommandBuffer commandBuffer,
12431 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
12432#endif
12433
12434#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12435VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
12436 VkCommandBuffer commandBuffer,
12437 const VkBlitImageInfo2* pBlitImageInfo);
12438#endif
12439
12440#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12441VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
12442 VkCommandBuffer commandBuffer,
12443 const VkResolveImageInfo2* pResolveImageInfo);
12444#endif
12445#endif
12446
12447
12448// VK_KHR_format_feature_flags2 is a preprocessor guard. Do not pass it to API calls.
12449#define VK_KHR_format_feature_flags2 1
12450#define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2
12451#define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
12452typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
12453
12454typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
12455
12456typedef VkFormatProperties3 VkFormatProperties3KHR;
12457
12458
12459
12460// VK_KHR_ray_tracing_maintenance1 is a preprocessor guard. Do not pass it to API calls.
12461#define VK_KHR_ray_tracing_maintenance1 1
12462#define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
12463#define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
12464typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR {
12465 VkStructureType sType;
12466 void* pNext;
12467 VkBool32 rayTracingMaintenance1;
12468 VkBool32 rayTracingPipelineTraceRaysIndirect2;
12469} VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
12470
12471typedef struct VkTraceRaysIndirectCommand2KHR {
12472 VkDeviceAddress raygenShaderRecordAddress;
12473 VkDeviceSize raygenShaderRecordSize;
12474 VkDeviceAddress missShaderBindingTableAddress;
12475 VkDeviceSize missShaderBindingTableSize;
12476 VkDeviceSize missShaderBindingTableStride;
12477 VkDeviceAddress hitShaderBindingTableAddress;
12478 VkDeviceSize hitShaderBindingTableSize;
12479 VkDeviceSize hitShaderBindingTableStride;
12480 VkDeviceAddress callableShaderBindingTableAddress;
12481 VkDeviceSize callableShaderBindingTableSize;
12482 VkDeviceSize callableShaderBindingTableStride;
12483 uint32_t width;
12484 uint32_t height;
12485 uint32_t depth;
12486} VkTraceRaysIndirectCommand2KHR;
12487
12488typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
12489
12490#ifndef VK_NO_PROTOTYPES
12491#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12492VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR(
12493 VkCommandBuffer commandBuffer,
12494 VkDeviceAddress indirectDeviceAddress);
12495#endif
12496#endif
12497
12498
12499// VK_KHR_shader_untyped_pointers is a preprocessor guard. Do not pass it to API calls.
12500#define VK_KHR_shader_untyped_pointers 1
12501#define VK_KHR_SHADER_UNTYPED_POINTERS_SPEC_VERSION 1
12502#define VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME "VK_KHR_shader_untyped_pointers"
12503typedef struct VkPhysicalDeviceShaderUntypedPointersFeaturesKHR {
12504 VkStructureType sType;
12505 void* pNext;
12506 VkBool32 shaderUntypedPointers;
12507} VkPhysicalDeviceShaderUntypedPointersFeaturesKHR;
12508
12509
12510
12511// VK_KHR_portability_enumeration is a preprocessor guard. Do not pass it to API calls.
12512#define VK_KHR_portability_enumeration 1
12513#define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
12514#define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
12515
12516
12517// VK_KHR_maintenance4 is a preprocessor guard. Do not pass it to API calls.
12518#define VK_KHR_maintenance4 1
12519#define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
12520#define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
12521typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
12522
12523typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
12524
12525typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
12526
12527typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
12528
12529typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
12530typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
12531typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
12532
12533#ifndef VK_NO_PROTOTYPES
12534#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12535VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR(
12536 VkDevice device,
12537 const VkDeviceBufferMemoryRequirements* pInfo,
12538 VkMemoryRequirements2* pMemoryRequirements);
12539#endif
12540
12541#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12542VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR(
12543 VkDevice device,
12544 const VkDeviceImageMemoryRequirements* pInfo,
12545 VkMemoryRequirements2* pMemoryRequirements);
12546#endif
12547
12548#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12549VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR(
12550 VkDevice device,
12551 const VkDeviceImageMemoryRequirements* pInfo,
12552 uint32_t* pSparseMemoryRequirementCount,
12553 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
12554#endif
12555#endif
12556
12557
12558// VK_KHR_shader_subgroup_rotate is a preprocessor guard. Do not pass it to API calls.
12559#define VK_KHR_shader_subgroup_rotate 1
12560#define VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION 2
12561#define VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME "VK_KHR_shader_subgroup_rotate"
12562typedef VkPhysicalDeviceShaderSubgroupRotateFeatures VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR;
12563
12564
12565
12566// VK_KHR_shader_maximal_reconvergence is a preprocessor guard. Do not pass it to API calls.
12567#define VK_KHR_shader_maximal_reconvergence 1
12568#define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION 1
12569#define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME "VK_KHR_shader_maximal_reconvergence"
12570typedef struct VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
12571 VkStructureType sType;
12572 void* pNext;
12573 VkBool32 shaderMaximalReconvergence;
12574} VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR;
12575
12576
12577
12578// VK_KHR_maintenance5 is a preprocessor guard. Do not pass it to API calls.
12579#define VK_KHR_maintenance5 1
12580#define VK_KHR_MAINTENANCE_5_SPEC_VERSION 1
12581#define VK_KHR_MAINTENANCE_5_EXTENSION_NAME "VK_KHR_maintenance5"
12582typedef VkPipelineCreateFlags2 VkPipelineCreateFlags2KHR;
12583
12584typedef VkPipelineCreateFlagBits2 VkPipelineCreateFlagBits2KHR;
12585
12586typedef VkBufferUsageFlags2 VkBufferUsageFlags2KHR;
12587
12588typedef VkBufferUsageFlagBits2 VkBufferUsageFlagBits2KHR;
12589
12590typedef VkPhysicalDeviceMaintenance5Features VkPhysicalDeviceMaintenance5FeaturesKHR;
12591
12592typedef VkPhysicalDeviceMaintenance5Properties VkPhysicalDeviceMaintenance5PropertiesKHR;
12593
12594typedef VkRenderingAreaInfo VkRenderingAreaInfoKHR;
12595
12596typedef VkDeviceImageSubresourceInfo VkDeviceImageSubresourceInfoKHR;
12597
12598typedef VkImageSubresource2 VkImageSubresource2KHR;
12599
12600typedef VkSubresourceLayout2 VkSubresourceLayout2KHR;
12601
12602typedef VkPipelineCreateFlags2CreateInfo VkPipelineCreateFlags2CreateInfoKHR;
12603
12604typedef VkBufferUsageFlags2CreateInfo VkBufferUsageFlags2CreateInfoKHR;
12605
12606typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
12607typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularityKHR)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
12608typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
12609typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2KHR)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
12610
12611#ifndef VK_NO_PROTOTYPES
12612#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12613VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2KHR(
12614 VkCommandBuffer commandBuffer,
12615 VkBuffer buffer,
12616 VkDeviceSize offset,
12617 VkDeviceSize size,
12618 VkIndexType indexType);
12619#endif
12620
12621#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12622VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularityKHR(
12623 VkDevice device,
12624 const VkRenderingAreaInfo* pRenderingAreaInfo,
12625 VkExtent2D* pGranularity);
12626#endif
12627
12628#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12629VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayoutKHR(
12630 VkDevice device,
12631 const VkDeviceImageSubresourceInfo* pInfo,
12632 VkSubresourceLayout2* pLayout);
12633#endif
12634
12635#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12636VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2KHR(
12637 VkDevice device,
12638 VkImage image,
12639 const VkImageSubresource2* pSubresource,
12640 VkSubresourceLayout2* pLayout);
12641#endif
12642#endif
12643
12644
12645// VK_KHR_present_id2 is a preprocessor guard. Do not pass it to API calls.
12646#define VK_KHR_present_id2 1
12647#define VK_KHR_PRESENT_ID_2_SPEC_VERSION 1
12648#define VK_KHR_PRESENT_ID_2_EXTENSION_NAME "VK_KHR_present_id2"
12649typedef struct VkSurfaceCapabilitiesPresentId2KHR {
12650 VkStructureType sType;
12651 void* pNext;
12652 VkBool32 presentId2Supported;
12653} VkSurfaceCapabilitiesPresentId2KHR;
12654
12655typedef struct VkPresentId2KHR {
12656 VkStructureType sType;
12657 const void* pNext;
12658 uint32_t swapchainCount;
12659 const uint64_t* pPresentIds;
12660} VkPresentId2KHR;
12661
12662typedef struct VkPhysicalDevicePresentId2FeaturesKHR {
12663 VkStructureType sType;
12664 void* pNext;
12665 VkBool32 presentId2;
12666} VkPhysicalDevicePresentId2FeaturesKHR;
12667
12668
12669
12670// VK_KHR_present_wait2 is a preprocessor guard. Do not pass it to API calls.
12671#define VK_KHR_present_wait2 1
12672#define VK_KHR_PRESENT_WAIT_2_SPEC_VERSION 1
12673#define VK_KHR_PRESENT_WAIT_2_EXTENSION_NAME "VK_KHR_present_wait2"
12674typedef struct VkSurfaceCapabilitiesPresentWait2KHR {
12675 VkStructureType sType;
12676 void* pNext;
12677 VkBool32 presentWait2Supported;
12678} VkSurfaceCapabilitiesPresentWait2KHR;
12679
12680typedef struct VkPhysicalDevicePresentWait2FeaturesKHR {
12681 VkStructureType sType;
12682 void* pNext;
12683 VkBool32 presentWait2;
12684} VkPhysicalDevicePresentWait2FeaturesKHR;
12685
12686typedef struct VkPresentWait2InfoKHR {
12687 VkStructureType sType;
12688 const void* pNext;
12689 uint64_t presentId;
12690 uint64_t timeout;
12691} VkPresentWait2InfoKHR;
12692
12693typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresent2KHR)(VkDevice device, VkSwapchainKHR swapchain, const VkPresentWait2InfoKHR* pPresentWait2Info);
12694
12695#ifndef VK_NO_PROTOTYPES
12696#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12697VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresent2KHR(
12698 VkDevice device,
12699 VkSwapchainKHR swapchain,
12700 const VkPresentWait2InfoKHR* pPresentWait2Info);
12701#endif
12702#endif
12703
12704
12705// VK_KHR_ray_tracing_position_fetch is a preprocessor guard. Do not pass it to API calls.
12706#define VK_KHR_ray_tracing_position_fetch 1
12707#define VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION 1
12708#define VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME "VK_KHR_ray_tracing_position_fetch"
12709typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR {
12710 VkStructureType sType;
12711 void* pNext;
12712 VkBool32 rayTracingPositionFetch;
12713} VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
12714
12715
12716
12717// VK_KHR_pipeline_binary is a preprocessor guard. Do not pass it to API calls.
12718#define VK_KHR_pipeline_binary 1
12719VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineBinaryKHR)
12720#define VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR 32U
12721#define VK_KHR_PIPELINE_BINARY_SPEC_VERSION 1
12722#define VK_KHR_PIPELINE_BINARY_EXTENSION_NAME "VK_KHR_pipeline_binary"
12723typedef struct VkPhysicalDevicePipelineBinaryFeaturesKHR {
12724 VkStructureType sType;
12725 void* pNext;
12726 VkBool32 pipelineBinaries;
12727} VkPhysicalDevicePipelineBinaryFeaturesKHR;
12728
12729typedef struct VkPhysicalDevicePipelineBinaryPropertiesKHR {
12730 VkStructureType sType;
12731 void* pNext;
12732 VkBool32 pipelineBinaryInternalCache;
12733 VkBool32 pipelineBinaryInternalCacheControl;
12734 VkBool32 pipelineBinaryPrefersInternalCache;
12735 VkBool32 pipelineBinaryPrecompiledInternalCache;
12736 VkBool32 pipelineBinaryCompressedData;
12737} VkPhysicalDevicePipelineBinaryPropertiesKHR;
12738
12739typedef struct VkDevicePipelineBinaryInternalCacheControlKHR {
12740 VkStructureType sType;
12741 const void* pNext;
12742 VkBool32 disableInternalCache;
12743} VkDevicePipelineBinaryInternalCacheControlKHR;
12744
12745typedef struct VkPipelineBinaryKeyKHR {
12746 VkStructureType sType;
12747 void* pNext;
12748 uint32_t keySize;
12749 uint8_t key[VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR];
12750} VkPipelineBinaryKeyKHR;
12751
12752typedef struct VkPipelineBinaryDataKHR {
12753 size_t dataSize;
12754 void* pData;
12755} VkPipelineBinaryDataKHR;
12756
12757typedef struct VkPipelineBinaryKeysAndDataKHR {
12758 uint32_t binaryCount;
12759 const VkPipelineBinaryKeyKHR* pPipelineBinaryKeys;
12760 const VkPipelineBinaryDataKHR* pPipelineBinaryData;
12761} VkPipelineBinaryKeysAndDataKHR;
12762
12763typedef struct VkPipelineCreateInfoKHR {
12764 VkStructureType sType;
12765 void* pNext;
12766} VkPipelineCreateInfoKHR;
12767
12768typedef struct VkPipelineBinaryCreateInfoKHR {
12769 VkStructureType sType;
12770 const void* pNext;
12771 const VkPipelineBinaryKeysAndDataKHR* pKeysAndDataInfo;
12772 VkPipeline pipeline;
12773 const VkPipelineCreateInfoKHR* pPipelineCreateInfo;
12774} VkPipelineBinaryCreateInfoKHR;
12775
12776typedef struct VkPipelineBinaryInfoKHR {
12777 VkStructureType sType;
12778 const void* pNext;
12779 uint32_t binaryCount;
12780 const VkPipelineBinaryKHR* pPipelineBinaries;
12781} VkPipelineBinaryInfoKHR;
12782
12783typedef struct VkReleaseCapturedPipelineDataInfoKHR {
12784 VkStructureType sType;
12785 void* pNext;
12786 VkPipeline pipeline;
12787} VkReleaseCapturedPipelineDataInfoKHR;
12788
12789typedef struct VkPipelineBinaryDataInfoKHR {
12790 VkStructureType sType;
12791 void* pNext;
12792 VkPipelineBinaryKHR pipelineBinary;
12793} VkPipelineBinaryDataInfoKHR;
12794
12795typedef struct VkPipelineBinaryHandlesInfoKHR {
12796 VkStructureType sType;
12797 const void* pNext;
12798 uint32_t pipelineBinaryCount;
12799 VkPipelineBinaryKHR* pPipelineBinaries;
12800} VkPipelineBinaryHandlesInfoKHR;
12801
12802typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineBinariesKHR)(VkDevice device, const VkPipelineBinaryCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineBinaryHandlesInfoKHR* pBinaries);
12803typedef void (VKAPI_PTR *PFN_vkDestroyPipelineBinaryKHR)(VkDevice device, VkPipelineBinaryKHR pipelineBinary, const VkAllocationCallbacks* pAllocator);
12804typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineKeyKHR)(VkDevice device, const VkPipelineCreateInfoKHR* pPipelineCreateInfo, VkPipelineBinaryKeyKHR* pPipelineKey);
12805typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineBinaryDataKHR)(VkDevice device, const VkPipelineBinaryDataInfoKHR* pInfo, VkPipelineBinaryKeyKHR* pPipelineBinaryKey, size_t* pPipelineBinaryDataSize, void* pPipelineBinaryData);
12806typedef VkResult (VKAPI_PTR *PFN_vkReleaseCapturedPipelineDataKHR)(VkDevice device, const VkReleaseCapturedPipelineDataInfoKHR* pInfo, const VkAllocationCallbacks* pAllocator);
12807
12808#ifndef VK_NO_PROTOTYPES
12809#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12810VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineBinariesKHR(
12811 VkDevice device,
12812 const VkPipelineBinaryCreateInfoKHR* pCreateInfo,
12813 const VkAllocationCallbacks* pAllocator,
12814 VkPipelineBinaryHandlesInfoKHR* pBinaries);
12815#endif
12816
12817#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12818VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineBinaryKHR(
12819 VkDevice device,
12820 VkPipelineBinaryKHR pipelineBinary,
12821 const VkAllocationCallbacks* pAllocator);
12822#endif
12823
12824#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12825VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineKeyKHR(
12826 VkDevice device,
12827 const VkPipelineCreateInfoKHR* pPipelineCreateInfo,
12828 VkPipelineBinaryKeyKHR* pPipelineKey);
12829#endif
12830
12831#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12832VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineBinaryDataKHR(
12833 VkDevice device,
12834 const VkPipelineBinaryDataInfoKHR* pInfo,
12835 VkPipelineBinaryKeyKHR* pPipelineBinaryKey,
12836 size_t* pPipelineBinaryDataSize,
12837 void* pPipelineBinaryData);
12838#endif
12839
12840#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12841VKAPI_ATTR VkResult VKAPI_CALL vkReleaseCapturedPipelineDataKHR(
12842 VkDevice device,
12843 const VkReleaseCapturedPipelineDataInfoKHR* pInfo,
12844 const VkAllocationCallbacks* pAllocator);
12845#endif
12846#endif
12847
12848
12849// VK_KHR_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
12850#define VK_KHR_surface_maintenance1 1
12851#define VK_KHR_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
12852#define VK_KHR_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_surface_maintenance1"
12853
12854typedef enum VkPresentScalingFlagBitsKHR {
12855 VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR = 0x00000001,
12856 VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR = 0x00000002,
12857 VK_PRESENT_SCALING_STRETCH_BIT_KHR = 0x00000004,
12858 VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR,
12859 VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR,
12860 VK_PRESENT_SCALING_STRETCH_BIT_EXT = VK_PRESENT_SCALING_STRETCH_BIT_KHR,
12861 VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12862} VkPresentScalingFlagBitsKHR;
12863typedef VkFlags VkPresentScalingFlagsKHR;
12864
12865typedef enum VkPresentGravityFlagBitsKHR {
12866 VK_PRESENT_GRAVITY_MIN_BIT_KHR = 0x00000001,
12867 VK_PRESENT_GRAVITY_MAX_BIT_KHR = 0x00000002,
12868 VK_PRESENT_GRAVITY_CENTERED_BIT_KHR = 0x00000004,
12869 VK_PRESENT_GRAVITY_MIN_BIT_EXT = VK_PRESENT_GRAVITY_MIN_BIT_KHR,
12870 VK_PRESENT_GRAVITY_MAX_BIT_EXT = VK_PRESENT_GRAVITY_MAX_BIT_KHR,
12871 VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = VK_PRESENT_GRAVITY_CENTERED_BIT_KHR,
12872 VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12873} VkPresentGravityFlagBitsKHR;
12874typedef VkFlags VkPresentGravityFlagsKHR;
12875typedef struct VkSurfacePresentModeKHR {
12876 VkStructureType sType;
12877 void* pNext;
12878 VkPresentModeKHR presentMode;
12879} VkSurfacePresentModeKHR;
12880
12881typedef struct VkSurfacePresentScalingCapabilitiesKHR {
12882 VkStructureType sType;
12883 void* pNext;
12884 VkPresentScalingFlagsKHR supportedPresentScaling;
12885 VkPresentGravityFlagsKHR supportedPresentGravityX;
12886 VkPresentGravityFlagsKHR supportedPresentGravityY;
12887 VkExtent2D minScaledImageExtent;
12888 VkExtent2D maxScaledImageExtent;
12889} VkSurfacePresentScalingCapabilitiesKHR;
12890
12891typedef struct VkSurfacePresentModeCompatibilityKHR {
12892 VkStructureType sType;
12893 void* pNext;
12894 uint32_t presentModeCount;
12895 VkPresentModeKHR* pPresentModes;
12896} VkSurfacePresentModeCompatibilityKHR;
12897
12898
12899
12900// VK_KHR_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
12901#define VK_KHR_swapchain_maintenance1 1
12902#define VK_KHR_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
12903#define VK_KHR_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_swapchain_maintenance1"
12904typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR {
12905 VkStructureType sType;
12906 void* pNext;
12907 VkBool32 swapchainMaintenance1;
12908} VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR;
12909
12910typedef struct VkSwapchainPresentFenceInfoKHR {
12911 VkStructureType sType;
12912 const void* pNext;
12913 uint32_t swapchainCount;
12914 const VkFence* pFences;
12915} VkSwapchainPresentFenceInfoKHR;
12916
12917typedef struct VkSwapchainPresentModesCreateInfoKHR {
12918 VkStructureType sType;
12919 const void* pNext;
12920 uint32_t presentModeCount;
12921 const VkPresentModeKHR* pPresentModes;
12922} VkSwapchainPresentModesCreateInfoKHR;
12923
12924typedef struct VkSwapchainPresentModeInfoKHR {
12925 VkStructureType sType;
12926 const void* pNext;
12927 uint32_t swapchainCount;
12928 const VkPresentModeKHR* pPresentModes;
12929} VkSwapchainPresentModeInfoKHR;
12930
12931typedef struct VkSwapchainPresentScalingCreateInfoKHR {
12932 VkStructureType sType;
12933 const void* pNext;
12934 VkPresentScalingFlagsKHR scalingBehavior;
12935 VkPresentGravityFlagsKHR presentGravityX;
12936 VkPresentGravityFlagsKHR presentGravityY;
12937} VkSwapchainPresentScalingCreateInfoKHR;
12938
12939typedef struct VkReleaseSwapchainImagesInfoKHR {
12940 VkStructureType sType;
12941 const void* pNext;
12942 VkSwapchainKHR swapchain;
12943 uint32_t imageIndexCount;
12944 const uint32_t* pImageIndices;
12945} VkReleaseSwapchainImagesInfoKHR;
12946
12947typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesKHR)(VkDevice device, const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
12948
12949#ifndef VK_NO_PROTOTYPES
12950#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12951VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesKHR(
12952 VkDevice device,
12953 const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
12954#endif
12955#endif
12956
12957
12958// VK_KHR_internally_synchronized_queues is a preprocessor guard. Do not pass it to API calls.
12959#define VK_KHR_internally_synchronized_queues 1
12960#define VK_KHR_INTERNALLY_SYNCHRONIZED_QUEUES_SPEC_VERSION 1
12961#define VK_KHR_INTERNALLY_SYNCHRONIZED_QUEUES_EXTENSION_NAME "VK_KHR_internally_synchronized_queues"
12962typedef struct VkPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {
12963 VkStructureType sType;
12964 void* pNext;
12965 VkBool32 internallySynchronizedQueues;
12966} VkPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR;
12967
12968
12969
12970// VK_KHR_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
12971#define VK_KHR_cooperative_matrix 1
12972#define VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION 2
12973#define VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_KHR_cooperative_matrix"
12974
12975typedef enum VkComponentTypeKHR {
12976 VK_COMPONENT_TYPE_FLOAT16_KHR = 0,
12977 VK_COMPONENT_TYPE_FLOAT32_KHR = 1,
12978 VK_COMPONENT_TYPE_FLOAT64_KHR = 2,
12979 VK_COMPONENT_TYPE_SINT8_KHR = 3,
12980 VK_COMPONENT_TYPE_SINT16_KHR = 4,
12981 VK_COMPONENT_TYPE_SINT32_KHR = 5,
12982 VK_COMPONENT_TYPE_SINT64_KHR = 6,
12983 VK_COMPONENT_TYPE_UINT8_KHR = 7,
12984 VK_COMPONENT_TYPE_UINT16_KHR = 8,
12985 VK_COMPONENT_TYPE_UINT32_KHR = 9,
12986 VK_COMPONENT_TYPE_UINT64_KHR = 10,
12987 VK_COMPONENT_TYPE_BFLOAT16_KHR = 1000141000,
12988 VK_COMPONENT_TYPE_SINT8_PACKED_NV = 1000491000,
12989 VK_COMPONENT_TYPE_UINT8_PACKED_NV = 1000491001,
12990 VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT = 1000491002,
12991 VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT = 1000491003,
12992 VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR,
12993 VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR,
12994 VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR,
12995 VK_COMPONENT_TYPE_SINT8_NV = VK_COMPONENT_TYPE_SINT8_KHR,
12996 VK_COMPONENT_TYPE_SINT16_NV = VK_COMPONENT_TYPE_SINT16_KHR,
12997 VK_COMPONENT_TYPE_SINT32_NV = VK_COMPONENT_TYPE_SINT32_KHR,
12998 VK_COMPONENT_TYPE_SINT64_NV = VK_COMPONENT_TYPE_SINT64_KHR,
12999 VK_COMPONENT_TYPE_UINT8_NV = VK_COMPONENT_TYPE_UINT8_KHR,
13000 VK_COMPONENT_TYPE_UINT16_NV = VK_COMPONENT_TYPE_UINT16_KHR,
13001 VK_COMPONENT_TYPE_UINT32_NV = VK_COMPONENT_TYPE_UINT32_KHR,
13002 VK_COMPONENT_TYPE_UINT64_NV = VK_COMPONENT_TYPE_UINT64_KHR,
13003 VK_COMPONENT_TYPE_FLOAT_E4M3_NV = VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT,
13004 VK_COMPONENT_TYPE_FLOAT_E5M2_NV = VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT,
13005 VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
13006} VkComponentTypeKHR;
13007
13008typedef enum VkScopeKHR {
13009 VK_SCOPE_DEVICE_KHR = 1,
13010 VK_SCOPE_WORKGROUP_KHR = 2,
13011 VK_SCOPE_SUBGROUP_KHR = 3,
13012 VK_SCOPE_QUEUE_FAMILY_KHR = 5,
13013 VK_SCOPE_DEVICE_NV = VK_SCOPE_DEVICE_KHR,
13014 VK_SCOPE_WORKGROUP_NV = VK_SCOPE_WORKGROUP_KHR,
13015 VK_SCOPE_SUBGROUP_NV = VK_SCOPE_SUBGROUP_KHR,
13016 VK_SCOPE_QUEUE_FAMILY_NV = VK_SCOPE_QUEUE_FAMILY_KHR,
13017 VK_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
13018} VkScopeKHR;
13019typedef struct VkCooperativeMatrixPropertiesKHR {
13020 VkStructureType sType;
13021 void* pNext;
13022 uint32_t MSize;
13023 uint32_t NSize;
13024 uint32_t KSize;
13025 VkComponentTypeKHR AType;
13026 VkComponentTypeKHR BType;
13027 VkComponentTypeKHR CType;
13028 VkComponentTypeKHR ResultType;
13029 VkBool32 saturatingAccumulation;
13030 VkScopeKHR scope;
13031} VkCooperativeMatrixPropertiesKHR;
13032
13033typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR {
13034 VkStructureType sType;
13035 void* pNext;
13036 VkBool32 cooperativeMatrix;
13037 VkBool32 cooperativeMatrixRobustBufferAccess;
13038} VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
13039
13040typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR {
13041 VkStructureType sType;
13042 void* pNext;
13043 VkShaderStageFlags cooperativeMatrixSupportedStages;
13044} VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
13045
13046typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties);
13047
13048#ifndef VK_NO_PROTOTYPES
13049#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13050VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
13051 VkPhysicalDevice physicalDevice,
13052 uint32_t* pPropertyCount,
13053 VkCooperativeMatrixPropertiesKHR* pProperties);
13054#endif
13055#endif
13056
13057
13058// VK_KHR_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
13059#define VK_KHR_compute_shader_derivatives 1
13060#define VK_KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
13061#define VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_KHR_compute_shader_derivatives"
13062typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR {
13063 VkStructureType sType;
13064 void* pNext;
13065 VkBool32 computeDerivativeGroupQuads;
13066 VkBool32 computeDerivativeGroupLinear;
13067} VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR;
13068
13069typedef struct VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR {
13070 VkStructureType sType;
13071 void* pNext;
13072 VkBool32 meshAndTaskShaderDerivatives;
13073} VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR;
13074
13075
13076
13077// VK_KHR_video_decode_av1 is a preprocessor guard. Do not pass it to API calls.
13078#define VK_KHR_video_decode_av1 1
13079#include "vk_video/vulkan_video_codec_av1std.h"
13080#include "vk_video/vulkan_video_codec_av1std_decode.h"
13081#define VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR 7U
13082#define VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION 1
13083#define VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME "VK_KHR_video_decode_av1"
13084typedef struct VkVideoDecodeAV1ProfileInfoKHR {
13085 VkStructureType sType;
13086 const void* pNext;
13087 StdVideoAV1Profile stdProfile;
13088 VkBool32 filmGrainSupport;
13089} VkVideoDecodeAV1ProfileInfoKHR;
13090
13091typedef struct VkVideoDecodeAV1CapabilitiesKHR {
13092 VkStructureType sType;
13093 void* pNext;
13094 StdVideoAV1Level maxLevel;
13095} VkVideoDecodeAV1CapabilitiesKHR;
13096
13097typedef struct VkVideoDecodeAV1SessionParametersCreateInfoKHR {
13098 VkStructureType sType;
13099 const void* pNext;
13100 const StdVideoAV1SequenceHeader* pStdSequenceHeader;
13101} VkVideoDecodeAV1SessionParametersCreateInfoKHR;
13102
13103typedef struct VkVideoDecodeAV1PictureInfoKHR {
13104 VkStructureType sType;
13105 const void* pNext;
13106 const StdVideoDecodeAV1PictureInfo* pStdPictureInfo;
13107 int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
13108 uint32_t frameHeaderOffset;
13109 uint32_t tileCount;
13110 const uint32_t* pTileOffsets;
13111 const uint32_t* pTileSizes;
13112} VkVideoDecodeAV1PictureInfoKHR;
13113
13114typedef struct VkVideoDecodeAV1DpbSlotInfoKHR {
13115 VkStructureType sType;
13116 const void* pNext;
13117 const StdVideoDecodeAV1ReferenceInfo* pStdReferenceInfo;
13118} VkVideoDecodeAV1DpbSlotInfoKHR;
13119
13120
13121
13122// VK_KHR_video_encode_av1 is a preprocessor guard. Do not pass it to API calls.
13123#define VK_KHR_video_encode_av1 1
13124#include "vk_video/vulkan_video_codec_av1std_encode.h"
13125#define VK_KHR_VIDEO_ENCODE_AV1_SPEC_VERSION 1
13126#define VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME "VK_KHR_video_encode_av1"
13127
13128typedef enum VkVideoEncodeAV1PredictionModeKHR {
13129 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR = 0,
13130 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR = 1,
13131 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHR = 2,
13132 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHR = 3,
13133 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
13134} VkVideoEncodeAV1PredictionModeKHR;
13135
13136typedef enum VkVideoEncodeAV1RateControlGroupKHR {
13137 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR = 0,
13138 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR = 1,
13139 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR = 2,
13140 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_MAX_ENUM_KHR = 0x7FFFFFFF
13141} VkVideoEncodeAV1RateControlGroupKHR;
13142
13143typedef enum VkVideoEncodeAV1CapabilityFlagBitsKHR {
13144 VK_VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR = 0x00000001,
13145 VK_VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHR = 0x00000002,
13146 VK_VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHR = 0x00000004,
13147 VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR = 0x00000008,
13148 VK_VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR = 0x00000010,
13149 VK_VIDEO_ENCODE_AV1_CAPABILITY_COMPOUND_PREDICTION_INTRA_REFRESH_BIT_KHR = 0x00000020,
13150 VK_VIDEO_ENCODE_AV1_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13151} VkVideoEncodeAV1CapabilityFlagBitsKHR;
13152typedef VkFlags VkVideoEncodeAV1CapabilityFlagsKHR;
13153
13154typedef enum VkVideoEncodeAV1StdFlagBitsKHR {
13155 VK_VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHR = 0x00000001,
13156 VK_VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR = 0x00000002,
13157 VK_VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR = 0x00000004,
13158 VK_VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR = 0x00000008,
13159 VK_VIDEO_ENCODE_AV1_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13160} VkVideoEncodeAV1StdFlagBitsKHR;
13161typedef VkFlags VkVideoEncodeAV1StdFlagsKHR;
13162
13163typedef enum VkVideoEncodeAV1SuperblockSizeFlagBitsKHR {
13164 VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR = 0x00000001,
13165 VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR = 0x00000002,
13166 VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13167} VkVideoEncodeAV1SuperblockSizeFlagBitsKHR;
13168typedef VkFlags VkVideoEncodeAV1SuperblockSizeFlagsKHR;
13169
13170typedef enum VkVideoEncodeAV1RateControlFlagBitsKHR {
13171 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000001,
13172 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000002,
13173 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
13174 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
13175 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13176} VkVideoEncodeAV1RateControlFlagBitsKHR;
13177typedef VkFlags VkVideoEncodeAV1RateControlFlagsKHR;
13178typedef struct VkPhysicalDeviceVideoEncodeAV1FeaturesKHR {
13179 VkStructureType sType;
13180 void* pNext;
13181 VkBool32 videoEncodeAV1;
13182} VkPhysicalDeviceVideoEncodeAV1FeaturesKHR;
13183
13184typedef struct VkVideoEncodeAV1CapabilitiesKHR {
13185 VkStructureType sType;
13186 void* pNext;
13187 VkVideoEncodeAV1CapabilityFlagsKHR flags;
13188 StdVideoAV1Level maxLevel;
13189 VkExtent2D codedPictureAlignment;
13190 VkExtent2D maxTiles;
13191 VkExtent2D minTileSize;
13192 VkExtent2D maxTileSize;
13193 VkVideoEncodeAV1SuperblockSizeFlagsKHR superblockSizes;
13194 uint32_t maxSingleReferenceCount;
13195 uint32_t singleReferenceNameMask;
13196 uint32_t maxUnidirectionalCompoundReferenceCount;
13197 uint32_t maxUnidirectionalCompoundGroup1ReferenceCount;
13198 uint32_t unidirectionalCompoundReferenceNameMask;
13199 uint32_t maxBidirectionalCompoundReferenceCount;
13200 uint32_t maxBidirectionalCompoundGroup1ReferenceCount;
13201 uint32_t maxBidirectionalCompoundGroup2ReferenceCount;
13202 uint32_t bidirectionalCompoundReferenceNameMask;
13203 uint32_t maxTemporalLayerCount;
13204 uint32_t maxSpatialLayerCount;
13205 uint32_t maxOperatingPoints;
13206 uint32_t minQIndex;
13207 uint32_t maxQIndex;
13208 VkBool32 prefersGopRemainingFrames;
13209 VkBool32 requiresGopRemainingFrames;
13210 VkVideoEncodeAV1StdFlagsKHR stdSyntaxFlags;
13211} VkVideoEncodeAV1CapabilitiesKHR;
13212
13213typedef struct VkVideoEncodeAV1QIndexKHR {
13214 uint32_t intraQIndex;
13215 uint32_t predictiveQIndex;
13216 uint32_t bipredictiveQIndex;
13217} VkVideoEncodeAV1QIndexKHR;
13218
13219typedef struct VkVideoEncodeAV1QualityLevelPropertiesKHR {
13220 VkStructureType sType;
13221 void* pNext;
13222 VkVideoEncodeAV1RateControlFlagsKHR preferredRateControlFlags;
13223 uint32_t preferredGopFrameCount;
13224 uint32_t preferredKeyFramePeriod;
13225 uint32_t preferredConsecutiveBipredictiveFrameCount;
13226 uint32_t preferredTemporalLayerCount;
13227 VkVideoEncodeAV1QIndexKHR preferredConstantQIndex;
13228 uint32_t preferredMaxSingleReferenceCount;
13229 uint32_t preferredSingleReferenceNameMask;
13230 uint32_t preferredMaxUnidirectionalCompoundReferenceCount;
13231 uint32_t preferredMaxUnidirectionalCompoundGroup1ReferenceCount;
13232 uint32_t preferredUnidirectionalCompoundReferenceNameMask;
13233 uint32_t preferredMaxBidirectionalCompoundReferenceCount;
13234 uint32_t preferredMaxBidirectionalCompoundGroup1ReferenceCount;
13235 uint32_t preferredMaxBidirectionalCompoundGroup2ReferenceCount;
13236 uint32_t preferredBidirectionalCompoundReferenceNameMask;
13237} VkVideoEncodeAV1QualityLevelPropertiesKHR;
13238
13239typedef struct VkVideoEncodeAV1SessionCreateInfoKHR {
13240 VkStructureType sType;
13241 const void* pNext;
13242 VkBool32 useMaxLevel;
13243 StdVideoAV1Level maxLevel;
13244} VkVideoEncodeAV1SessionCreateInfoKHR;
13245
13246typedef struct VkVideoEncodeAV1SessionParametersCreateInfoKHR {
13247 VkStructureType sType;
13248 const void* pNext;
13249 const StdVideoAV1SequenceHeader* pStdSequenceHeader;
13250 const StdVideoEncodeAV1DecoderModelInfo* pStdDecoderModelInfo;
13251 uint32_t stdOperatingPointCount;
13252 const StdVideoEncodeAV1OperatingPointInfo* pStdOperatingPoints;
13253} VkVideoEncodeAV1SessionParametersCreateInfoKHR;
13254
13255typedef struct VkVideoEncodeAV1PictureInfoKHR {
13256 VkStructureType sType;
13257 const void* pNext;
13258 VkVideoEncodeAV1PredictionModeKHR predictionMode;
13259 VkVideoEncodeAV1RateControlGroupKHR rateControlGroup;
13260 uint32_t constantQIndex;
13261 const StdVideoEncodeAV1PictureInfo* pStdPictureInfo;
13262 int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
13263 VkBool32 primaryReferenceCdfOnly;
13264 VkBool32 generateObuExtensionHeader;
13265} VkVideoEncodeAV1PictureInfoKHR;
13266
13267typedef struct VkVideoEncodeAV1DpbSlotInfoKHR {
13268 VkStructureType sType;
13269 const void* pNext;
13270 const StdVideoEncodeAV1ReferenceInfo* pStdReferenceInfo;
13271} VkVideoEncodeAV1DpbSlotInfoKHR;
13272
13273typedef struct VkVideoEncodeAV1ProfileInfoKHR {
13274 VkStructureType sType;
13275 const void* pNext;
13276 StdVideoAV1Profile stdProfile;
13277} VkVideoEncodeAV1ProfileInfoKHR;
13278
13279typedef struct VkVideoEncodeAV1FrameSizeKHR {
13280 uint32_t intraFrameSize;
13281 uint32_t predictiveFrameSize;
13282 uint32_t bipredictiveFrameSize;
13283} VkVideoEncodeAV1FrameSizeKHR;
13284
13285typedef struct VkVideoEncodeAV1GopRemainingFrameInfoKHR {
13286 VkStructureType sType;
13287 const void* pNext;
13288 VkBool32 useGopRemainingFrames;
13289 uint32_t gopRemainingIntra;
13290 uint32_t gopRemainingPredictive;
13291 uint32_t gopRemainingBipredictive;
13292} VkVideoEncodeAV1GopRemainingFrameInfoKHR;
13293
13294typedef struct VkVideoEncodeAV1RateControlInfoKHR {
13295 VkStructureType sType;
13296 const void* pNext;
13297 VkVideoEncodeAV1RateControlFlagsKHR flags;
13298 uint32_t gopFrameCount;
13299 uint32_t keyFramePeriod;
13300 uint32_t consecutiveBipredictiveFrameCount;
13301 uint32_t temporalLayerCount;
13302} VkVideoEncodeAV1RateControlInfoKHR;
13303
13304typedef struct VkVideoEncodeAV1RateControlLayerInfoKHR {
13305 VkStructureType sType;
13306 const void* pNext;
13307 VkBool32 useMinQIndex;
13308 VkVideoEncodeAV1QIndexKHR minQIndex;
13309 VkBool32 useMaxQIndex;
13310 VkVideoEncodeAV1QIndexKHR maxQIndex;
13311 VkBool32 useMaxFrameSize;
13312 VkVideoEncodeAV1FrameSizeKHR maxFrameSize;
13313} VkVideoEncodeAV1RateControlLayerInfoKHR;
13314
13315
13316
13317// VK_KHR_video_decode_vp9 is a preprocessor guard. Do not pass it to API calls.
13318#define VK_KHR_video_decode_vp9 1
13319#include "vk_video/vulkan_video_codec_vp9std.h"
13320#include "vk_video/vulkan_video_codec_vp9std_decode.h"
13321#define VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR 3U
13322#define VK_KHR_VIDEO_DECODE_VP9_SPEC_VERSION 1
13323#define VK_KHR_VIDEO_DECODE_VP9_EXTENSION_NAME "VK_KHR_video_decode_vp9"
13324typedef struct VkPhysicalDeviceVideoDecodeVP9FeaturesKHR {
13325 VkStructureType sType;
13326 void* pNext;
13327 VkBool32 videoDecodeVP9;
13328} VkPhysicalDeviceVideoDecodeVP9FeaturesKHR;
13329
13330typedef struct VkVideoDecodeVP9ProfileInfoKHR {
13331 VkStructureType sType;
13332 const void* pNext;
13333 StdVideoVP9Profile stdProfile;
13334} VkVideoDecodeVP9ProfileInfoKHR;
13335
13336typedef struct VkVideoDecodeVP9CapabilitiesKHR {
13337 VkStructureType sType;
13338 void* pNext;
13339 StdVideoVP9Level maxLevel;
13340} VkVideoDecodeVP9CapabilitiesKHR;
13341
13342typedef struct VkVideoDecodeVP9PictureInfoKHR {
13343 VkStructureType sType;
13344 const void* pNext;
13345 const StdVideoDecodeVP9PictureInfo* pStdPictureInfo;
13346 int32_t referenceNameSlotIndices[VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR];
13347 uint32_t uncompressedHeaderOffset;
13348 uint32_t compressedHeaderOffset;
13349 uint32_t tilesOffset;
13350} VkVideoDecodeVP9PictureInfoKHR;
13351
13352
13353
13354// VK_KHR_video_maintenance1 is a preprocessor guard. Do not pass it to API calls.
13355#define VK_KHR_video_maintenance1 1
13356#define VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION 1
13357#define VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_video_maintenance1"
13358typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR {
13359 VkStructureType sType;
13360 void* pNext;
13361 VkBool32 videoMaintenance1;
13362} VkPhysicalDeviceVideoMaintenance1FeaturesKHR;
13363
13364typedef struct VkVideoInlineQueryInfoKHR {
13365 VkStructureType sType;
13366 const void* pNext;
13367 VkQueryPool queryPool;
13368 uint32_t firstQuery;
13369 uint32_t queryCount;
13370} VkVideoInlineQueryInfoKHR;
13371
13372
13373
13374// VK_KHR_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
13375#define VK_KHR_vertex_attribute_divisor 1
13376#define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1
13377#define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_KHR_vertex_attribute_divisor"
13378typedef VkPhysicalDeviceVertexAttributeDivisorProperties VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR;
13379
13380typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionKHR;
13381
13382typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoKHR;
13383
13384typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
13385
13386
13387
13388// VK_KHR_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
13389#define VK_KHR_load_store_op_none 1
13390#define VK_KHR_LOAD_STORE_OP_NONE_SPEC_VERSION 1
13391#define VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_KHR_load_store_op_none"
13392
13393
13394// VK_KHR_unified_image_layouts is a preprocessor guard. Do not pass it to API calls.
13395#define VK_KHR_unified_image_layouts 1
13396#define VK_KHR_UNIFIED_IMAGE_LAYOUTS_SPEC_VERSION 1
13397#define VK_KHR_UNIFIED_IMAGE_LAYOUTS_EXTENSION_NAME "VK_KHR_unified_image_layouts"
13398typedef struct VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR {
13399 VkStructureType sType;
13400 void* pNext;
13401 VkBool32 unifiedImageLayouts;
13402 VkBool32 unifiedImageLayoutsVideo;
13403} VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR;
13404
13405typedef struct VkAttachmentFeedbackLoopInfoEXT {
13406 VkStructureType sType;
13407 const void* pNext;
13408 VkBool32 feedbackLoopEnable;
13409} VkAttachmentFeedbackLoopInfoEXT;
13410
13411
13412
13413// VK_KHR_shader_float_controls2 is a preprocessor guard. Do not pass it to API calls.
13414#define VK_KHR_shader_float_controls2 1
13415#define VK_KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION 1
13416#define VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME "VK_KHR_shader_float_controls2"
13417typedef VkPhysicalDeviceShaderFloatControls2Features VkPhysicalDeviceShaderFloatControls2FeaturesKHR;
13418
13419
13420
13421// VK_KHR_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
13422#define VK_KHR_index_type_uint8 1
13423#define VK_KHR_INDEX_TYPE_UINT8_SPEC_VERSION 1
13424#define VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_KHR_index_type_uint8"
13425typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesKHR;
13426
13427
13428
13429// VK_KHR_line_rasterization is a preprocessor guard. Do not pass it to API calls.
13430#define VK_KHR_line_rasterization 1
13431#define VK_KHR_LINE_RASTERIZATION_SPEC_VERSION 1
13432#define VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME "VK_KHR_line_rasterization"
13433typedef VkLineRasterizationMode VkLineRasterizationModeKHR;
13434
13435typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesKHR;
13436
13437typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesKHR;
13438
13439typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoKHR;
13440
13441typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleKHR)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
13442
13443#ifndef VK_NO_PROTOTYPES
13444#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13445VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleKHR(
13446 VkCommandBuffer commandBuffer,
13447 uint32_t lineStippleFactor,
13448 uint16_t lineStipplePattern);
13449#endif
13450#endif
13451
13452
13453// VK_KHR_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
13454#define VK_KHR_calibrated_timestamps 1
13455#define VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
13456#define VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_KHR_calibrated_timestamps"
13457
13458typedef enum VkTimeDomainKHR {
13459 VK_TIME_DOMAIN_DEVICE_KHR = 0,
13460 VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR = 1,
13461 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR = 2,
13462 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR = 3,
13463 VK_TIME_DOMAIN_PRESENT_STAGE_LOCAL_EXT = 1000208000,
13464 VK_TIME_DOMAIN_SWAPCHAIN_LOCAL_EXT = 1000208001,
13465 VK_TIME_DOMAIN_DEVICE_EXT = VK_TIME_DOMAIN_DEVICE_KHR,
13466 VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
13467 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
13468 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR,
13469 VK_TIME_DOMAIN_MAX_ENUM_KHR = 0x7FFFFFFF
13470} VkTimeDomainKHR;
13471typedef struct VkCalibratedTimestampInfoKHR {
13472 VkStructureType sType;
13473 const void* pNext;
13474 VkTimeDomainKHR timeDomain;
13475} VkCalibratedTimestampInfoKHR;
13476
13477typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
13478typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsKHR)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
13479
13480#ifndef VK_NO_PROTOTYPES
13481#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13482VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
13483 VkPhysicalDevice physicalDevice,
13484 uint32_t* pTimeDomainCount,
13485 VkTimeDomainKHR* pTimeDomains);
13486#endif
13487
13488#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13489VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsKHR(
13490 VkDevice device,
13491 uint32_t timestampCount,
13492 const VkCalibratedTimestampInfoKHR* pTimestampInfos,
13493 uint64_t* pTimestamps,
13494 uint64_t* pMaxDeviation);
13495#endif
13496#endif
13497
13498
13499// VK_KHR_shader_expect_assume is a preprocessor guard. Do not pass it to API calls.
13500#define VK_KHR_shader_expect_assume 1
13501#define VK_KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION 1
13502#define VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME "VK_KHR_shader_expect_assume"
13503typedef VkPhysicalDeviceShaderExpectAssumeFeatures VkPhysicalDeviceShaderExpectAssumeFeaturesKHR;
13504
13505
13506
13507// VK_KHR_maintenance6 is a preprocessor guard. Do not pass it to API calls.
13508#define VK_KHR_maintenance6 1
13509#define VK_KHR_MAINTENANCE_6_SPEC_VERSION 1
13510#define VK_KHR_MAINTENANCE_6_EXTENSION_NAME "VK_KHR_maintenance6"
13511typedef VkPhysicalDeviceMaintenance6Features VkPhysicalDeviceMaintenance6FeaturesKHR;
13512
13513typedef VkPhysicalDeviceMaintenance6Properties VkPhysicalDeviceMaintenance6PropertiesKHR;
13514
13515typedef VkBindMemoryStatus VkBindMemoryStatusKHR;
13516
13517typedef VkBindDescriptorSetsInfo VkBindDescriptorSetsInfoKHR;
13518
13519typedef VkPushConstantsInfo VkPushConstantsInfoKHR;
13520
13521typedef VkPushDescriptorSetInfo VkPushDescriptorSetInfoKHR;
13522
13523typedef VkPushDescriptorSetWithTemplateInfo VkPushDescriptorSetWithTemplateInfoKHR;
13524
13525typedef struct VkSetDescriptorBufferOffsetsInfoEXT {
13526 VkStructureType sType;
13527 const void* pNext;
13528 VkShaderStageFlags stageFlags;
13529 VkPipelineLayout layout;
13530 uint32_t firstSet;
13531 uint32_t setCount;
13532 const uint32_t* pBufferIndices;
13533 const VkDeviceSize* pOffsets;
13534} VkSetDescriptorBufferOffsetsInfoEXT;
13535
13536typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT {
13537 VkStructureType sType;
13538 const void* pNext;
13539 VkShaderStageFlags stageFlags;
13540 VkPipelineLayout layout;
13541 uint32_t set;
13542} VkBindDescriptorBufferEmbeddedSamplersInfoEXT;
13543
13544typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
13545typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2KHR)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo* pPushConstantsInfo);
13546typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
13547typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
13548typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer commandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
13549typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
13550
13551#ifndef VK_NO_PROTOTYPES
13552#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13553VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2KHR(
13554 VkCommandBuffer commandBuffer,
13555 const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
13556#endif
13557
13558#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13559VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2KHR(
13560 VkCommandBuffer commandBuffer,
13561 const VkPushConstantsInfo* pPushConstantsInfo);
13562#endif
13563
13564#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13565VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2KHR(
13566 VkCommandBuffer commandBuffer,
13567 const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
13568#endif
13569
13570#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13571VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2KHR(
13572 VkCommandBuffer commandBuffer,
13573 const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
13574#endif
13575
13576#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13577VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsets2EXT(
13578 VkCommandBuffer commandBuffer,
13579 const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
13580#endif
13581
13582#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13583VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
13584 VkCommandBuffer commandBuffer,
13585 const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
13586#endif
13587#endif
13588
13589
13590// VK_KHR_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
13591#define VK_KHR_copy_memory_indirect 1
13592#define VK_KHR_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
13593#define VK_KHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_KHR_copy_memory_indirect"
13594
13595typedef enum VkAddressCopyFlagBitsKHR {
13596 VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR = 0x00000001,
13597 VK_ADDRESS_COPY_SPARSE_BIT_KHR = 0x00000002,
13598 VK_ADDRESS_COPY_PROTECTED_BIT_KHR = 0x00000004,
13599 VK_ADDRESS_COPY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13600} VkAddressCopyFlagBitsKHR;
13601typedef VkFlags VkAddressCopyFlagsKHR;
13602typedef struct VkStridedDeviceAddressRangeKHR {
13603 VkDeviceAddress address;
13604 VkDeviceSize size;
13605 VkDeviceSize stride;
13606} VkStridedDeviceAddressRangeKHR;
13607
13608typedef struct VkCopyMemoryIndirectCommandKHR {
13609 VkDeviceAddress srcAddress;
13610 VkDeviceAddress dstAddress;
13611 VkDeviceSize size;
13612} VkCopyMemoryIndirectCommandKHR;
13613
13614typedef struct VkCopyMemoryIndirectInfoKHR {
13615 VkStructureType sType;
13616 const void* pNext;
13617 VkAddressCopyFlagsKHR srcCopyFlags;
13618 VkAddressCopyFlagsKHR dstCopyFlags;
13619 uint32_t copyCount;
13620 VkStridedDeviceAddressRangeKHR copyAddressRange;
13621} VkCopyMemoryIndirectInfoKHR;
13622
13623typedef struct VkCopyMemoryToImageIndirectCommandKHR {
13624 VkDeviceAddress srcAddress;
13625 uint32_t bufferRowLength;
13626 uint32_t bufferImageHeight;
13627 VkImageSubresourceLayers imageSubresource;
13628 VkOffset3D imageOffset;
13629 VkExtent3D imageExtent;
13630} VkCopyMemoryToImageIndirectCommandKHR;
13631
13632typedef struct VkCopyMemoryToImageIndirectInfoKHR {
13633 VkStructureType sType;
13634 const void* pNext;
13635 VkAddressCopyFlagsKHR srcCopyFlags;
13636 uint32_t copyCount;
13637 VkStridedDeviceAddressRangeKHR copyAddressRange;
13638 VkImage dstImage;
13639 VkImageLayout dstImageLayout;
13640 const VkImageSubresourceLayers* pImageSubresources;
13641} VkCopyMemoryToImageIndirectInfoKHR;
13642
13643typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR {
13644 VkStructureType sType;
13645 void* pNext;
13646 VkBool32 indirectMemoryCopy;
13647 VkBool32 indirectMemoryToImageCopy;
13648} VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR;
13649
13650typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR {
13651 VkStructureType sType;
13652 void* pNext;
13653 VkQueueFlags supportedQueues;
13654} VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR;
13655
13656typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo);
13657typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo);
13658
13659#ifndef VK_NO_PROTOTYPES
13660#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13661VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectKHR(
13662 VkCommandBuffer commandBuffer,
13663 const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo);
13664#endif
13665
13666#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13667VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectKHR(
13668 VkCommandBuffer commandBuffer,
13669 const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo);
13670#endif
13671#endif
13672
13673
13674// VK_KHR_video_encode_intra_refresh is a preprocessor guard. Do not pass it to API calls.
13675#define VK_KHR_video_encode_intra_refresh 1
13676#define VK_KHR_VIDEO_ENCODE_INTRA_REFRESH_SPEC_VERSION 1
13677#define VK_KHR_VIDEO_ENCODE_INTRA_REFRESH_EXTENSION_NAME "VK_KHR_video_encode_intra_refresh"
13678
13679typedef enum VkVideoEncodeIntraRefreshModeFlagBitsKHR {
13680 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_NONE_KHR = 0,
13681 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_PER_PICTURE_PARTITION_BIT_KHR = 0x00000001,
13682 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_BASED_BIT_KHR = 0x00000002,
13683 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_ROW_BASED_BIT_KHR = 0x00000004,
13684 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_COLUMN_BASED_BIT_KHR = 0x00000008,
13685 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13686} VkVideoEncodeIntraRefreshModeFlagBitsKHR;
13687typedef VkFlags VkVideoEncodeIntraRefreshModeFlagsKHR;
13688typedef struct VkVideoEncodeIntraRefreshCapabilitiesKHR {
13689 VkStructureType sType;
13690 void* pNext;
13691 VkVideoEncodeIntraRefreshModeFlagsKHR intraRefreshModes;
13692 uint32_t maxIntraRefreshCycleDuration;
13693 uint32_t maxIntraRefreshActiveReferencePictures;
13694 VkBool32 partitionIndependentIntraRefreshRegions;
13695 VkBool32 nonRectangularIntraRefreshRegions;
13696} VkVideoEncodeIntraRefreshCapabilitiesKHR;
13697
13698typedef struct VkVideoEncodeSessionIntraRefreshCreateInfoKHR {
13699 VkStructureType sType;
13700 const void* pNext;
13701 VkVideoEncodeIntraRefreshModeFlagBitsKHR intraRefreshMode;
13702} VkVideoEncodeSessionIntraRefreshCreateInfoKHR;
13703
13704typedef struct VkVideoEncodeIntraRefreshInfoKHR {
13705 VkStructureType sType;
13706 const void* pNext;
13707 uint32_t intraRefreshCycleDuration;
13708 uint32_t intraRefreshIndex;
13709} VkVideoEncodeIntraRefreshInfoKHR;
13710
13711typedef struct VkVideoReferenceIntraRefreshInfoKHR {
13712 VkStructureType sType;
13713 const void* pNext;
13714 uint32_t dirtyIntraRefreshRegions;
13715} VkVideoReferenceIntraRefreshInfoKHR;
13716
13717typedef struct VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {
13718 VkStructureType sType;
13719 void* pNext;
13720 VkBool32 videoEncodeIntraRefresh;
13721} VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR;
13722
13723
13724
13725// VK_KHR_video_encode_quantization_map is a preprocessor guard. Do not pass it to API calls.
13726#define VK_KHR_video_encode_quantization_map 1
13727#define VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_SPEC_VERSION 2
13728#define VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME "VK_KHR_video_encode_quantization_map"
13729typedef struct VkVideoEncodeQuantizationMapCapabilitiesKHR {
13730 VkStructureType sType;
13731 void* pNext;
13732 VkExtent2D maxQuantizationMapExtent;
13733} VkVideoEncodeQuantizationMapCapabilitiesKHR;
13734
13735typedef struct VkVideoFormatQuantizationMapPropertiesKHR {
13736 VkStructureType sType;
13737 void* pNext;
13738 VkExtent2D quantizationMapTexelSize;
13739} VkVideoFormatQuantizationMapPropertiesKHR;
13740
13741typedef struct VkVideoEncodeQuantizationMapInfoKHR {
13742 VkStructureType sType;
13743 const void* pNext;
13744 VkImageView quantizationMap;
13745 VkExtent2D quantizationMapExtent;
13746} VkVideoEncodeQuantizationMapInfoKHR;
13747
13748typedef struct VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
13749 VkStructureType sType;
13750 const void* pNext;
13751 VkExtent2D quantizationMapTexelSize;
13752} VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR;
13753
13754typedef struct VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
13755 VkStructureType sType;
13756 void* pNext;
13757 VkBool32 videoEncodeQuantizationMap;
13758} VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR;
13759
13760typedef struct VkVideoEncodeH264QuantizationMapCapabilitiesKHR {
13761 VkStructureType sType;
13762 void* pNext;
13763 int32_t minQpDelta;
13764 int32_t maxQpDelta;
13765} VkVideoEncodeH264QuantizationMapCapabilitiesKHR;
13766
13767typedef struct VkVideoEncodeH265QuantizationMapCapabilitiesKHR {
13768 VkStructureType sType;
13769 void* pNext;
13770 int32_t minQpDelta;
13771 int32_t maxQpDelta;
13772} VkVideoEncodeH265QuantizationMapCapabilitiesKHR;
13773
13774typedef struct VkVideoFormatH265QuantizationMapPropertiesKHR {
13775 VkStructureType sType;
13776 void* pNext;
13777 VkVideoEncodeH265CtbSizeFlagsKHR compatibleCtbSizes;
13778} VkVideoFormatH265QuantizationMapPropertiesKHR;
13779
13780typedef struct VkVideoEncodeAV1QuantizationMapCapabilitiesKHR {
13781 VkStructureType sType;
13782 void* pNext;
13783 int32_t minQIndexDelta;
13784 int32_t maxQIndexDelta;
13785} VkVideoEncodeAV1QuantizationMapCapabilitiesKHR;
13786
13787typedef struct VkVideoFormatAV1QuantizationMapPropertiesKHR {
13788 VkStructureType sType;
13789 void* pNext;
13790 VkVideoEncodeAV1SuperblockSizeFlagsKHR compatibleSuperblockSizes;
13791} VkVideoFormatAV1QuantizationMapPropertiesKHR;
13792
13793
13794
13795// VK_KHR_shader_relaxed_extended_instruction is a preprocessor guard. Do not pass it to API calls.
13796#define VK_KHR_shader_relaxed_extended_instruction 1
13797#define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION 1
13798#define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME "VK_KHR_shader_relaxed_extended_instruction"
13799typedef struct VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
13800 VkStructureType sType;
13801 void* pNext;
13802 VkBool32 shaderRelaxedExtendedInstruction;
13803} VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR;
13804
13805
13806
13807// VK_KHR_maintenance7 is a preprocessor guard. Do not pass it to API calls.
13808#define VK_KHR_maintenance7 1
13809#define VK_KHR_MAINTENANCE_7_SPEC_VERSION 1
13810#define VK_KHR_MAINTENANCE_7_EXTENSION_NAME "VK_KHR_maintenance7"
13811
13812typedef enum VkPhysicalDeviceLayeredApiKHR {
13813 VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR = 0,
13814 VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR = 1,
13815 VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR = 2,
13816 VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR = 3,
13817 VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR = 4,
13818 VK_PHYSICAL_DEVICE_LAYERED_API_MAX_ENUM_KHR = 0x7FFFFFFF
13819} VkPhysicalDeviceLayeredApiKHR;
13820typedef struct VkPhysicalDeviceMaintenance7FeaturesKHR {
13821 VkStructureType sType;
13822 void* pNext;
13823 VkBool32 maintenance7;
13824} VkPhysicalDeviceMaintenance7FeaturesKHR;
13825
13826typedef struct VkPhysicalDeviceMaintenance7PropertiesKHR {
13827 VkStructureType sType;
13828 void* pNext;
13829 VkBool32 robustFragmentShadingRateAttachmentAccess;
13830 VkBool32 separateDepthStencilAttachmentAccess;
13831 uint32_t maxDescriptorSetTotalUniformBuffersDynamic;
13832 uint32_t maxDescriptorSetTotalStorageBuffersDynamic;
13833 uint32_t maxDescriptorSetTotalBuffersDynamic;
13834 uint32_t maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic;
13835 uint32_t maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic;
13836 uint32_t maxDescriptorSetUpdateAfterBindTotalBuffersDynamic;
13837} VkPhysicalDeviceMaintenance7PropertiesKHR;
13838
13839typedef struct VkPhysicalDeviceLayeredApiPropertiesKHR {
13840 VkStructureType sType;
13841 void* pNext;
13842 uint32_t vendorID;
13843 uint32_t deviceID;
13844 VkPhysicalDeviceLayeredApiKHR layeredAPI;
13845 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
13846} VkPhysicalDeviceLayeredApiPropertiesKHR;
13847
13848typedef struct VkPhysicalDeviceLayeredApiPropertiesListKHR {
13849 VkStructureType sType;
13850 void* pNext;
13851 uint32_t layeredApiCount;
13852 VkPhysicalDeviceLayeredApiPropertiesKHR* pLayeredApis;
13853} VkPhysicalDeviceLayeredApiPropertiesListKHR;
13854
13855typedef struct VkPhysicalDeviceLayeredApiVulkanPropertiesKHR {
13856 VkStructureType sType;
13857 void* pNext;
13858 VkPhysicalDeviceProperties2 properties;
13859} VkPhysicalDeviceLayeredApiVulkanPropertiesKHR;
13860
13861
13862
13863// VK_KHR_maintenance8 is a preprocessor guard. Do not pass it to API calls.
13864#define VK_KHR_maintenance8 1
13865#define VK_KHR_MAINTENANCE_8_SPEC_VERSION 1
13866#define VK_KHR_MAINTENANCE_8_EXTENSION_NAME "VK_KHR_maintenance8"
13867typedef VkFlags64 VkAccessFlags3KHR;
13868
13869// Flag bits for VkAccessFlagBits3KHR
13870typedef VkFlags64 VkAccessFlagBits3KHR;
13871static const VkAccessFlagBits3KHR VK_ACCESS_3_NONE_KHR = 0ULL;
13872
13873typedef struct VkMemoryBarrierAccessFlags3KHR {
13874 VkStructureType sType;
13875 const void* pNext;
13876 VkAccessFlags3KHR srcAccessMask3;
13877 VkAccessFlags3KHR dstAccessMask3;
13878} VkMemoryBarrierAccessFlags3KHR;
13879
13880typedef struct VkPhysicalDeviceMaintenance8FeaturesKHR {
13881 VkStructureType sType;
13882 void* pNext;
13883 VkBool32 maintenance8;
13884} VkPhysicalDeviceMaintenance8FeaturesKHR;
13885
13886
13887
13888// VK_KHR_shader_fma is a preprocessor guard. Do not pass it to API calls.
13889#define VK_KHR_shader_fma 1
13890#define VK_KHR_SHADER_FMA_SPEC_VERSION 1
13891#define VK_KHR_SHADER_FMA_EXTENSION_NAME "VK_KHR_shader_fma"
13892typedef struct VkPhysicalDeviceShaderFmaFeaturesKHR {
13893 VkStructureType sType;
13894 void* pNext;
13895 VkBool32 shaderFmaFloat16;
13896 VkBool32 shaderFmaFloat32;
13897 VkBool32 shaderFmaFloat64;
13898} VkPhysicalDeviceShaderFmaFeaturesKHR;
13899
13900
13901
13902// VK_KHR_maintenance9 is a preprocessor guard. Do not pass it to API calls.
13903#define VK_KHR_maintenance9 1
13904#define VK_KHR_MAINTENANCE_9_SPEC_VERSION 1
13905#define VK_KHR_MAINTENANCE_9_EXTENSION_NAME "VK_KHR_maintenance9"
13906
13907typedef enum VkDefaultVertexAttributeValueKHR {
13908 VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ZERO_KHR = 0,
13909 VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ONE_KHR = 1,
13910 VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_MAX_ENUM_KHR = 0x7FFFFFFF
13911} VkDefaultVertexAttributeValueKHR;
13912typedef struct VkPhysicalDeviceMaintenance9FeaturesKHR {
13913 VkStructureType sType;
13914 void* pNext;
13915 VkBool32 maintenance9;
13916} VkPhysicalDeviceMaintenance9FeaturesKHR;
13917
13918typedef struct VkPhysicalDeviceMaintenance9PropertiesKHR {
13919 VkStructureType sType;
13920 void* pNext;
13921 VkBool32 image2DViewOf3DSparse;
13922 VkDefaultVertexAttributeValueKHR defaultVertexAttributeValue;
13923} VkPhysicalDeviceMaintenance9PropertiesKHR;
13924
13925typedef struct VkQueueFamilyOwnershipTransferPropertiesKHR {
13926 VkStructureType sType;
13927 void* pNext;
13928 uint32_t optimalImageTransferToQueueFamilies;
13929} VkQueueFamilyOwnershipTransferPropertiesKHR;
13930
13931
13932
13933// VK_KHR_video_maintenance2 is a preprocessor guard. Do not pass it to API calls.
13934#define VK_KHR_video_maintenance2 1
13935#define VK_KHR_VIDEO_MAINTENANCE_2_SPEC_VERSION 1
13936#define VK_KHR_VIDEO_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_video_maintenance2"
13937typedef struct VkPhysicalDeviceVideoMaintenance2FeaturesKHR {
13938 VkStructureType sType;
13939 void* pNext;
13940 VkBool32 videoMaintenance2;
13941} VkPhysicalDeviceVideoMaintenance2FeaturesKHR;
13942
13943typedef struct VkVideoDecodeH264InlineSessionParametersInfoKHR {
13944 VkStructureType sType;
13945 const void* pNext;
13946 const StdVideoH264SequenceParameterSet* pStdSPS;
13947 const StdVideoH264PictureParameterSet* pStdPPS;
13948} VkVideoDecodeH264InlineSessionParametersInfoKHR;
13949
13950typedef struct VkVideoDecodeH265InlineSessionParametersInfoKHR {
13951 VkStructureType sType;
13952 const void* pNext;
13953 const StdVideoH265VideoParameterSet* pStdVPS;
13954 const StdVideoH265SequenceParameterSet* pStdSPS;
13955 const StdVideoH265PictureParameterSet* pStdPPS;
13956} VkVideoDecodeH265InlineSessionParametersInfoKHR;
13957
13958typedef struct VkVideoDecodeAV1InlineSessionParametersInfoKHR {
13959 VkStructureType sType;
13960 const void* pNext;
13961 const StdVideoAV1SequenceHeader* pStdSequenceHeader;
13962} VkVideoDecodeAV1InlineSessionParametersInfoKHR;
13963
13964
13965
13966// VK_KHR_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
13967#define VK_KHR_depth_clamp_zero_one 1
13968#define VK_KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
13969#define VK_KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_KHR_depth_clamp_zero_one"
13970typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesKHR {
13971 VkStructureType sType;
13972 void* pNext;
13973 VkBool32 depthClampZeroOne;
13974} VkPhysicalDeviceDepthClampZeroOneFeaturesKHR;
13975
13976
13977
13978// VK_KHR_robustness2 is a preprocessor guard. Do not pass it to API calls.
13979#define VK_KHR_robustness2 1
13980#define VK_KHR_ROBUSTNESS_2_SPEC_VERSION 1
13981#define VK_KHR_ROBUSTNESS_2_EXTENSION_NAME "VK_KHR_robustness2"
13982typedef struct VkPhysicalDeviceRobustness2FeaturesKHR {
13983 VkStructureType sType;
13984 void* pNext;
13985 VkBool32 robustBufferAccess2;
13986 VkBool32 robustImageAccess2;
13987 VkBool32 nullDescriptor;
13988} VkPhysicalDeviceRobustness2FeaturesKHR;
13989
13990typedef struct VkPhysicalDeviceRobustness2PropertiesKHR {
13991 VkStructureType sType;
13992 void* pNext;
13993 VkDeviceSize robustStorageBufferAccessSizeAlignment;
13994 VkDeviceSize robustUniformBufferAccessSizeAlignment;
13995} VkPhysicalDeviceRobustness2PropertiesKHR;
13996
13997
13998
13999// VK_KHR_present_mode_fifo_latest_ready is a preprocessor guard. Do not pass it to API calls.
14000#define VK_KHR_present_mode_fifo_latest_ready 1
14001#define VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION 1
14002#define VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME "VK_KHR_present_mode_fifo_latest_ready"
14003typedef struct VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {
14004 VkStructureType sType;
14005 void* pNext;
14006 VkBool32 presentModeFifoLatestReady;
14007} VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR;
14008
14009
14010
14011// VK_KHR_maintenance10 is a preprocessor guard. Do not pass it to API calls.
14012#define VK_KHR_maintenance10 1
14013#define VK_KHR_MAINTENANCE_10_SPEC_VERSION 1
14014#define VK_KHR_MAINTENANCE_10_EXTENSION_NAME "VK_KHR_maintenance10"
14015
14016typedef enum VkRenderingAttachmentFlagBitsKHR {
14017 VK_RENDERING_ATTACHMENT_INPUT_ATTACHMENT_FEEDBACK_BIT_KHR = 0x00000001,
14018 VK_RENDERING_ATTACHMENT_RESOLVE_SKIP_TRANSFER_FUNCTION_BIT_KHR = 0x00000002,
14019 VK_RENDERING_ATTACHMENT_RESOLVE_ENABLE_TRANSFER_FUNCTION_BIT_KHR = 0x00000004,
14020 VK_RENDERING_ATTACHMENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14021} VkRenderingAttachmentFlagBitsKHR;
14022typedef VkFlags VkRenderingAttachmentFlagsKHR;
14023
14024typedef enum VkResolveImageFlagBitsKHR {
14025 VK_RESOLVE_IMAGE_SKIP_TRANSFER_FUNCTION_BIT_KHR = 0x00000001,
14026 VK_RESOLVE_IMAGE_ENABLE_TRANSFER_FUNCTION_BIT_KHR = 0x00000002,
14027 VK_RESOLVE_IMAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14028} VkResolveImageFlagBitsKHR;
14029typedef VkFlags VkResolveImageFlagsKHR;
14030typedef struct VkPhysicalDeviceMaintenance10FeaturesKHR {
14031 VkStructureType sType;
14032 void* pNext;
14033 VkBool32 maintenance10;
14034} VkPhysicalDeviceMaintenance10FeaturesKHR;
14035
14036typedef struct VkPhysicalDeviceMaintenance10PropertiesKHR {
14037 VkStructureType sType;
14038 void* pNext;
14039 VkBool32 rgba4OpaqueBlackSwizzled;
14040 VkBool32 resolveSrgbFormatAppliesTransferFunction;
14041 VkBool32 resolveSrgbFormatSupportsTransferFunctionControl;
14042} VkPhysicalDeviceMaintenance10PropertiesKHR;
14043
14044typedef struct VkRenderingEndInfoKHR {
14045 VkStructureType sType;
14046 const void* pNext;
14047} VkRenderingEndInfoKHR;
14048
14049typedef struct VkRenderingAttachmentFlagsInfoKHR {
14050 VkStructureType sType;
14051 const void* pNext;
14052 VkRenderingAttachmentFlagsKHR flags;
14053} VkRenderingAttachmentFlagsInfoKHR;
14054
14055typedef struct VkResolveImageModeInfoKHR {
14056 VkStructureType sType;
14057 const void* pNext;
14058 VkResolveImageFlagsKHR flags;
14059 VkResolveModeFlagBits resolveMode;
14060 VkResolveModeFlagBits stencilResolveMode;
14061} VkResolveImageModeInfoKHR;
14062
14063typedef void (VKAPI_PTR *PFN_vkCmdEndRendering2KHR)(VkCommandBuffer commandBuffer, const VkRenderingEndInfoKHR* pRenderingEndInfo);
14064
14065#ifndef VK_NO_PROTOTYPES
14066#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14067VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering2KHR(
14068 VkCommandBuffer commandBuffer,
14069 const VkRenderingEndInfoKHR* pRenderingEndInfo);
14070#endif
14071#endif
14072
14073
14074// VK_EXT_debug_report is a preprocessor guard. Do not pass it to API calls.
14075#define VK_EXT_debug_report 1
14076VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
14077#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10
14078#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
14079
14080typedef enum VkDebugReportObjectTypeEXT {
14081 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
14082 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
14083 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
14084 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
14085 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
14086 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
14087 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
14088 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
14089 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
14090 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
14091 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
14092 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
14093 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
14094 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
14095 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
14096 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
14097 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
14098 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
14099 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
14100 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
14101 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
14102 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
14103 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
14104 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
14105 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
14106 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
14107 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
14108 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
14109 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
14110 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
14111 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
14112 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
14113 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
14114 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
14115 VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000,
14116 VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
14117 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
14118 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
14119 VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000,
14120 VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT = 1000307001,
14121 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000,
14122 // VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT is a legacy alias
14123 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
14124 // VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT is a legacy alias
14125 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
14126 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
14127 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
14128 VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
14129} VkDebugReportObjectTypeEXT;
14130
14131typedef enum VkDebugReportFlagBitsEXT {
14132 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
14133 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
14134 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
14135 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
14136 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
14137 VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14138} VkDebugReportFlagBitsEXT;
14139typedef VkFlags VkDebugReportFlagsEXT;
14140typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
14141 VkDebugReportFlagsEXT flags,
14142 VkDebugReportObjectTypeEXT objectType,
14143 uint64_t object,
14144 size_t location,
14145 int32_t messageCode,
14146 const char* pLayerPrefix,
14147 const char* pMessage,
14148 void* pUserData);
14149
14150typedef struct VkDebugReportCallbackCreateInfoEXT {
14151 VkStructureType sType;
14152 const void* pNext;
14153 VkDebugReportFlagsEXT flags;
14154 PFN_vkDebugReportCallbackEXT pfnCallback;
14155 void* pUserData;
14156} VkDebugReportCallbackCreateInfoEXT;
14157
14158typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
14159typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
14160typedef 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);
14161
14162#ifndef VK_NO_PROTOTYPES
14163#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14164VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
14165 VkInstance instance,
14166 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
14167 const VkAllocationCallbacks* pAllocator,
14168 VkDebugReportCallbackEXT* pCallback);
14169#endif
14170
14171#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14172VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
14173 VkInstance instance,
14174 VkDebugReportCallbackEXT callback,
14175 const VkAllocationCallbacks* pAllocator);
14176#endif
14177
14178#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14179VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
14180 VkInstance instance,
14181 VkDebugReportFlagsEXT flags,
14182 VkDebugReportObjectTypeEXT objectType,
14183 uint64_t object,
14184 size_t location,
14185 int32_t messageCode,
14186 const char* pLayerPrefix,
14187 const char* pMessage);
14188#endif
14189#endif
14190
14191
14192// VK_NV_glsl_shader is a preprocessor guard. Do not pass it to API calls.
14193#define VK_NV_glsl_shader 1
14194#define VK_NV_GLSL_SHADER_SPEC_VERSION 1
14195#define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader"
14196
14197
14198// VK_EXT_depth_range_unrestricted is a preprocessor guard. Do not pass it to API calls.
14199#define VK_EXT_depth_range_unrestricted 1
14200#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
14201#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
14202
14203
14204// VK_IMG_filter_cubic is a preprocessor guard. Do not pass it to API calls.
14205#define VK_IMG_filter_cubic 1
14206#define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
14207#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
14208
14209
14210// VK_AMD_rasterization_order is a preprocessor guard. Do not pass it to API calls.
14211#define VK_AMD_rasterization_order 1
14212#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
14213#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
14214
14215typedef enum VkRasterizationOrderAMD {
14216 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
14217 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
14218 VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
14219} VkRasterizationOrderAMD;
14220typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
14221 VkStructureType sType;
14222 const void* pNext;
14223 VkRasterizationOrderAMD rasterizationOrder;
14224} VkPipelineRasterizationStateRasterizationOrderAMD;
14225
14226
14227
14228// VK_AMD_shader_trinary_minmax is a preprocessor guard. Do not pass it to API calls.
14229#define VK_AMD_shader_trinary_minmax 1
14230#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
14231#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
14232
14233
14234// VK_AMD_shader_explicit_vertex_parameter is a preprocessor guard. Do not pass it to API calls.
14235#define VK_AMD_shader_explicit_vertex_parameter 1
14236#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
14237#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
14238
14239
14240// VK_EXT_debug_marker is a preprocessor guard. Do not pass it to API calls.
14241#define VK_EXT_debug_marker 1
14242#define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
14243#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
14244typedef struct VkDebugMarkerObjectNameInfoEXT {
14245 VkStructureType sType;
14246 const void* pNext;
14247 VkDebugReportObjectTypeEXT objectType;
14248 uint64_t object;
14249 const char* pObjectName;
14250} VkDebugMarkerObjectNameInfoEXT;
14251
14252typedef struct VkDebugMarkerObjectTagInfoEXT {
14253 VkStructureType sType;
14254 const void* pNext;
14255 VkDebugReportObjectTypeEXT objectType;
14256 uint64_t object;
14257 uint64_t tagName;
14258 size_t tagSize;
14259 const void* pTag;
14260} VkDebugMarkerObjectTagInfoEXT;
14261
14262typedef struct VkDebugMarkerMarkerInfoEXT {
14263 VkStructureType sType;
14264 const void* pNext;
14265 const char* pMarkerName;
14266 float color[4];
14267} VkDebugMarkerMarkerInfoEXT;
14268
14269typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
14270typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
14271typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
14272typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
14273typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
14274
14275#ifndef VK_NO_PROTOTYPES
14276#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14277VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
14278 VkDevice device,
14279 const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
14280#endif
14281
14282#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14283VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
14284 VkDevice device,
14285 const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
14286#endif
14287
14288#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14289VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
14290 VkCommandBuffer commandBuffer,
14291 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
14292#endif
14293
14294#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14295VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
14296 VkCommandBuffer commandBuffer);
14297#endif
14298
14299#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14300VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
14301 VkCommandBuffer commandBuffer,
14302 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
14303#endif
14304#endif
14305
14306
14307// VK_AMD_gcn_shader is a preprocessor guard. Do not pass it to API calls.
14308#define VK_AMD_gcn_shader 1
14309#define VK_AMD_GCN_SHADER_SPEC_VERSION 1
14310#define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
14311
14312
14313// VK_NV_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
14314#define VK_NV_dedicated_allocation 1
14315#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
14316#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
14317typedef struct VkDedicatedAllocationImageCreateInfoNV {
14318 VkStructureType sType;
14319 const void* pNext;
14320 VkBool32 dedicatedAllocation;
14321} VkDedicatedAllocationImageCreateInfoNV;
14322
14323typedef struct VkDedicatedAllocationBufferCreateInfoNV {
14324 VkStructureType sType;
14325 const void* pNext;
14326 VkBool32 dedicatedAllocation;
14327} VkDedicatedAllocationBufferCreateInfoNV;
14328
14329typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
14330 VkStructureType sType;
14331 const void* pNext;
14332 VkImage image;
14333 VkBuffer buffer;
14334} VkDedicatedAllocationMemoryAllocateInfoNV;
14335
14336
14337
14338// VK_EXT_transform_feedback is a preprocessor guard. Do not pass it to API calls.
14339#define VK_EXT_transform_feedback 1
14340#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
14341#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
14342typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
14343typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
14344 VkStructureType sType;
14345 void* pNext;
14346 VkBool32 transformFeedback;
14347 VkBool32 geometryStreams;
14348} VkPhysicalDeviceTransformFeedbackFeaturesEXT;
14349
14350typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
14351 VkStructureType sType;
14352 void* pNext;
14353 uint32_t maxTransformFeedbackStreams;
14354 uint32_t maxTransformFeedbackBuffers;
14355 VkDeviceSize maxTransformFeedbackBufferSize;
14356 uint32_t maxTransformFeedbackStreamDataSize;
14357 uint32_t maxTransformFeedbackBufferDataSize;
14358 uint32_t maxTransformFeedbackBufferDataStride;
14359 VkBool32 transformFeedbackQueries;
14360 VkBool32 transformFeedbackStreamsLinesTriangles;
14361 VkBool32 transformFeedbackRasterizationStreamSelect;
14362 VkBool32 transformFeedbackDraw;
14363} VkPhysicalDeviceTransformFeedbackPropertiesEXT;
14364
14365typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
14366 VkStructureType sType;
14367 const void* pNext;
14368 VkPipelineRasterizationStateStreamCreateFlagsEXT flags;
14369 uint32_t rasterizationStream;
14370} VkPipelineRasterizationStateStreamCreateInfoEXT;
14371
14372typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
14373typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
14374typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
14375typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
14376typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
14377typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
14378
14379#ifndef VK_NO_PROTOTYPES
14380#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14381VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
14382 VkCommandBuffer commandBuffer,
14383 uint32_t firstBinding,
14384 uint32_t bindingCount,
14385 const VkBuffer* pBuffers,
14386 const VkDeviceSize* pOffsets,
14387 const VkDeviceSize* pSizes);
14388#endif
14389
14390#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14391VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
14392 VkCommandBuffer commandBuffer,
14393 uint32_t firstCounterBuffer,
14394 uint32_t counterBufferCount,
14395 const VkBuffer* pCounterBuffers,
14396 const VkDeviceSize* pCounterBufferOffsets);
14397#endif
14398
14399#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14400VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
14401 VkCommandBuffer commandBuffer,
14402 uint32_t firstCounterBuffer,
14403 uint32_t counterBufferCount,
14404 const VkBuffer* pCounterBuffers,
14405 const VkDeviceSize* pCounterBufferOffsets);
14406#endif
14407
14408#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14409VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
14410 VkCommandBuffer commandBuffer,
14411 VkQueryPool queryPool,
14412 uint32_t query,
14413 VkQueryControlFlags flags,
14414 uint32_t index);
14415#endif
14416
14417#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14418VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
14419 VkCommandBuffer commandBuffer,
14420 VkQueryPool queryPool,
14421 uint32_t query,
14422 uint32_t index);
14423#endif
14424
14425#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14426VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
14427 VkCommandBuffer commandBuffer,
14428 uint32_t instanceCount,
14429 uint32_t firstInstance,
14430 VkBuffer counterBuffer,
14431 VkDeviceSize counterBufferOffset,
14432 uint32_t counterOffset,
14433 uint32_t vertexStride);
14434#endif
14435#endif
14436
14437
14438// VK_NVX_binary_import is a preprocessor guard. Do not pass it to API calls.
14439#define VK_NVX_binary_import 1
14440VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
14441VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
14442#define VK_NVX_BINARY_IMPORT_SPEC_VERSION 2
14443#define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
14444typedef struct VkCuModuleCreateInfoNVX {
14445 VkStructureType sType;
14446 const void* pNext;
14447 size_t dataSize;
14448 const void* pData;
14449} VkCuModuleCreateInfoNVX;
14450
14451typedef struct VkCuModuleTexturingModeCreateInfoNVX {
14452 VkStructureType sType;
14453 const void* pNext;
14454 VkBool32 use64bitTexturing;
14455} VkCuModuleTexturingModeCreateInfoNVX;
14456
14457typedef struct VkCuFunctionCreateInfoNVX {
14458 VkStructureType sType;
14459 const void* pNext;
14460 VkCuModuleNVX module;
14461 const char* pName;
14462} VkCuFunctionCreateInfoNVX;
14463
14464typedef struct VkCuLaunchInfoNVX {
14465 VkStructureType sType;
14466 const void* pNext;
14467 VkCuFunctionNVX function;
14468 uint32_t gridDimX;
14469 uint32_t gridDimY;
14470 uint32_t gridDimZ;
14471 uint32_t blockDimX;
14472 uint32_t blockDimY;
14473 uint32_t blockDimZ;
14474 uint32_t sharedMemBytes;
14475 size_t paramCount;
14476 const void* const * pParams;
14477 size_t extraCount;
14478 const void* const * pExtras;
14479} VkCuLaunchInfoNVX;
14480
14481typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
14482typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
14483typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
14484typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
14485typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
14486
14487#ifndef VK_NO_PROTOTYPES
14488#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14489VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX(
14490 VkDevice device,
14491 const VkCuModuleCreateInfoNVX* pCreateInfo,
14492 const VkAllocationCallbacks* pAllocator,
14493 VkCuModuleNVX* pModule);
14494#endif
14495
14496#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14497VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX(
14498 VkDevice device,
14499 const VkCuFunctionCreateInfoNVX* pCreateInfo,
14500 const VkAllocationCallbacks* pAllocator,
14501 VkCuFunctionNVX* pFunction);
14502#endif
14503
14504#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14505VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX(
14506 VkDevice device,
14507 VkCuModuleNVX module,
14508 const VkAllocationCallbacks* pAllocator);
14509#endif
14510
14511#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14512VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX(
14513 VkDevice device,
14514 VkCuFunctionNVX function,
14515 const VkAllocationCallbacks* pAllocator);
14516#endif
14517
14518#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14519VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX(
14520 VkCommandBuffer commandBuffer,
14521 const VkCuLaunchInfoNVX* pLaunchInfo);
14522#endif
14523#endif
14524
14525
14526// VK_NVX_image_view_handle is a preprocessor guard. Do not pass it to API calls.
14527#define VK_NVX_image_view_handle 1
14528#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 4
14529#define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
14530typedef struct VkImageViewHandleInfoNVX {
14531 VkStructureType sType;
14532 const void* pNext;
14533 VkImageView imageView;
14534 VkDescriptorType descriptorType;
14535 VkSampler sampler;
14536} VkImageViewHandleInfoNVX;
14537
14538typedef struct VkImageViewAddressPropertiesNVX {
14539 VkStructureType sType;
14540 void* pNext;
14541 VkDeviceAddress deviceAddress;
14542 VkDeviceSize size;
14543} VkImageViewAddressPropertiesNVX;
14544
14545typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
14546typedef uint64_t (VKAPI_PTR *PFN_vkGetImageViewHandle64NVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
14547typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
14548typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceCombinedImageSamplerIndexNVX)(VkDevice device, uint64_t imageViewIndex, uint64_t samplerIndex);
14549
14550#ifndef VK_NO_PROTOTYPES
14551#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14552VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
14553 VkDevice device,
14554 const VkImageViewHandleInfoNVX* pInfo);
14555#endif
14556
14557#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14558VKAPI_ATTR uint64_t VKAPI_CALL vkGetImageViewHandle64NVX(
14559 VkDevice device,
14560 const VkImageViewHandleInfoNVX* pInfo);
14561#endif
14562
14563#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14564VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
14565 VkDevice device,
14566 VkImageView imageView,
14567 VkImageViewAddressPropertiesNVX* pProperties);
14568#endif
14569
14570#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14571VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceCombinedImageSamplerIndexNVX(
14572 VkDevice device,
14573 uint64_t imageViewIndex,
14574 uint64_t samplerIndex);
14575#endif
14576#endif
14577
14578
14579// VK_AMD_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
14580#define VK_AMD_draw_indirect_count 1
14581#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
14582#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
14583typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
14584typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
14585
14586#ifndef VK_NO_PROTOTYPES
14587#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14588VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
14589 VkCommandBuffer commandBuffer,
14590 VkBuffer buffer,
14591 VkDeviceSize offset,
14592 VkBuffer countBuffer,
14593 VkDeviceSize countBufferOffset,
14594 uint32_t maxDrawCount,
14595 uint32_t stride);
14596#endif
14597
14598#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14599VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
14600 VkCommandBuffer commandBuffer,
14601 VkBuffer buffer,
14602 VkDeviceSize offset,
14603 VkBuffer countBuffer,
14604 VkDeviceSize countBufferOffset,
14605 uint32_t maxDrawCount,
14606 uint32_t stride);
14607#endif
14608#endif
14609
14610
14611// VK_AMD_negative_viewport_height is a preprocessor guard. Do not pass it to API calls.
14612#define VK_AMD_negative_viewport_height 1
14613#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
14614#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
14615
14616
14617// VK_AMD_gpu_shader_half_float is a preprocessor guard. Do not pass it to API calls.
14618#define VK_AMD_gpu_shader_half_float 1
14619#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
14620#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
14621
14622
14623// VK_AMD_shader_ballot is a preprocessor guard. Do not pass it to API calls.
14624#define VK_AMD_shader_ballot 1
14625#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
14626#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
14627
14628
14629// VK_AMD_texture_gather_bias_lod is a preprocessor guard. Do not pass it to API calls.
14630#define VK_AMD_texture_gather_bias_lod 1
14631#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
14632#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
14633typedef struct VkTextureLODGatherFormatPropertiesAMD {
14634 VkStructureType sType;
14635 void* pNext;
14636 VkBool32 supportsTextureGatherLODBiasAMD;
14637} VkTextureLODGatherFormatPropertiesAMD;
14638
14639
14640
14641// VK_AMD_shader_info is a preprocessor guard. Do not pass it to API calls.
14642#define VK_AMD_shader_info 1
14643#define VK_AMD_SHADER_INFO_SPEC_VERSION 1
14644#define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
14645
14646typedef enum VkShaderInfoTypeAMD {
14647 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
14648 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
14649 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
14650 VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
14651} VkShaderInfoTypeAMD;
14652typedef struct VkShaderResourceUsageAMD {
14653 uint32_t numUsedVgprs;
14654 uint32_t numUsedSgprs;
14655 uint32_t ldsSizePerLocalWorkGroup;
14656 size_t ldsUsageSizeInBytes;
14657 size_t scratchMemUsageInBytes;
14658} VkShaderResourceUsageAMD;
14659
14660typedef struct VkShaderStatisticsInfoAMD {
14661 VkShaderStageFlags shaderStageMask;
14662 VkShaderResourceUsageAMD resourceUsage;
14663 uint32_t numPhysicalVgprs;
14664 uint32_t numPhysicalSgprs;
14665 uint32_t numAvailableVgprs;
14666 uint32_t numAvailableSgprs;
14667 uint32_t computeWorkGroupSize[3];
14668} VkShaderStatisticsInfoAMD;
14669
14670typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
14671
14672#ifndef VK_NO_PROTOTYPES
14673#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14674VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
14675 VkDevice device,
14676 VkPipeline pipeline,
14677 VkShaderStageFlagBits shaderStage,
14678 VkShaderInfoTypeAMD infoType,
14679 size_t* pInfoSize,
14680 void* pInfo);
14681#endif
14682#endif
14683
14684
14685// VK_AMD_shader_image_load_store_lod is a preprocessor guard. Do not pass it to API calls.
14686#define VK_AMD_shader_image_load_store_lod 1
14687#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
14688#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
14689
14690
14691// VK_NV_corner_sampled_image is a preprocessor guard. Do not pass it to API calls.
14692#define VK_NV_corner_sampled_image 1
14693#define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
14694#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
14695typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
14696 VkStructureType sType;
14697 void* pNext;
14698 VkBool32 cornerSampledImage;
14699} VkPhysicalDeviceCornerSampledImageFeaturesNV;
14700
14701
14702
14703// VK_IMG_format_pvrtc is a preprocessor guard. Do not pass it to API calls.
14704#define VK_IMG_format_pvrtc 1
14705#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
14706#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
14707
14708
14709// VK_NV_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
14710#define VK_NV_external_memory_capabilities 1
14711#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
14712#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
14713
14714typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
14715 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
14716 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
14717 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
14718 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
14719 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
14720} VkExternalMemoryHandleTypeFlagBitsNV;
14721typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
14722
14723typedef enum VkExternalMemoryFeatureFlagBitsNV {
14724 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
14725 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
14726 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
14727 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
14728} VkExternalMemoryFeatureFlagBitsNV;
14729typedef VkFlags VkExternalMemoryFeatureFlagsNV;
14730typedef struct VkExternalImageFormatPropertiesNV {
14731 VkImageFormatProperties imageFormatProperties;
14732 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures;
14733 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
14734 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
14735} VkExternalImageFormatPropertiesNV;
14736
14737typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
14738
14739#ifndef VK_NO_PROTOTYPES
14740#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14741VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
14742 VkPhysicalDevice physicalDevice,
14743 VkFormat format,
14744 VkImageType type,
14745 VkImageTiling tiling,
14746 VkImageUsageFlags usage,
14747 VkImageCreateFlags flags,
14748 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
14749 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
14750#endif
14751#endif
14752
14753
14754// VK_NV_external_memory is a preprocessor guard. Do not pass it to API calls.
14755#define VK_NV_external_memory 1
14756#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
14757#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
14758typedef struct VkExternalMemoryImageCreateInfoNV {
14759 VkStructureType sType;
14760 const void* pNext;
14761 VkExternalMemoryHandleTypeFlagsNV handleTypes;
14762} VkExternalMemoryImageCreateInfoNV;
14763
14764typedef struct VkExportMemoryAllocateInfoNV {
14765 VkStructureType sType;
14766 const void* pNext;
14767 VkExternalMemoryHandleTypeFlagsNV handleTypes;
14768} VkExportMemoryAllocateInfoNV;
14769
14770
14771
14772// VK_EXT_validation_flags is a preprocessor guard. Do not pass it to API calls.
14773#define VK_EXT_validation_flags 1
14774#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 3
14775#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
14776
14777typedef enum VkValidationCheckEXT {
14778 VK_VALIDATION_CHECK_ALL_EXT = 0,
14779 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
14780 VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
14781} VkValidationCheckEXT;
14782typedef struct VkValidationFlagsEXT {
14783 VkStructureType sType;
14784 const void* pNext;
14785 uint32_t disabledValidationCheckCount;
14786 const VkValidationCheckEXT* pDisabledValidationChecks;
14787} VkValidationFlagsEXT;
14788
14789
14790
14791// VK_EXT_shader_subgroup_ballot is a preprocessor guard. Do not pass it to API calls.
14792#define VK_EXT_shader_subgroup_ballot 1
14793#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
14794#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
14795
14796
14797// VK_EXT_shader_subgroup_vote is a preprocessor guard. Do not pass it to API calls.
14798#define VK_EXT_shader_subgroup_vote 1
14799#define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
14800#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
14801
14802
14803// VK_EXT_texture_compression_astc_hdr is a preprocessor guard. Do not pass it to API calls.
14804#define VK_EXT_texture_compression_astc_hdr 1
14805#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
14806#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
14807typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
14808
14809
14810
14811// VK_EXT_astc_decode_mode is a preprocessor guard. Do not pass it to API calls.
14812#define VK_EXT_astc_decode_mode 1
14813#define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
14814#define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
14815typedef struct VkImageViewASTCDecodeModeEXT {
14816 VkStructureType sType;
14817 const void* pNext;
14818 VkFormat decodeMode;
14819} VkImageViewASTCDecodeModeEXT;
14820
14821typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
14822 VkStructureType sType;
14823 void* pNext;
14824 VkBool32 decodeModeSharedExponent;
14825} VkPhysicalDeviceASTCDecodeFeaturesEXT;
14826
14827
14828
14829// VK_EXT_pipeline_robustness is a preprocessor guard. Do not pass it to API calls.
14830#define VK_EXT_pipeline_robustness 1
14831#define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1
14832#define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
14833typedef VkPipelineRobustnessBufferBehavior VkPipelineRobustnessBufferBehaviorEXT;
14834
14835typedef VkPipelineRobustnessImageBehavior VkPipelineRobustnessImageBehaviorEXT;
14836
14837typedef VkPhysicalDevicePipelineRobustnessFeatures VkPhysicalDevicePipelineRobustnessFeaturesEXT;
14838
14839typedef VkPhysicalDevicePipelineRobustnessProperties VkPhysicalDevicePipelineRobustnessPropertiesEXT;
14840
14841typedef VkPipelineRobustnessCreateInfo VkPipelineRobustnessCreateInfoEXT;
14842
14843
14844
14845// VK_EXT_conditional_rendering is a preprocessor guard. Do not pass it to API calls.
14846#define VK_EXT_conditional_rendering 1
14847#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
14848#define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
14849
14850typedef enum VkConditionalRenderingFlagBitsEXT {
14851 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
14852 VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14853} VkConditionalRenderingFlagBitsEXT;
14854typedef VkFlags VkConditionalRenderingFlagsEXT;
14855typedef struct VkConditionalRenderingBeginInfoEXT {
14856 VkStructureType sType;
14857 const void* pNext;
14858 VkBuffer buffer;
14859 VkDeviceSize offset;
14860 VkConditionalRenderingFlagsEXT flags;
14861} VkConditionalRenderingBeginInfoEXT;
14862
14863typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
14864 VkStructureType sType;
14865 void* pNext;
14866 VkBool32 conditionalRendering;
14867 VkBool32 inheritedConditionalRendering;
14868} VkPhysicalDeviceConditionalRenderingFeaturesEXT;
14869
14870typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
14871 VkStructureType sType;
14872 const void* pNext;
14873 VkBool32 conditionalRenderingEnable;
14874} VkCommandBufferInheritanceConditionalRenderingInfoEXT;
14875
14876typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
14877typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
14878
14879#ifndef VK_NO_PROTOTYPES
14880#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14881VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
14882 VkCommandBuffer commandBuffer,
14883 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
14884#endif
14885
14886#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14887VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
14888 VkCommandBuffer commandBuffer);
14889#endif
14890#endif
14891
14892
14893// VK_NV_clip_space_w_scaling is a preprocessor guard. Do not pass it to API calls.
14894#define VK_NV_clip_space_w_scaling 1
14895#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
14896#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
14897typedef struct VkViewportWScalingNV {
14898 float xcoeff;
14899 float ycoeff;
14900} VkViewportWScalingNV;
14901
14902typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
14903 VkStructureType sType;
14904 const void* pNext;
14905 VkBool32 viewportWScalingEnable;
14906 uint32_t viewportCount;
14907 const VkViewportWScalingNV* pViewportWScalings;
14908} VkPipelineViewportWScalingStateCreateInfoNV;
14909
14910typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
14911
14912#ifndef VK_NO_PROTOTYPES
14913#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14914VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
14915 VkCommandBuffer commandBuffer,
14916 uint32_t firstViewport,
14917 uint32_t viewportCount,
14918 const VkViewportWScalingNV* pViewportWScalings);
14919#endif
14920#endif
14921
14922
14923// VK_EXT_direct_mode_display is a preprocessor guard. Do not pass it to API calls.
14924#define VK_EXT_direct_mode_display 1
14925#define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
14926#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
14927typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
14928
14929#ifndef VK_NO_PROTOTYPES
14930#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14931VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
14932 VkPhysicalDevice physicalDevice,
14933 VkDisplayKHR display);
14934#endif
14935#endif
14936
14937
14938// VK_EXT_display_surface_counter is a preprocessor guard. Do not pass it to API calls.
14939#define VK_EXT_display_surface_counter 1
14940#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
14941#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
14942
14943typedef enum VkSurfaceCounterFlagBitsEXT {
14944 VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001,
14945 // VK_SURFACE_COUNTER_VBLANK_EXT is a legacy alias
14946 VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
14947 VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14948} VkSurfaceCounterFlagBitsEXT;
14949typedef VkFlags VkSurfaceCounterFlagsEXT;
14950typedef struct VkSurfaceCapabilities2EXT {
14951 VkStructureType sType;
14952 void* pNext;
14953 uint32_t minImageCount;
14954 uint32_t maxImageCount;
14955 VkExtent2D currentExtent;
14956 VkExtent2D minImageExtent;
14957 VkExtent2D maxImageExtent;
14958 uint32_t maxImageArrayLayers;
14959 VkSurfaceTransformFlagsKHR supportedTransforms;
14960 VkSurfaceTransformFlagBitsKHR currentTransform;
14961 VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
14962 VkImageUsageFlags supportedUsageFlags;
14963 VkSurfaceCounterFlagsEXT supportedSurfaceCounters;
14964} VkSurfaceCapabilities2EXT;
14965
14966typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
14967
14968#ifndef VK_NO_PROTOTYPES
14969#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14970VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
14971 VkPhysicalDevice physicalDevice,
14972 VkSurfaceKHR surface,
14973 VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
14974#endif
14975#endif
14976
14977
14978// VK_EXT_display_control is a preprocessor guard. Do not pass it to API calls.
14979#define VK_EXT_display_control 1
14980#define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
14981#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
14982
14983typedef enum VkDisplayPowerStateEXT {
14984 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
14985 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
14986 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
14987 VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
14988} VkDisplayPowerStateEXT;
14989
14990typedef enum VkDeviceEventTypeEXT {
14991 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
14992 VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
14993} VkDeviceEventTypeEXT;
14994
14995typedef enum VkDisplayEventTypeEXT {
14996 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
14997 VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
14998} VkDisplayEventTypeEXT;
14999typedef struct VkDisplayPowerInfoEXT {
15000 VkStructureType sType;
15001 const void* pNext;
15002 VkDisplayPowerStateEXT powerState;
15003} VkDisplayPowerInfoEXT;
15004
15005typedef struct VkDeviceEventInfoEXT {
15006 VkStructureType sType;
15007 const void* pNext;
15008 VkDeviceEventTypeEXT deviceEvent;
15009} VkDeviceEventInfoEXT;
15010
15011typedef struct VkDisplayEventInfoEXT {
15012 VkStructureType sType;
15013 const void* pNext;
15014 VkDisplayEventTypeEXT displayEvent;
15015} VkDisplayEventInfoEXT;
15016
15017typedef struct VkSwapchainCounterCreateInfoEXT {
15018 VkStructureType sType;
15019 const void* pNext;
15020 VkSurfaceCounterFlagsEXT surfaceCounters;
15021} VkSwapchainCounterCreateInfoEXT;
15022
15023typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
15024typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
15025typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
15026typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
15027
15028#ifndef VK_NO_PROTOTYPES
15029#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15030VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
15031 VkDevice device,
15032 VkDisplayKHR display,
15033 const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
15034#endif
15035
15036#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15037VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
15038 VkDevice device,
15039 const VkDeviceEventInfoEXT* pDeviceEventInfo,
15040 const VkAllocationCallbacks* pAllocator,
15041 VkFence* pFence);
15042#endif
15043
15044#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15045VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
15046 VkDevice device,
15047 VkDisplayKHR display,
15048 const VkDisplayEventInfoEXT* pDisplayEventInfo,
15049 const VkAllocationCallbacks* pAllocator,
15050 VkFence* pFence);
15051#endif
15052
15053#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15054VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
15055 VkDevice device,
15056 VkSwapchainKHR swapchain,
15057 VkSurfaceCounterFlagBitsEXT counter,
15058 uint64_t* pCounterValue);
15059#endif
15060#endif
15061
15062
15063// VK_GOOGLE_display_timing is a preprocessor guard. Do not pass it to API calls.
15064#define VK_GOOGLE_display_timing 1
15065#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
15066#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
15067typedef struct VkRefreshCycleDurationGOOGLE {
15068 uint64_t refreshDuration;
15069} VkRefreshCycleDurationGOOGLE;
15070
15071typedef struct VkPastPresentationTimingGOOGLE {
15072 uint32_t presentID;
15073 uint64_t desiredPresentTime;
15074 uint64_t actualPresentTime;
15075 uint64_t earliestPresentTime;
15076 uint64_t presentMargin;
15077} VkPastPresentationTimingGOOGLE;
15078
15079typedef struct VkPresentTimeGOOGLE {
15080 uint32_t presentID;
15081 uint64_t desiredPresentTime;
15082} VkPresentTimeGOOGLE;
15083
15084typedef struct VkPresentTimesInfoGOOGLE {
15085 VkStructureType sType;
15086 const void* pNext;
15087 uint32_t swapchainCount;
15088 const VkPresentTimeGOOGLE* pTimes;
15089} VkPresentTimesInfoGOOGLE;
15090
15091typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
15092typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
15093
15094#ifndef VK_NO_PROTOTYPES
15095#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15096VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
15097 VkDevice device,
15098 VkSwapchainKHR swapchain,
15099 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
15100#endif
15101
15102#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15103VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
15104 VkDevice device,
15105 VkSwapchainKHR swapchain,
15106 uint32_t* pPresentationTimingCount,
15107 VkPastPresentationTimingGOOGLE* pPresentationTimings);
15108#endif
15109#endif
15110
15111
15112// VK_NV_sample_mask_override_coverage is a preprocessor guard. Do not pass it to API calls.
15113#define VK_NV_sample_mask_override_coverage 1
15114#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
15115#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
15116
15117
15118// VK_NV_geometry_shader_passthrough is a preprocessor guard. Do not pass it to API calls.
15119#define VK_NV_geometry_shader_passthrough 1
15120#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
15121#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
15122
15123
15124// VK_NV_viewport_array2 is a preprocessor guard. Do not pass it to API calls.
15125#define VK_NV_viewport_array2 1
15126#define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1
15127#define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
15128// VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION is a legacy alias
15129#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION
15130// VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME is a legacy alias
15131#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
15132
15133
15134// VK_NVX_multiview_per_view_attributes is a preprocessor guard. Do not pass it to API calls.
15135#define VK_NVX_multiview_per_view_attributes 1
15136#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
15137#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
15138typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
15139 VkStructureType sType;
15140 void* pNext;
15141 VkBool32 perViewPositionAllComponents;
15142} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
15143
15144typedef struct VkMultiviewPerViewAttributesInfoNVX {
15145 VkStructureType sType;
15146 const void* pNext;
15147 VkBool32 perViewAttributes;
15148 VkBool32 perViewAttributesPositionXOnly;
15149} VkMultiviewPerViewAttributesInfoNVX;
15150
15151
15152
15153// VK_NV_viewport_swizzle is a preprocessor guard. Do not pass it to API calls.
15154#define VK_NV_viewport_swizzle 1
15155#define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
15156#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
15157
15158typedef enum VkViewportCoordinateSwizzleNV {
15159 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
15160 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
15161 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
15162 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
15163 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
15164 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
15165 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
15166 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
15167 VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
15168} VkViewportCoordinateSwizzleNV;
15169typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
15170typedef struct VkViewportSwizzleNV {
15171 VkViewportCoordinateSwizzleNV x;
15172 VkViewportCoordinateSwizzleNV y;
15173 VkViewportCoordinateSwizzleNV z;
15174 VkViewportCoordinateSwizzleNV w;
15175} VkViewportSwizzleNV;
15176
15177typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
15178 VkStructureType sType;
15179 const void* pNext;
15180 VkPipelineViewportSwizzleStateCreateFlagsNV flags;
15181 uint32_t viewportCount;
15182 const VkViewportSwizzleNV* pViewportSwizzles;
15183} VkPipelineViewportSwizzleStateCreateInfoNV;
15184
15185
15186
15187// VK_EXT_discard_rectangles is a preprocessor guard. Do not pass it to API calls.
15188#define VK_EXT_discard_rectangles 1
15189#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 2
15190#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
15191
15192typedef enum VkDiscardRectangleModeEXT {
15193 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
15194 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
15195 VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
15196} VkDiscardRectangleModeEXT;
15197typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
15198typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
15199 VkStructureType sType;
15200 void* pNext;
15201 uint32_t maxDiscardRectangles;
15202} VkPhysicalDeviceDiscardRectanglePropertiesEXT;
15203
15204typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
15205 VkStructureType sType;
15206 const void* pNext;
15207 VkPipelineDiscardRectangleStateCreateFlagsEXT flags;
15208 VkDiscardRectangleModeEXT discardRectangleMode;
15209 uint32_t discardRectangleCount;
15210 const VkRect2D* pDiscardRectangles;
15211} VkPipelineDiscardRectangleStateCreateInfoEXT;
15212
15213typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
15214typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable);
15215typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode);
15216
15217#ifndef VK_NO_PROTOTYPES
15218#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15219VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
15220 VkCommandBuffer commandBuffer,
15221 uint32_t firstDiscardRectangle,
15222 uint32_t discardRectangleCount,
15223 const VkRect2D* pDiscardRectangles);
15224#endif
15225
15226#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15227VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEnableEXT(
15228 VkCommandBuffer commandBuffer,
15229 VkBool32 discardRectangleEnable);
15230#endif
15231
15232#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15233VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleModeEXT(
15234 VkCommandBuffer commandBuffer,
15235 VkDiscardRectangleModeEXT discardRectangleMode);
15236#endif
15237#endif
15238
15239
15240// VK_EXT_conservative_rasterization is a preprocessor guard. Do not pass it to API calls.
15241#define VK_EXT_conservative_rasterization 1
15242#define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
15243#define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
15244
15245typedef enum VkConservativeRasterizationModeEXT {
15246 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
15247 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
15248 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
15249 VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
15250} VkConservativeRasterizationModeEXT;
15251typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
15252typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
15253 VkStructureType sType;
15254 void* pNext;
15255 float primitiveOverestimationSize;
15256 float maxExtraPrimitiveOverestimationSize;
15257 float extraPrimitiveOverestimationSizeGranularity;
15258 VkBool32 primitiveUnderestimation;
15259 VkBool32 conservativePointAndLineRasterization;
15260 VkBool32 degenerateTrianglesRasterized;
15261 VkBool32 degenerateLinesRasterized;
15262 VkBool32 fullyCoveredFragmentShaderInputVariable;
15263 VkBool32 conservativeRasterizationPostDepthCoverage;
15264} VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
15265
15266typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
15267 VkStructureType sType;
15268 const void* pNext;
15269 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags;
15270 VkConservativeRasterizationModeEXT conservativeRasterizationMode;
15271 float extraPrimitiveOverestimationSize;
15272} VkPipelineRasterizationConservativeStateCreateInfoEXT;
15273
15274
15275
15276// VK_EXT_depth_clip_enable is a preprocessor guard. Do not pass it to API calls.
15277#define VK_EXT_depth_clip_enable 1
15278#define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
15279#define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
15280typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
15281typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
15282 VkStructureType sType;
15283 void* pNext;
15284 VkBool32 depthClipEnable;
15285} VkPhysicalDeviceDepthClipEnableFeaturesEXT;
15286
15287typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
15288 VkStructureType sType;
15289 const void* pNext;
15290 VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags;
15291 VkBool32 depthClipEnable;
15292} VkPipelineRasterizationDepthClipStateCreateInfoEXT;
15293
15294
15295
15296// VK_EXT_swapchain_colorspace is a preprocessor guard. Do not pass it to API calls.
15297#define VK_EXT_swapchain_colorspace 1
15298#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 5
15299#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
15300
15301
15302// VK_EXT_hdr_metadata is a preprocessor guard. Do not pass it to API calls.
15303#define VK_EXT_hdr_metadata 1
15304#define VK_EXT_HDR_METADATA_SPEC_VERSION 3
15305#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
15306typedef struct VkXYColorEXT {
15307 float x;
15308 float y;
15309} VkXYColorEXT;
15310
15311typedef struct VkHdrMetadataEXT {
15312 VkStructureType sType;
15313 const void* pNext;
15314 VkXYColorEXT displayPrimaryRed;
15315 VkXYColorEXT displayPrimaryGreen;
15316 VkXYColorEXT displayPrimaryBlue;
15317 VkXYColorEXT whitePoint;
15318 float maxLuminance;
15319 float minLuminance;
15320 float maxContentLightLevel;
15321 float maxFrameAverageLightLevel;
15322} VkHdrMetadataEXT;
15323
15324typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
15325
15326#ifndef VK_NO_PROTOTYPES
15327#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15328VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
15329 VkDevice device,
15330 uint32_t swapchainCount,
15331 const VkSwapchainKHR* pSwapchains,
15332 const VkHdrMetadataEXT* pMetadata);
15333#endif
15334#endif
15335
15336
15337// VK_IMG_relaxed_line_rasterization is a preprocessor guard. Do not pass it to API calls.
15338#define VK_IMG_relaxed_line_rasterization 1
15339#define VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION 1
15340#define VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME "VK_IMG_relaxed_line_rasterization"
15341typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
15342 VkStructureType sType;
15343 void* pNext;
15344 VkBool32 relaxedLineRasterization;
15345} VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
15346
15347
15348
15349// VK_EXT_external_memory_dma_buf is a preprocessor guard. Do not pass it to API calls.
15350#define VK_EXT_external_memory_dma_buf 1
15351#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
15352#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
15353
15354
15355// VK_EXT_queue_family_foreign is a preprocessor guard. Do not pass it to API calls.
15356#define VK_EXT_queue_family_foreign 1
15357#define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
15358#define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
15359#define VK_QUEUE_FAMILY_FOREIGN_EXT (~2U)
15360
15361
15362// VK_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
15363#define VK_EXT_debug_utils 1
15364VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
15365#define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2
15366#define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
15367typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
15368
15369typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
15370 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
15371 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
15372 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
15373 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
15374 VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15375} VkDebugUtilsMessageSeverityFlagBitsEXT;
15376
15377typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
15378 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
15379 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
15380 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
15381 VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0x00000008,
15382 VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15383} VkDebugUtilsMessageTypeFlagBitsEXT;
15384typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
15385typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
15386typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
15387typedef struct VkDebugUtilsLabelEXT {
15388 VkStructureType sType;
15389 const void* pNext;
15390 const char* pLabelName;
15391 float color[4];
15392} VkDebugUtilsLabelEXT;
15393
15394typedef struct VkDebugUtilsObjectNameInfoEXT {
15395 VkStructureType sType;
15396 const void* pNext;
15397 VkObjectType objectType;
15398 uint64_t objectHandle;
15399 const char* pObjectName;
15400} VkDebugUtilsObjectNameInfoEXT;
15401
15402typedef struct VkDebugUtilsMessengerCallbackDataEXT {
15403 VkStructureType sType;
15404 const void* pNext;
15405 VkDebugUtilsMessengerCallbackDataFlagsEXT flags;
15406 const char* pMessageIdName;
15407 int32_t messageIdNumber;
15408 const char* pMessage;
15409 uint32_t queueLabelCount;
15410 const VkDebugUtilsLabelEXT* pQueueLabels;
15411 uint32_t cmdBufLabelCount;
15412 const VkDebugUtilsLabelEXT* pCmdBufLabels;
15413 uint32_t objectCount;
15414 const VkDebugUtilsObjectNameInfoEXT* pObjects;
15415} VkDebugUtilsMessengerCallbackDataEXT;
15416
15417typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
15418 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
15419 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
15420 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
15421 void* pUserData);
15422
15423typedef struct VkDebugUtilsMessengerCreateInfoEXT {
15424 VkStructureType sType;
15425 const void* pNext;
15426 VkDebugUtilsMessengerCreateFlagsEXT flags;
15427 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity;
15428 VkDebugUtilsMessageTypeFlagsEXT messageType;
15429 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
15430 void* pUserData;
15431} VkDebugUtilsMessengerCreateInfoEXT;
15432
15433typedef struct VkDebugUtilsObjectTagInfoEXT {
15434 VkStructureType sType;
15435 const void* pNext;
15436 VkObjectType objectType;
15437 uint64_t objectHandle;
15438 uint64_t tagName;
15439 size_t tagSize;
15440 const void* pTag;
15441} VkDebugUtilsObjectTagInfoEXT;
15442
15443typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
15444typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
15445typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
15446typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
15447typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
15448typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
15449typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
15450typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
15451typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
15452typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
15453typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
15454
15455#ifndef VK_NO_PROTOTYPES
15456#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15457VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
15458 VkDevice device,
15459 const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
15460#endif
15461
15462#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15463VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
15464 VkDevice device,
15465 const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
15466#endif
15467
15468#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15469VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
15470 VkQueue queue,
15471 const VkDebugUtilsLabelEXT* pLabelInfo);
15472#endif
15473
15474#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15475VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
15476 VkQueue queue);
15477#endif
15478
15479#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15480VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
15481 VkQueue queue,
15482 const VkDebugUtilsLabelEXT* pLabelInfo);
15483#endif
15484
15485#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15486VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
15487 VkCommandBuffer commandBuffer,
15488 const VkDebugUtilsLabelEXT* pLabelInfo);
15489#endif
15490
15491#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15492VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
15493 VkCommandBuffer commandBuffer);
15494#endif
15495
15496#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15497VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
15498 VkCommandBuffer commandBuffer,
15499 const VkDebugUtilsLabelEXT* pLabelInfo);
15500#endif
15501
15502#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15503VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
15504 VkInstance instance,
15505 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
15506 const VkAllocationCallbacks* pAllocator,
15507 VkDebugUtilsMessengerEXT* pMessenger);
15508#endif
15509
15510#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15511VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
15512 VkInstance instance,
15513 VkDebugUtilsMessengerEXT messenger,
15514 const VkAllocationCallbacks* pAllocator);
15515#endif
15516
15517#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15518VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
15519 VkInstance instance,
15520 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
15521 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
15522 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
15523#endif
15524#endif
15525
15526
15527// VK_EXT_sampler_filter_minmax is a preprocessor guard. Do not pass it to API calls.
15528#define VK_EXT_sampler_filter_minmax 1
15529#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
15530#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
15531typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
15532
15533typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
15534
15535typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
15536
15537
15538
15539// VK_AMD_gpu_shader_int16 is a preprocessor guard. Do not pass it to API calls.
15540#define VK_AMD_gpu_shader_int16 1
15541#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
15542#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
15543
15544
15545// VK_EXT_descriptor_heap is a preprocessor guard. Do not pass it to API calls.
15546#define VK_EXT_descriptor_heap 1
15547VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorARM)
15548#define VK_EXT_DESCRIPTOR_HEAP_SPEC_VERSION 1
15549#define VK_EXT_DESCRIPTOR_HEAP_EXTENSION_NAME "VK_EXT_descriptor_heap"
15550
15551typedef enum VkDescriptorMappingSourceEXT {
15552 VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT = 0,
15553 VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT = 1,
15554 VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT = 2,
15555 VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT = 3,
15556 VK_DESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT = 4,
15557 VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT = 5,
15558 VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT = 6,
15559 VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT = 7,
15560 VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT = 8,
15561 VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT = 9,
15562 VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT = 10,
15563 VK_DESCRIPTOR_MAPPING_SOURCE_MAX_ENUM_EXT = 0x7FFFFFFF
15564} VkDescriptorMappingSourceEXT;
15565typedef VkFlags64 VkTensorViewCreateFlagsARM;
15566
15567// Flag bits for VkTensorViewCreateFlagBitsARM
15568typedef VkFlags64 VkTensorViewCreateFlagBitsARM;
15569static const VkTensorViewCreateFlagBitsARM VK_TENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM = 0x00000001ULL;
15570
15571
15572typedef enum VkSpirvResourceTypeFlagBitsEXT {
15573 VK_SPIRV_RESOURCE_TYPE_ALL_EXT = 0x7FFFFFFF,
15574 VK_SPIRV_RESOURCE_TYPE_SAMPLER_BIT_EXT = 0x00000001,
15575 VK_SPIRV_RESOURCE_TYPE_SAMPLED_IMAGE_BIT_EXT = 0x00000002,
15576 VK_SPIRV_RESOURCE_TYPE_READ_ONLY_IMAGE_BIT_EXT = 0x00000004,
15577 VK_SPIRV_RESOURCE_TYPE_READ_WRITE_IMAGE_BIT_EXT = 0x00000008,
15578 VK_SPIRV_RESOURCE_TYPE_COMBINED_SAMPLED_IMAGE_BIT_EXT = 0x00000010,
15579 VK_SPIRV_RESOURCE_TYPE_UNIFORM_BUFFER_BIT_EXT = 0x00000020,
15580 VK_SPIRV_RESOURCE_TYPE_READ_ONLY_STORAGE_BUFFER_BIT_EXT = 0x00000040,
15581 VK_SPIRV_RESOURCE_TYPE_READ_WRITE_STORAGE_BUFFER_BIT_EXT = 0x00000080,
15582 VK_SPIRV_RESOURCE_TYPE_ACCELERATION_STRUCTURE_BIT_EXT = 0x00000100,
15583 VK_SPIRV_RESOURCE_TYPE_TENSOR_BIT_ARM = 0x00000200,
15584 VK_SPIRV_RESOURCE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15585} VkSpirvResourceTypeFlagBitsEXT;
15586typedef VkFlags VkSpirvResourceTypeFlagsEXT;
15587typedef struct VkHostAddressRangeEXT {
15588 void* address;
15589 size_t size;
15590} VkHostAddressRangeEXT;
15591
15592typedef struct VkHostAddressRangeConstEXT {
15593 const void* address;
15594 size_t size;
15595} VkHostAddressRangeConstEXT;
15596
15597typedef struct VkDeviceAddressRangeEXT {
15598 VkDeviceAddress address;
15599 VkDeviceSize size;
15600} VkDeviceAddressRangeEXT;
15601
15602typedef struct VkTexelBufferDescriptorInfoEXT {
15603 VkStructureType sType;
15604 const void* pNext;
15605 VkFormat format;
15606 VkDeviceAddressRangeEXT addressRange;
15607} VkTexelBufferDescriptorInfoEXT;
15608
15609typedef struct VkImageDescriptorInfoEXT {
15610 VkStructureType sType;
15611 const void* pNext;
15612 const VkImageViewCreateInfo* pView;
15613 VkImageLayout layout;
15614} VkImageDescriptorInfoEXT;
15615
15616typedef struct VkTensorViewCreateInfoARM {
15617 VkStructureType sType;
15618 const void* pNext;
15619 VkTensorViewCreateFlagsARM flags;
15620 VkTensorARM tensor;
15621 VkFormat format;
15622} VkTensorViewCreateInfoARM;
15623
15624typedef union VkResourceDescriptorDataEXT {
15625 const VkImageDescriptorInfoEXT* pImage;
15626 const VkTexelBufferDescriptorInfoEXT* pTexelBuffer;
15627 const VkDeviceAddressRangeEXT* pAddressRange;
15628 const VkTensorViewCreateInfoARM* pTensorARM;
15629} VkResourceDescriptorDataEXT;
15630
15631typedef struct VkResourceDescriptorInfoEXT {
15632 VkStructureType sType;
15633 const void* pNext;
15634 VkDescriptorType type;
15635 VkResourceDescriptorDataEXT data;
15636} VkResourceDescriptorInfoEXT;
15637
15638typedef struct VkBindHeapInfoEXT {
15639 VkStructureType sType;
15640 const void* pNext;
15641 VkDeviceAddressRangeEXT heapRange;
15642 VkDeviceSize reservedRangeOffset;
15643 VkDeviceSize reservedRangeSize;
15644} VkBindHeapInfoEXT;
15645
15646typedef struct VkPushDataInfoEXT {
15647 VkStructureType sType;
15648 const void* pNext;
15649 uint32_t offset;
15650 VkHostAddressRangeConstEXT data;
15651} VkPushDataInfoEXT;
15652
15653typedef struct VkDescriptorMappingSourceConstantOffsetEXT {
15654 uint32_t heapOffset;
15655 uint32_t heapArrayStride;
15656 const VkSamplerCreateInfo* pEmbeddedSampler;
15657 uint32_t samplerHeapOffset;
15658 uint32_t samplerHeapArrayStride;
15659} VkDescriptorMappingSourceConstantOffsetEXT;
15660
15661typedef struct VkDescriptorMappingSourcePushIndexEXT {
15662 uint32_t heapOffset;
15663 uint32_t pushOffset;
15664 uint32_t heapIndexStride;
15665 uint32_t heapArrayStride;
15666 const VkSamplerCreateInfo* pEmbeddedSampler;
15667 VkBool32 useCombinedImageSamplerIndex;
15668 uint32_t samplerHeapOffset;
15669 uint32_t samplerPushOffset;
15670 uint32_t samplerHeapIndexStride;
15671 uint32_t samplerHeapArrayStride;
15672} VkDescriptorMappingSourcePushIndexEXT;
15673
15674typedef struct VkDescriptorMappingSourceIndirectIndexEXT {
15675 uint32_t heapOffset;
15676 uint32_t pushOffset;
15677 uint32_t addressOffset;
15678 uint32_t heapIndexStride;
15679 uint32_t heapArrayStride;
15680 const VkSamplerCreateInfo* pEmbeddedSampler;
15681 VkBool32 useCombinedImageSamplerIndex;
15682 uint32_t samplerHeapOffset;
15683 uint32_t samplerPushOffset;
15684 uint32_t samplerAddressOffset;
15685 uint32_t samplerHeapIndexStride;
15686 uint32_t samplerHeapArrayStride;
15687} VkDescriptorMappingSourceIndirectIndexEXT;
15688
15689typedef struct VkDescriptorMappingSourceHeapDataEXT {
15690 uint32_t heapOffset;
15691 uint32_t pushOffset;
15692} VkDescriptorMappingSourceHeapDataEXT;
15693
15694typedef struct VkDescriptorMappingSourceIndirectAddressEXT {
15695 uint32_t pushOffset;
15696 uint32_t addressOffset;
15697} VkDescriptorMappingSourceIndirectAddressEXT;
15698
15699typedef struct VkDescriptorMappingSourceShaderRecordIndexEXT {
15700 uint32_t heapOffset;
15701 uint32_t shaderRecordOffset;
15702 uint32_t heapIndexStride;
15703 uint32_t heapArrayStride;
15704 const VkSamplerCreateInfo* pEmbeddedSampler;
15705 VkBool32 useCombinedImageSamplerIndex;
15706 uint32_t samplerHeapOffset;
15707 uint32_t samplerShaderRecordOffset;
15708 uint32_t samplerHeapIndexStride;
15709 uint32_t samplerHeapArrayStride;
15710} VkDescriptorMappingSourceShaderRecordIndexEXT;
15711
15712typedef struct VkDescriptorMappingSourceIndirectIndexArrayEXT {
15713 uint32_t heapOffset;
15714 uint32_t pushOffset;
15715 uint32_t addressOffset;
15716 uint32_t heapIndexStride;
15717 const VkSamplerCreateInfo* pEmbeddedSampler;
15718 VkBool32 useCombinedImageSamplerIndex;
15719 uint32_t samplerHeapOffset;
15720 uint32_t samplerPushOffset;
15721 uint32_t samplerAddressOffset;
15722 uint32_t samplerHeapIndexStride;
15723} VkDescriptorMappingSourceIndirectIndexArrayEXT;
15724
15725typedef union VkDescriptorMappingSourceDataEXT {
15726 VkDescriptorMappingSourceConstantOffsetEXT constantOffset;
15727 VkDescriptorMappingSourcePushIndexEXT pushIndex;
15728 VkDescriptorMappingSourceIndirectIndexEXT indirectIndex;
15729 VkDescriptorMappingSourceIndirectIndexArrayEXT indirectIndexArray;
15730 VkDescriptorMappingSourceHeapDataEXT heapData;
15731 uint32_t pushDataOffset;
15732 uint32_t pushAddressOffset;
15733 VkDescriptorMappingSourceIndirectAddressEXT indirectAddress;
15734 VkDescriptorMappingSourceShaderRecordIndexEXT shaderRecordIndex;
15735 uint32_t shaderRecordDataOffset;
15736 uint32_t shaderRecordAddressOffset;
15737} VkDescriptorMappingSourceDataEXT;
15738
15739typedef struct VkDescriptorSetAndBindingMappingEXT {
15740 VkStructureType sType;
15741 const void* pNext;
15742 uint32_t descriptorSet;
15743 uint32_t firstBinding;
15744 uint32_t bindingCount;
15745 VkSpirvResourceTypeFlagsEXT resourceMask;
15746 VkDescriptorMappingSourceEXT source;
15747 VkDescriptorMappingSourceDataEXT sourceData;
15748} VkDescriptorSetAndBindingMappingEXT;
15749
15750typedef struct VkShaderDescriptorSetAndBindingMappingInfoEXT {
15751 VkStructureType sType;
15752 const void* pNext;
15753 uint32_t mappingCount;
15754 const VkDescriptorSetAndBindingMappingEXT* pMappings;
15755} VkShaderDescriptorSetAndBindingMappingInfoEXT;
15756
15757typedef struct VkOpaqueCaptureDataCreateInfoEXT {
15758 VkStructureType sType;
15759 const void* pNext;
15760 const VkHostAddressRangeConstEXT* pData;
15761} VkOpaqueCaptureDataCreateInfoEXT;
15762
15763typedef struct VkPhysicalDeviceDescriptorHeapFeaturesEXT {
15764 VkStructureType sType;
15765 void* pNext;
15766 VkBool32 descriptorHeap;
15767 VkBool32 descriptorHeapCaptureReplay;
15768} VkPhysicalDeviceDescriptorHeapFeaturesEXT;
15769
15770typedef struct VkPhysicalDeviceDescriptorHeapPropertiesEXT {
15771 VkStructureType sType;
15772 void* pNext;
15773 VkDeviceSize samplerHeapAlignment;
15774 VkDeviceSize resourceHeapAlignment;
15775 VkDeviceSize maxSamplerHeapSize;
15776 VkDeviceSize maxResourceHeapSize;
15777 VkDeviceSize minSamplerHeapReservedRange;
15778 VkDeviceSize minSamplerHeapReservedRangeWithEmbedded;
15779 VkDeviceSize minResourceHeapReservedRange;
15780 VkDeviceSize samplerDescriptorSize;
15781 VkDeviceSize imageDescriptorSize;
15782 VkDeviceSize bufferDescriptorSize;
15783 VkDeviceSize samplerDescriptorAlignment;
15784 VkDeviceSize imageDescriptorAlignment;
15785 VkDeviceSize bufferDescriptorAlignment;
15786 VkDeviceSize maxPushDataSize;
15787 size_t imageCaptureReplayOpaqueDataSize;
15788 uint32_t maxDescriptorHeapEmbeddedSamplers;
15789 uint32_t samplerYcbcrConversionCount;
15790 VkBool32 sparseDescriptorHeaps;
15791 VkBool32 protectedDescriptorHeaps;
15792} VkPhysicalDeviceDescriptorHeapPropertiesEXT;
15793
15794typedef struct VkCommandBufferInheritanceDescriptorHeapInfoEXT {
15795 VkStructureType sType;
15796 const void* pNext;
15797 const VkBindHeapInfoEXT* pSamplerHeapBindInfo;
15798 const VkBindHeapInfoEXT* pResourceHeapBindInfo;
15799} VkCommandBufferInheritanceDescriptorHeapInfoEXT;
15800
15801typedef struct VkSamplerCustomBorderColorIndexCreateInfoEXT {
15802 VkStructureType sType;
15803 const void* pNext;
15804 uint32_t index;
15805} VkSamplerCustomBorderColorIndexCreateInfoEXT;
15806
15807typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
15808 VkStructureType sType;
15809 const void* pNext;
15810 VkClearColorValue customBorderColor;
15811 VkFormat format;
15812} VkSamplerCustomBorderColorCreateInfoEXT;
15813
15814typedef struct VkIndirectCommandsLayoutPushDataTokenNV {
15815 VkStructureType sType;
15816 const void* pNext;
15817 uint32_t pushDataOffset;
15818 uint32_t pushDataSize;
15819} VkIndirectCommandsLayoutPushDataTokenNV;
15820
15821typedef struct VkSubsampledImageFormatPropertiesEXT {
15822 VkStructureType sType;
15823 const void* pNext;
15824 uint32_t subsampledImageDescriptorCount;
15825} VkSubsampledImageFormatPropertiesEXT;
15826
15827typedef struct VkPhysicalDeviceDescriptorHeapTensorPropertiesARM {
15828 VkStructureType sType;
15829 void* pNext;
15830 VkDeviceSize tensorDescriptorSize;
15831 VkDeviceSize tensorDescriptorAlignment;
15832 size_t tensorCaptureReplayOpaqueDataSize;
15833} VkPhysicalDeviceDescriptorHeapTensorPropertiesARM;
15834
15835typedef VkResult (VKAPI_PTR *PFN_vkWriteSamplerDescriptorsEXT)(VkDevice device, uint32_t samplerCount, const VkSamplerCreateInfo* pSamplers, const VkHostAddressRangeEXT* pDescriptors);
15836typedef VkResult (VKAPI_PTR *PFN_vkWriteResourceDescriptorsEXT)(VkDevice device, uint32_t resourceCount, const VkResourceDescriptorInfoEXT* pResources, const VkHostAddressRangeEXT* pDescriptors);
15837typedef void (VKAPI_PTR *PFN_vkCmdBindSamplerHeapEXT)(VkCommandBuffer commandBuffer, const VkBindHeapInfoEXT* pBindInfo);
15838typedef void (VKAPI_PTR *PFN_vkCmdBindResourceHeapEXT)(VkCommandBuffer commandBuffer, const VkBindHeapInfoEXT* pBindInfo);
15839typedef void (VKAPI_PTR *PFN_vkCmdPushDataEXT)(VkCommandBuffer commandBuffer, const VkPushDataInfoEXT* pPushDataInfo);
15840typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDataEXT)(VkDevice device, uint32_t imageCount, const VkImage* pImages, VkHostAddressRangeEXT* pDatas);
15841typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetPhysicalDeviceDescriptorSizeEXT)(VkPhysicalDevice physicalDevice, VkDescriptorType descriptorType);
15842typedef VkResult (VKAPI_PTR *PFN_vkRegisterCustomBorderColorEXT)(VkDevice device, const VkSamplerCustomBorderColorCreateInfoEXT* pBorderColor, VkBool32 requestIndex, uint32_t* pIndex);
15843typedef void (VKAPI_PTR *PFN_vkUnregisterCustomBorderColorEXT)(VkDevice device, uint32_t index);
15844typedef VkResult (VKAPI_PTR *PFN_vkGetTensorOpaqueCaptureDataARM)(VkDevice device, uint32_t tensorCount, const VkTensorARM* pTensors, VkHostAddressRangeEXT* pDatas);
15845
15846#ifndef VK_NO_PROTOTYPES
15847#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15848VKAPI_ATTR VkResult VKAPI_CALL vkWriteSamplerDescriptorsEXT(
15849 VkDevice device,
15850 uint32_t samplerCount,
15851 const VkSamplerCreateInfo* pSamplers,
15852 const VkHostAddressRangeEXT* pDescriptors);
15853#endif
15854
15855#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15856VKAPI_ATTR VkResult VKAPI_CALL vkWriteResourceDescriptorsEXT(
15857 VkDevice device,
15858 uint32_t resourceCount,
15859 const VkResourceDescriptorInfoEXT* pResources,
15860 const VkHostAddressRangeEXT* pDescriptors);
15861#endif
15862
15863#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15864VKAPI_ATTR void VKAPI_CALL vkCmdBindSamplerHeapEXT(
15865 VkCommandBuffer commandBuffer,
15866 const VkBindHeapInfoEXT* pBindInfo);
15867#endif
15868
15869#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15870VKAPI_ATTR void VKAPI_CALL vkCmdBindResourceHeapEXT(
15871 VkCommandBuffer commandBuffer,
15872 const VkBindHeapInfoEXT* pBindInfo);
15873#endif
15874
15875#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15876VKAPI_ATTR void VKAPI_CALL vkCmdPushDataEXT(
15877 VkCommandBuffer commandBuffer,
15878 const VkPushDataInfoEXT* pPushDataInfo);
15879#endif
15880
15881#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15882VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDataEXT(
15883 VkDevice device,
15884 uint32_t imageCount,
15885 const VkImage* pImages,
15886 VkHostAddressRangeEXT* pDatas);
15887#endif
15888
15889#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15890VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetPhysicalDeviceDescriptorSizeEXT(
15891 VkPhysicalDevice physicalDevice,
15892 VkDescriptorType descriptorType);
15893#endif
15894
15895#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15896VKAPI_ATTR VkResult VKAPI_CALL vkRegisterCustomBorderColorEXT(
15897 VkDevice device,
15898 const VkSamplerCustomBorderColorCreateInfoEXT* pBorderColor,
15899 VkBool32 requestIndex,
15900 uint32_t* pIndex);
15901#endif
15902
15903#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15904VKAPI_ATTR void VKAPI_CALL vkUnregisterCustomBorderColorEXT(
15905 VkDevice device,
15906 uint32_t index);
15907#endif
15908
15909#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15910VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorOpaqueCaptureDataARM(
15911 VkDevice device,
15912 uint32_t tensorCount,
15913 const VkTensorARM* pTensors,
15914 VkHostAddressRangeEXT* pDatas);
15915#endif
15916#endif
15917
15918
15919// VK_AMD_mixed_attachment_samples is a preprocessor guard. Do not pass it to API calls.
15920#define VK_AMD_mixed_attachment_samples 1
15921#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
15922#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
15923typedef struct VkAttachmentSampleCountInfoAMD {
15924 VkStructureType sType;
15925 const void* pNext;
15926 uint32_t colorAttachmentCount;
15927 const VkSampleCountFlagBits* pColorAttachmentSamples;
15928 VkSampleCountFlagBits depthStencilAttachmentSamples;
15929} VkAttachmentSampleCountInfoAMD;
15930
15931
15932
15933// VK_AMD_shader_fragment_mask is a preprocessor guard. Do not pass it to API calls.
15934#define VK_AMD_shader_fragment_mask 1
15935#define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
15936#define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
15937
15938
15939// VK_EXT_inline_uniform_block is a preprocessor guard. Do not pass it to API calls.
15940#define VK_EXT_inline_uniform_block 1
15941#define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
15942#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
15943typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
15944
15945typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
15946
15947typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
15948
15949typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
15950
15951
15952
15953// VK_EXT_shader_stencil_export is a preprocessor guard. Do not pass it to API calls.
15954#define VK_EXT_shader_stencil_export 1
15955#define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
15956#define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
15957
15958
15959// VK_EXT_sample_locations is a preprocessor guard. Do not pass it to API calls.
15960#define VK_EXT_sample_locations 1
15961#define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
15962#define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
15963typedef struct VkSampleLocationEXT {
15964 float x;
15965 float y;
15966} VkSampleLocationEXT;
15967
15968typedef struct VkSampleLocationsInfoEXT {
15969 VkStructureType sType;
15970 const void* pNext;
15971 VkSampleCountFlagBits sampleLocationsPerPixel;
15972 VkExtent2D sampleLocationGridSize;
15973 uint32_t sampleLocationsCount;
15974 const VkSampleLocationEXT* pSampleLocations;
15975} VkSampleLocationsInfoEXT;
15976
15977typedef struct VkAttachmentSampleLocationsEXT {
15978 uint32_t attachmentIndex;
15979 VkSampleLocationsInfoEXT sampleLocationsInfo;
15980} VkAttachmentSampleLocationsEXT;
15981
15982typedef struct VkSubpassSampleLocationsEXT {
15983 uint32_t subpassIndex;
15984 VkSampleLocationsInfoEXT sampleLocationsInfo;
15985} VkSubpassSampleLocationsEXT;
15986
15987typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
15988 VkStructureType sType;
15989 const void* pNext;
15990 uint32_t attachmentInitialSampleLocationsCount;
15991 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
15992 uint32_t postSubpassSampleLocationsCount;
15993 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations;
15994} VkRenderPassSampleLocationsBeginInfoEXT;
15995
15996typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
15997 VkStructureType sType;
15998 const void* pNext;
15999 VkBool32 sampleLocationsEnable;
16000 VkSampleLocationsInfoEXT sampleLocationsInfo;
16001} VkPipelineSampleLocationsStateCreateInfoEXT;
16002
16003typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
16004 VkStructureType sType;
16005 void* pNext;
16006 VkSampleCountFlags sampleLocationSampleCounts;
16007 VkExtent2D maxSampleLocationGridSize;
16008 float sampleLocationCoordinateRange[2];
16009 uint32_t sampleLocationSubPixelBits;
16010 VkBool32 variableSampleLocations;
16011} VkPhysicalDeviceSampleLocationsPropertiesEXT;
16012
16013typedef struct VkMultisamplePropertiesEXT {
16014 VkStructureType sType;
16015 void* pNext;
16016 VkExtent2D maxSampleLocationGridSize;
16017} VkMultisamplePropertiesEXT;
16018
16019typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
16020typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
16021
16022#ifndef VK_NO_PROTOTYPES
16023#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16024VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
16025 VkCommandBuffer commandBuffer,
16026 const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
16027#endif
16028
16029#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16030VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
16031 VkPhysicalDevice physicalDevice,
16032 VkSampleCountFlagBits samples,
16033 VkMultisamplePropertiesEXT* pMultisampleProperties);
16034#endif
16035#endif
16036
16037
16038// VK_EXT_blend_operation_advanced is a preprocessor guard. Do not pass it to API calls.
16039#define VK_EXT_blend_operation_advanced 1
16040#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
16041#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
16042
16043typedef enum VkBlendOverlapEXT {
16044 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
16045 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
16046 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
16047 VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
16048} VkBlendOverlapEXT;
16049typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
16050 VkStructureType sType;
16051 void* pNext;
16052 VkBool32 advancedBlendCoherentOperations;
16053} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
16054
16055typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
16056 VkStructureType sType;
16057 void* pNext;
16058 uint32_t advancedBlendMaxColorAttachments;
16059 VkBool32 advancedBlendIndependentBlend;
16060 VkBool32 advancedBlendNonPremultipliedSrcColor;
16061 VkBool32 advancedBlendNonPremultipliedDstColor;
16062 VkBool32 advancedBlendCorrelatedOverlap;
16063 VkBool32 advancedBlendAllOperations;
16064} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
16065
16066typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
16067 VkStructureType sType;
16068 const void* pNext;
16069 VkBool32 srcPremultiplied;
16070 VkBool32 dstPremultiplied;
16071 VkBlendOverlapEXT blendOverlap;
16072} VkPipelineColorBlendAdvancedStateCreateInfoEXT;
16073
16074
16075
16076// VK_NV_fragment_coverage_to_color is a preprocessor guard. Do not pass it to API calls.
16077#define VK_NV_fragment_coverage_to_color 1
16078#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
16079#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
16080typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
16081typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
16082 VkStructureType sType;
16083 const void* pNext;
16084 VkPipelineCoverageToColorStateCreateFlagsNV flags;
16085 VkBool32 coverageToColorEnable;
16086 uint32_t coverageToColorLocation;
16087} VkPipelineCoverageToColorStateCreateInfoNV;
16088
16089
16090
16091// VK_NV_framebuffer_mixed_samples is a preprocessor guard. Do not pass it to API calls.
16092#define VK_NV_framebuffer_mixed_samples 1
16093#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
16094#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
16095
16096typedef enum VkCoverageModulationModeNV {
16097 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
16098 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
16099 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
16100 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
16101 VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
16102} VkCoverageModulationModeNV;
16103typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
16104typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
16105 VkStructureType sType;
16106 const void* pNext;
16107 VkPipelineCoverageModulationStateCreateFlagsNV flags;
16108 VkCoverageModulationModeNV coverageModulationMode;
16109 VkBool32 coverageModulationTableEnable;
16110 uint32_t coverageModulationTableCount;
16111 const float* pCoverageModulationTable;
16112} VkPipelineCoverageModulationStateCreateInfoNV;
16113
16114typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
16115
16116
16117
16118// VK_NV_fill_rectangle is a preprocessor guard. Do not pass it to API calls.
16119#define VK_NV_fill_rectangle 1
16120#define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
16121#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
16122
16123
16124// VK_NV_shader_sm_builtins is a preprocessor guard. Do not pass it to API calls.
16125#define VK_NV_shader_sm_builtins 1
16126#define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
16127#define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
16128typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
16129 VkStructureType sType;
16130 void* pNext;
16131 uint32_t shaderSMCount;
16132 uint32_t shaderWarpsPerSM;
16133} VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
16134
16135typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
16136 VkStructureType sType;
16137 void* pNext;
16138 VkBool32 shaderSMBuiltins;
16139} VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
16140
16141
16142
16143// VK_EXT_post_depth_coverage is a preprocessor guard. Do not pass it to API calls.
16144#define VK_EXT_post_depth_coverage 1
16145#define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
16146#define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
16147
16148
16149// VK_EXT_image_drm_format_modifier is a preprocessor guard. Do not pass it to API calls.
16150#define VK_EXT_image_drm_format_modifier 1
16151#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
16152#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
16153typedef struct VkDrmFormatModifierPropertiesEXT {
16154 uint64_t drmFormatModifier;
16155 uint32_t drmFormatModifierPlaneCount;
16156 VkFormatFeatureFlags drmFormatModifierTilingFeatures;
16157} VkDrmFormatModifierPropertiesEXT;
16158
16159typedef struct VkDrmFormatModifierPropertiesListEXT {
16160 VkStructureType sType;
16161 void* pNext;
16162 uint32_t drmFormatModifierCount;
16163 VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties;
16164} VkDrmFormatModifierPropertiesListEXT;
16165
16166typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
16167 VkStructureType sType;
16168 const void* pNext;
16169 uint64_t drmFormatModifier;
16170 VkSharingMode sharingMode;
16171 uint32_t queueFamilyIndexCount;
16172 const uint32_t* pQueueFamilyIndices;
16173} VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
16174
16175typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
16176 VkStructureType sType;
16177 const void* pNext;
16178 uint32_t drmFormatModifierCount;
16179 const uint64_t* pDrmFormatModifiers;
16180} VkImageDrmFormatModifierListCreateInfoEXT;
16181
16182typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
16183 VkStructureType sType;
16184 const void* pNext;
16185 uint64_t drmFormatModifier;
16186 uint32_t drmFormatModifierPlaneCount;
16187 const VkSubresourceLayout* pPlaneLayouts;
16188} VkImageDrmFormatModifierExplicitCreateInfoEXT;
16189
16190typedef struct VkImageDrmFormatModifierPropertiesEXT {
16191 VkStructureType sType;
16192 void* pNext;
16193 uint64_t drmFormatModifier;
16194} VkImageDrmFormatModifierPropertiesEXT;
16195
16196typedef struct VkDrmFormatModifierProperties2EXT {
16197 uint64_t drmFormatModifier;
16198 uint32_t drmFormatModifierPlaneCount;
16199 VkFormatFeatureFlags2 drmFormatModifierTilingFeatures;
16200} VkDrmFormatModifierProperties2EXT;
16201
16202typedef struct VkDrmFormatModifierPropertiesList2EXT {
16203 VkStructureType sType;
16204 void* pNext;
16205 uint32_t drmFormatModifierCount;
16206 VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties;
16207} VkDrmFormatModifierPropertiesList2EXT;
16208
16209typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
16210
16211#ifndef VK_NO_PROTOTYPES
16212#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16213VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
16214 VkDevice device,
16215 VkImage image,
16216 VkImageDrmFormatModifierPropertiesEXT* pProperties);
16217#endif
16218#endif
16219
16220
16221// VK_EXT_validation_cache is a preprocessor guard. Do not pass it to API calls.
16222#define VK_EXT_validation_cache 1
16223VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
16224#define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
16225#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
16226
16227typedef enum VkValidationCacheHeaderVersionEXT {
16228 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
16229 VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
16230} VkValidationCacheHeaderVersionEXT;
16231typedef VkFlags VkValidationCacheCreateFlagsEXT;
16232typedef struct VkValidationCacheCreateInfoEXT {
16233 VkStructureType sType;
16234 const void* pNext;
16235 VkValidationCacheCreateFlagsEXT flags;
16236 size_t initialDataSize;
16237 const void* pInitialData;
16238} VkValidationCacheCreateInfoEXT;
16239
16240typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
16241 VkStructureType sType;
16242 const void* pNext;
16243 VkValidationCacheEXT validationCache;
16244} VkShaderModuleValidationCacheCreateInfoEXT;
16245
16246typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
16247typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
16248typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
16249typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
16250
16251#ifndef VK_NO_PROTOTYPES
16252#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16253VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
16254 VkDevice device,
16255 const VkValidationCacheCreateInfoEXT* pCreateInfo,
16256 const VkAllocationCallbacks* pAllocator,
16257 VkValidationCacheEXT* pValidationCache);
16258#endif
16259
16260#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16261VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
16262 VkDevice device,
16263 VkValidationCacheEXT validationCache,
16264 const VkAllocationCallbacks* pAllocator);
16265#endif
16266
16267#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16268VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
16269 VkDevice device,
16270 VkValidationCacheEXT dstCache,
16271 uint32_t srcCacheCount,
16272 const VkValidationCacheEXT* pSrcCaches);
16273#endif
16274
16275#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16276VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
16277 VkDevice device,
16278 VkValidationCacheEXT validationCache,
16279 size_t* pDataSize,
16280 void* pData);
16281#endif
16282#endif
16283
16284
16285// VK_EXT_descriptor_indexing is a preprocessor guard. Do not pass it to API calls.
16286#define VK_EXT_descriptor_indexing 1
16287#define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
16288#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
16289typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
16290
16291typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
16292
16293typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
16294
16295typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
16296
16297typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
16298
16299typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
16300
16301typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
16302
16303
16304
16305// VK_EXT_shader_viewport_index_layer is a preprocessor guard. Do not pass it to API calls.
16306#define VK_EXT_shader_viewport_index_layer 1
16307#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
16308#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
16309
16310
16311// VK_NV_shading_rate_image is a preprocessor guard. Do not pass it to API calls.
16312#define VK_NV_shading_rate_image 1
16313#define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
16314#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
16315
16316typedef enum VkShadingRatePaletteEntryNV {
16317 VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
16318 VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
16319 VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
16320 VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
16321 VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
16322 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
16323 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
16324 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
16325 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
16326 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
16327 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
16328 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
16329 VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
16330} VkShadingRatePaletteEntryNV;
16331
16332typedef enum VkCoarseSampleOrderTypeNV {
16333 VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
16334 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
16335 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
16336 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
16337 VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
16338} VkCoarseSampleOrderTypeNV;
16339typedef struct VkShadingRatePaletteNV {
16340 uint32_t shadingRatePaletteEntryCount;
16341 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries;
16342} VkShadingRatePaletteNV;
16343
16344typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
16345 VkStructureType sType;
16346 const void* pNext;
16347 VkBool32 shadingRateImageEnable;
16348 uint32_t viewportCount;
16349 const VkShadingRatePaletteNV* pShadingRatePalettes;
16350} VkPipelineViewportShadingRateImageStateCreateInfoNV;
16351
16352typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
16353 VkStructureType sType;
16354 void* pNext;
16355 VkBool32 shadingRateImage;
16356 VkBool32 shadingRateCoarseSampleOrder;
16357} VkPhysicalDeviceShadingRateImageFeaturesNV;
16358
16359typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
16360 VkStructureType sType;
16361 void* pNext;
16362 VkExtent2D shadingRateTexelSize;
16363 uint32_t shadingRatePaletteSize;
16364 uint32_t shadingRateMaxCoarseSamples;
16365} VkPhysicalDeviceShadingRateImagePropertiesNV;
16366
16367typedef struct VkCoarseSampleLocationNV {
16368 uint32_t pixelX;
16369 uint32_t pixelY;
16370 uint32_t sample;
16371} VkCoarseSampleLocationNV;
16372
16373typedef struct VkCoarseSampleOrderCustomNV {
16374 VkShadingRatePaletteEntryNV shadingRate;
16375 uint32_t sampleCount;
16376 uint32_t sampleLocationCount;
16377 const VkCoarseSampleLocationNV* pSampleLocations;
16378} VkCoarseSampleOrderCustomNV;
16379
16380typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
16381 VkStructureType sType;
16382 const void* pNext;
16383 VkCoarseSampleOrderTypeNV sampleOrderType;
16384 uint32_t customSampleOrderCount;
16385 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders;
16386} VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
16387
16388typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
16389typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
16390typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
16391
16392#ifndef VK_NO_PROTOTYPES
16393#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16394VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
16395 VkCommandBuffer commandBuffer,
16396 VkImageView imageView,
16397 VkImageLayout imageLayout);
16398#endif
16399
16400#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16401VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
16402 VkCommandBuffer commandBuffer,
16403 uint32_t firstViewport,
16404 uint32_t viewportCount,
16405 const VkShadingRatePaletteNV* pShadingRatePalettes);
16406#endif
16407
16408#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16409VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
16410 VkCommandBuffer commandBuffer,
16411 VkCoarseSampleOrderTypeNV sampleOrderType,
16412 uint32_t customSampleOrderCount,
16413 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
16414#endif
16415#endif
16416
16417
16418// VK_NV_ray_tracing is a preprocessor guard. Do not pass it to API calls.
16419#define VK_NV_ray_tracing 1
16420VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
16421#define VK_NV_RAY_TRACING_SPEC_VERSION 3
16422#define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing"
16423#define VK_SHADER_UNUSED_KHR (~0U)
16424#define VK_SHADER_UNUSED_NV VK_SHADER_UNUSED_KHR
16425
16426typedef enum VkRayTracingShaderGroupTypeKHR {
16427 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
16428 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
16429 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
16430 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
16431 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
16432 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
16433 VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
16434} VkRayTracingShaderGroupTypeKHR;
16435typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
16436
16437
16438typedef enum VkGeometryTypeKHR {
16439 VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
16440 VK_GEOMETRY_TYPE_AABBS_KHR = 1,
16441 VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
16442 VK_GEOMETRY_TYPE_SPHERES_NV = 1000429004,
16443 VK_GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV = 1000429005,
16444#ifdef VK_ENABLE_BETA_EXTENSIONS
16445 VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX = 1000478000,
16446#endif
16447 VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
16448 VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
16449 VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
16450} VkGeometryTypeKHR;
16451typedef VkGeometryTypeKHR VkGeometryTypeNV;
16452
16453
16454typedef enum VkAccelerationStructureTypeKHR {
16455 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
16456 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
16457 VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2,
16458 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
16459 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
16460 VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
16461} VkAccelerationStructureTypeKHR;
16462typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
16463
16464
16465typedef enum VkCopyAccelerationStructureModeKHR {
16466 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
16467 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
16468 VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
16469 VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
16470 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
16471 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
16472 VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
16473} VkCopyAccelerationStructureModeKHR;
16474typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
16475
16476
16477typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
16478 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
16479 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
16480 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
16481 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
16482} VkAccelerationStructureMemoryRequirementsTypeNV;
16483
16484typedef enum VkGeometryFlagBitsKHR {
16485 VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
16486 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
16487 VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
16488 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
16489 VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
16490} VkGeometryFlagBitsKHR;
16491typedef VkFlags VkGeometryFlagsKHR;
16492typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
16493
16494typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
16495
16496
16497typedef enum VkGeometryInstanceFlagBitsKHR {
16498 VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
16499 VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
16500 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
16501 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
16502 VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT = 0x00000010,
16503 VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT = 0x00000020,
16504 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
16505 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
16506 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
16507 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
16508 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
16509 // VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT is a legacy alias
16510 VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT,
16511 // VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT is a legacy alias
16512 VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT,
16513 VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
16514} VkGeometryInstanceFlagBitsKHR;
16515typedef VkFlags VkGeometryInstanceFlagsKHR;
16516typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
16517
16518typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
16519
16520
16521typedef enum VkBuildAccelerationStructureFlagBitsKHR {
16522 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
16523 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
16524 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
16525 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
16526 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
16527 VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020,
16528 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT = 0x00000040,
16529 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT = 0x00000080,
16530 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT = 0x00000100,
16531#ifdef VK_ENABLE_BETA_EXTENSIONS
16532 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV = 0x00000200,
16533#endif
16534 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR = 0x00000800,
16535 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_CLUSTER_OPACITY_MICROMAPS_BIT_NV = 0x00001000,
16536 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
16537 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
16538 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
16539 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
16540 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
16541 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT is a legacy alias
16542 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT,
16543 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT is a legacy alias
16544 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT,
16545 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT is a legacy alias
16546 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT,
16547#ifdef VK_ENABLE_BETA_EXTENSIONS
16548 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV is a legacy alias
16549 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV,
16550#endif
16551 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR is a legacy alias
16552 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR,
16553 VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
16554} VkBuildAccelerationStructureFlagBitsKHR;
16555typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
16556typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
16557
16558typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
16559
16560typedef struct VkRayTracingShaderGroupCreateInfoNV {
16561 VkStructureType sType;
16562 const void* pNext;
16563 VkRayTracingShaderGroupTypeKHR type;
16564 uint32_t generalShader;
16565 uint32_t closestHitShader;
16566 uint32_t anyHitShader;
16567 uint32_t intersectionShader;
16568} VkRayTracingShaderGroupCreateInfoNV;
16569
16570typedef struct VkRayTracingPipelineCreateInfoNV {
16571 VkStructureType sType;
16572 const void* pNext;
16573 VkPipelineCreateFlags flags;
16574 uint32_t stageCount;
16575 const VkPipelineShaderStageCreateInfo* pStages;
16576 uint32_t groupCount;
16577 const VkRayTracingShaderGroupCreateInfoNV* pGroups;
16578 uint32_t maxRecursionDepth;
16579 VkPipelineLayout layout;
16580 VkPipeline basePipelineHandle;
16581 int32_t basePipelineIndex;
16582} VkRayTracingPipelineCreateInfoNV;
16583
16584typedef struct VkGeometryTrianglesNV {
16585 VkStructureType sType;
16586 const void* pNext;
16587 VkBuffer vertexData;
16588 VkDeviceSize vertexOffset;
16589 uint32_t vertexCount;
16590 VkDeviceSize vertexStride;
16591 VkFormat vertexFormat;
16592 VkBuffer indexData;
16593 VkDeviceSize indexOffset;
16594 uint32_t indexCount;
16595 VkIndexType indexType;
16596 VkBuffer transformData;
16597 VkDeviceSize transformOffset;
16598} VkGeometryTrianglesNV;
16599
16600typedef struct VkGeometryAABBNV {
16601 VkStructureType sType;
16602 const void* pNext;
16603 VkBuffer aabbData;
16604 uint32_t numAABBs;
16605 uint32_t stride;
16606 VkDeviceSize offset;
16607} VkGeometryAABBNV;
16608
16609typedef struct VkGeometryDataNV {
16610 VkGeometryTrianglesNV triangles;
16611 VkGeometryAABBNV aabbs;
16612} VkGeometryDataNV;
16613
16614typedef struct VkGeometryNV {
16615 VkStructureType sType;
16616 const void* pNext;
16617 VkGeometryTypeKHR geometryType;
16618 VkGeometryDataNV geometry;
16619 VkGeometryFlagsKHR flags;
16620} VkGeometryNV;
16621
16622typedef struct VkAccelerationStructureInfoNV {
16623 VkStructureType sType;
16624 const void* pNext;
16625 VkAccelerationStructureTypeNV type;
16626 VkBuildAccelerationStructureFlagsNV flags;
16627 uint32_t instanceCount;
16628 uint32_t geometryCount;
16629 const VkGeometryNV* pGeometries;
16630} VkAccelerationStructureInfoNV;
16631
16632typedef struct VkAccelerationStructureCreateInfoNV {
16633 VkStructureType sType;
16634 const void* pNext;
16635 VkDeviceSize compactedSize;
16636 VkAccelerationStructureInfoNV info;
16637} VkAccelerationStructureCreateInfoNV;
16638
16639typedef struct VkBindAccelerationStructureMemoryInfoNV {
16640 VkStructureType sType;
16641 const void* pNext;
16642 VkAccelerationStructureNV accelerationStructure;
16643 VkDeviceMemory memory;
16644 VkDeviceSize memoryOffset;
16645 uint32_t deviceIndexCount;
16646 const uint32_t* pDeviceIndices;
16647} VkBindAccelerationStructureMemoryInfoNV;
16648
16649typedef struct VkWriteDescriptorSetAccelerationStructureNV {
16650 VkStructureType sType;
16651 const void* pNext;
16652 uint32_t accelerationStructureCount;
16653 const VkAccelerationStructureNV* pAccelerationStructures;
16654} VkWriteDescriptorSetAccelerationStructureNV;
16655
16656typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
16657 VkStructureType sType;
16658 const void* pNext;
16659 VkAccelerationStructureMemoryRequirementsTypeNV type;
16660 VkAccelerationStructureNV accelerationStructure;
16661} VkAccelerationStructureMemoryRequirementsInfoNV;
16662
16663typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
16664 VkStructureType sType;
16665 void* pNext;
16666 uint32_t shaderGroupHandleSize;
16667 uint32_t maxRecursionDepth;
16668 uint32_t maxShaderGroupStride;
16669 uint32_t shaderGroupBaseAlignment;
16670 uint64_t maxGeometryCount;
16671 uint64_t maxInstanceCount;
16672 uint64_t maxTriangleCount;
16673 uint32_t maxDescriptorSetAccelerationStructures;
16674} VkPhysicalDeviceRayTracingPropertiesNV;
16675
16676typedef struct VkTransformMatrixKHR {
16677 float matrix[3][4];
16678} VkTransformMatrixKHR;
16679
16680typedef VkTransformMatrixKHR VkTransformMatrixNV;
16681
16682typedef struct VkAabbPositionsKHR {
16683 float minX;
16684 float minY;
16685 float minZ;
16686 float maxX;
16687 float maxY;
16688 float maxZ;
16689} VkAabbPositionsKHR;
16690
16691typedef VkAabbPositionsKHR VkAabbPositionsNV;
16692
16693typedef struct VkAccelerationStructureInstanceKHR {
16694 VkTransformMatrixKHR transform;
16695 uint32_t instanceCustomIndex:24;
16696 uint32_t mask:8;
16697 uint32_t instanceShaderBindingTableRecordOffset:24;
16698 VkGeometryInstanceFlagsKHR flags:8;
16699 uint64_t accelerationStructureReference;
16700} VkAccelerationStructureInstanceKHR;
16701
16702typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
16703
16704typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
16705typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
16706typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
16707typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
16708typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset);
16709typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
16710typedef 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);
16711typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
16712typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
16713typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
16714typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
16715typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
16716typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
16717
16718#ifndef VK_NO_PROTOTYPES
16719#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16720VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
16721 VkDevice device,
16722 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
16723 const VkAllocationCallbacks* pAllocator,
16724 VkAccelerationStructureNV* pAccelerationStructure);
16725#endif
16726
16727#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16728VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
16729 VkDevice device,
16730 VkAccelerationStructureNV accelerationStructure,
16731 const VkAllocationCallbacks* pAllocator);
16732#endif
16733
16734#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16735VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
16736 VkDevice device,
16737 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
16738 VkMemoryRequirements2KHR* pMemoryRequirements);
16739#endif
16740
16741#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16742VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
16743 VkDevice device,
16744 uint32_t bindInfoCount,
16745 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
16746#endif
16747
16748#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16749VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
16750 VkCommandBuffer commandBuffer,
16751 const VkAccelerationStructureInfoNV* pInfo,
16752 VkBuffer instanceData,
16753 VkDeviceSize instanceOffset,
16754 VkBool32 update,
16755 VkAccelerationStructureNV dst,
16756 VkAccelerationStructureNV src,
16757 VkBuffer scratch,
16758 VkDeviceSize scratchOffset);
16759#endif
16760
16761#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16762VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
16763 VkCommandBuffer commandBuffer,
16764 VkAccelerationStructureNV dst,
16765 VkAccelerationStructureNV src,
16766 VkCopyAccelerationStructureModeKHR mode);
16767#endif
16768
16769#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16770VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
16771 VkCommandBuffer commandBuffer,
16772 VkBuffer raygenShaderBindingTableBuffer,
16773 VkDeviceSize raygenShaderBindingOffset,
16774 VkBuffer missShaderBindingTableBuffer,
16775 VkDeviceSize missShaderBindingOffset,
16776 VkDeviceSize missShaderBindingStride,
16777 VkBuffer hitShaderBindingTableBuffer,
16778 VkDeviceSize hitShaderBindingOffset,
16779 VkDeviceSize hitShaderBindingStride,
16780 VkBuffer callableShaderBindingTableBuffer,
16781 VkDeviceSize callableShaderBindingOffset,
16782 VkDeviceSize callableShaderBindingStride,
16783 uint32_t width,
16784 uint32_t height,
16785 uint32_t depth);
16786#endif
16787
16788#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16789VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
16790 VkDevice device,
16791 VkPipelineCache pipelineCache,
16792 uint32_t createInfoCount,
16793 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
16794 const VkAllocationCallbacks* pAllocator,
16795 VkPipeline* pPipelines);
16796#endif
16797
16798#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16799VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
16800 VkDevice device,
16801 VkPipeline pipeline,
16802 uint32_t firstGroup,
16803 uint32_t groupCount,
16804 size_t dataSize,
16805 void* pData);
16806#endif
16807
16808#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16809VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
16810 VkDevice device,
16811 VkPipeline pipeline,
16812 uint32_t firstGroup,
16813 uint32_t groupCount,
16814 size_t dataSize,
16815 void* pData);
16816#endif
16817
16818#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16819VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
16820 VkDevice device,
16821 VkAccelerationStructureNV accelerationStructure,
16822 size_t dataSize,
16823 void* pData);
16824#endif
16825
16826#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16827VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
16828 VkCommandBuffer commandBuffer,
16829 uint32_t accelerationStructureCount,
16830 const VkAccelerationStructureNV* pAccelerationStructures,
16831 VkQueryType queryType,
16832 VkQueryPool queryPool,
16833 uint32_t firstQuery);
16834#endif
16835
16836#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16837VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
16838 VkDevice device,
16839 VkPipeline pipeline,
16840 uint32_t shader);
16841#endif
16842#endif
16843
16844
16845// VK_NV_representative_fragment_test is a preprocessor guard. Do not pass it to API calls.
16846#define VK_NV_representative_fragment_test 1
16847#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
16848#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
16849typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
16850 VkStructureType sType;
16851 void* pNext;
16852 VkBool32 representativeFragmentTest;
16853} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
16854
16855typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
16856 VkStructureType sType;
16857 const void* pNext;
16858 VkBool32 representativeFragmentTestEnable;
16859} VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
16860
16861
16862
16863// VK_EXT_filter_cubic is a preprocessor guard. Do not pass it to API calls.
16864#define VK_EXT_filter_cubic 1
16865#define VK_EXT_FILTER_CUBIC_SPEC_VERSION 3
16866#define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
16867typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
16868 VkStructureType sType;
16869 void* pNext;
16870 VkImageViewType imageViewType;
16871} VkPhysicalDeviceImageViewImageFormatInfoEXT;
16872
16873typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
16874 VkStructureType sType;
16875 void* pNext;
16876 VkBool32 filterCubic;
16877 VkBool32 filterCubicMinmax;
16878} VkFilterCubicImageViewImageFormatPropertiesEXT;
16879
16880
16881
16882// VK_QCOM_render_pass_shader_resolve is a preprocessor guard. Do not pass it to API calls.
16883#define VK_QCOM_render_pass_shader_resolve 1
16884#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
16885#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
16886
16887
16888// VK_EXT_global_priority is a preprocessor guard. Do not pass it to API calls.
16889#define VK_EXT_global_priority 1
16890#define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
16891#define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
16892typedef VkQueueGlobalPriority VkQueueGlobalPriorityEXT;
16893
16894typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoEXT;
16895
16896
16897
16898// VK_EXT_external_memory_host is a preprocessor guard. Do not pass it to API calls.
16899#define VK_EXT_external_memory_host 1
16900#define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
16901#define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
16902typedef struct VkImportMemoryHostPointerInfoEXT {
16903 VkStructureType sType;
16904 const void* pNext;
16905 VkExternalMemoryHandleTypeFlagBits handleType;
16906 void* pHostPointer;
16907} VkImportMemoryHostPointerInfoEXT;
16908
16909typedef struct VkMemoryHostPointerPropertiesEXT {
16910 VkStructureType sType;
16911 void* pNext;
16912 uint32_t memoryTypeBits;
16913} VkMemoryHostPointerPropertiesEXT;
16914
16915typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
16916 VkStructureType sType;
16917 void* pNext;
16918 VkDeviceSize minImportedHostPointerAlignment;
16919} VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
16920
16921typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
16922
16923#ifndef VK_NO_PROTOTYPES
16924#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16925VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
16926 VkDevice device,
16927 VkExternalMemoryHandleTypeFlagBits handleType,
16928 const void* pHostPointer,
16929 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
16930#endif
16931#endif
16932
16933
16934// VK_AMD_buffer_marker is a preprocessor guard. Do not pass it to API calls.
16935#define VK_AMD_buffer_marker 1
16936#define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
16937#define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
16938typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
16939typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
16940
16941#ifndef VK_NO_PROTOTYPES
16942#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16943VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
16944 VkCommandBuffer commandBuffer,
16945 VkPipelineStageFlagBits pipelineStage,
16946 VkBuffer dstBuffer,
16947 VkDeviceSize dstOffset,
16948 uint32_t marker);
16949#endif
16950
16951#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16952VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD(
16953 VkCommandBuffer commandBuffer,
16954 VkPipelineStageFlags2 stage,
16955 VkBuffer dstBuffer,
16956 VkDeviceSize dstOffset,
16957 uint32_t marker);
16958#endif
16959#endif
16960
16961
16962// VK_AMD_pipeline_compiler_control is a preprocessor guard. Do not pass it to API calls.
16963#define VK_AMD_pipeline_compiler_control 1
16964#define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
16965#define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
16966
16967typedef enum VkPipelineCompilerControlFlagBitsAMD {
16968 VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
16969} VkPipelineCompilerControlFlagBitsAMD;
16970typedef VkFlags VkPipelineCompilerControlFlagsAMD;
16971typedef struct VkPipelineCompilerControlCreateInfoAMD {
16972 VkStructureType sType;
16973 const void* pNext;
16974 VkPipelineCompilerControlFlagsAMD compilerControlFlags;
16975} VkPipelineCompilerControlCreateInfoAMD;
16976
16977
16978
16979// VK_EXT_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
16980#define VK_EXT_calibrated_timestamps 1
16981#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
16982#define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
16983typedef VkTimeDomainKHR VkTimeDomainEXT;
16984
16985typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT;
16986
16987typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
16988typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
16989
16990#ifndef VK_NO_PROTOTYPES
16991#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16992VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
16993 VkPhysicalDevice physicalDevice,
16994 uint32_t* pTimeDomainCount,
16995 VkTimeDomainKHR* pTimeDomains);
16996#endif
16997
16998#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16999VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
17000 VkDevice device,
17001 uint32_t timestampCount,
17002 const VkCalibratedTimestampInfoKHR* pTimestampInfos,
17003 uint64_t* pTimestamps,
17004 uint64_t* pMaxDeviation);
17005#endif
17006#endif
17007
17008
17009// VK_AMD_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
17010#define VK_AMD_shader_core_properties 1
17011#define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
17012#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
17013typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
17014 VkStructureType sType;
17015 void* pNext;
17016 uint32_t shaderEngineCount;
17017 uint32_t shaderArraysPerEngineCount;
17018 uint32_t computeUnitsPerShaderArray;
17019 uint32_t simdPerComputeUnit;
17020 uint32_t wavefrontsPerSimd;
17021 uint32_t wavefrontSize;
17022 uint32_t sgprsPerSimd;
17023 uint32_t minSgprAllocation;
17024 uint32_t maxSgprAllocation;
17025 uint32_t sgprAllocationGranularity;
17026 uint32_t vgprsPerSimd;
17027 uint32_t minVgprAllocation;
17028 uint32_t maxVgprAllocation;
17029 uint32_t vgprAllocationGranularity;
17030} VkPhysicalDeviceShaderCorePropertiesAMD;
17031
17032
17033
17034// VK_AMD_memory_overallocation_behavior is a preprocessor guard. Do not pass it to API calls.
17035#define VK_AMD_memory_overallocation_behavior 1
17036#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
17037#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
17038
17039typedef enum VkMemoryOverallocationBehaviorAMD {
17040 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
17041 VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
17042 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
17043 VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
17044} VkMemoryOverallocationBehaviorAMD;
17045typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
17046 VkStructureType sType;
17047 const void* pNext;
17048 VkMemoryOverallocationBehaviorAMD overallocationBehavior;
17049} VkDeviceMemoryOverallocationCreateInfoAMD;
17050
17051
17052
17053// VK_EXT_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
17054#define VK_EXT_vertex_attribute_divisor 1
17055#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
17056#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
17057typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
17058 VkStructureType sType;
17059 void* pNext;
17060 uint32_t maxVertexAttribDivisor;
17061} VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
17062
17063typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionEXT;
17064
17065typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoEXT;
17066
17067typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
17068
17069
17070
17071// VK_EXT_pipeline_creation_feedback is a preprocessor guard. Do not pass it to API calls.
17072#define VK_EXT_pipeline_creation_feedback 1
17073#define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
17074#define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
17075typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT;
17076
17077typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
17078
17079typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
17080
17081typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
17082
17083
17084
17085// VK_NV_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
17086#define VK_NV_shader_subgroup_partitioned 1
17087#define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
17088#define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
17089
17090
17091// VK_NV_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
17092#define VK_NV_compute_shader_derivatives 1
17093#define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
17094#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
17095typedef VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
17096
17097
17098
17099// VK_NV_mesh_shader is a preprocessor guard. Do not pass it to API calls.
17100#define VK_NV_mesh_shader 1
17101#define VK_NV_MESH_SHADER_SPEC_VERSION 1
17102#define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
17103typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
17104 VkStructureType sType;
17105 void* pNext;
17106 VkBool32 taskShader;
17107 VkBool32 meshShader;
17108} VkPhysicalDeviceMeshShaderFeaturesNV;
17109
17110typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
17111 VkStructureType sType;
17112 void* pNext;
17113 uint32_t maxDrawMeshTasksCount;
17114 uint32_t maxTaskWorkGroupInvocations;
17115 uint32_t maxTaskWorkGroupSize[3];
17116 uint32_t maxTaskTotalMemorySize;
17117 uint32_t maxTaskOutputCount;
17118 uint32_t maxMeshWorkGroupInvocations;
17119 uint32_t maxMeshWorkGroupSize[3];
17120 uint32_t maxMeshTotalMemorySize;
17121 uint32_t maxMeshOutputVertices;
17122 uint32_t maxMeshOutputPrimitives;
17123 uint32_t maxMeshMultiviewViewCount;
17124 uint32_t meshOutputPerVertexGranularity;
17125 uint32_t meshOutputPerPrimitiveGranularity;
17126} VkPhysicalDeviceMeshShaderPropertiesNV;
17127
17128typedef struct VkDrawMeshTasksIndirectCommandNV {
17129 uint32_t taskCount;
17130 uint32_t firstTask;
17131} VkDrawMeshTasksIndirectCommandNV;
17132
17133typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
17134typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
17135typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
17136
17137#ifndef VK_NO_PROTOTYPES
17138#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17139VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
17140 VkCommandBuffer commandBuffer,
17141 uint32_t taskCount,
17142 uint32_t firstTask);
17143#endif
17144
17145#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17146VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
17147 VkCommandBuffer commandBuffer,
17148 VkBuffer buffer,
17149 VkDeviceSize offset,
17150 uint32_t drawCount,
17151 uint32_t stride);
17152#endif
17153
17154#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17155VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
17156 VkCommandBuffer commandBuffer,
17157 VkBuffer buffer,
17158 VkDeviceSize offset,
17159 VkBuffer countBuffer,
17160 VkDeviceSize countBufferOffset,
17161 uint32_t maxDrawCount,
17162 uint32_t stride);
17163#endif
17164#endif
17165
17166
17167// VK_NV_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
17168#define VK_NV_fragment_shader_barycentric 1
17169#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
17170#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
17171typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
17172
17173
17174
17175// VK_NV_shader_image_footprint is a preprocessor guard. Do not pass it to API calls.
17176#define VK_NV_shader_image_footprint 1
17177#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
17178#define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
17179typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
17180 VkStructureType sType;
17181 void* pNext;
17182 VkBool32 imageFootprint;
17183} VkPhysicalDeviceShaderImageFootprintFeaturesNV;
17184
17185
17186
17187// VK_NV_scissor_exclusive is a preprocessor guard. Do not pass it to API calls.
17188#define VK_NV_scissor_exclusive 1
17189#define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 2
17190#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
17191typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
17192 VkStructureType sType;
17193 const void* pNext;
17194 uint32_t exclusiveScissorCount;
17195 const VkRect2D* pExclusiveScissors;
17196} VkPipelineViewportExclusiveScissorStateCreateInfoNV;
17197
17198typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
17199 VkStructureType sType;
17200 void* pNext;
17201 VkBool32 exclusiveScissor;
17202} VkPhysicalDeviceExclusiveScissorFeaturesNV;
17203
17204typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables);
17205typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
17206
17207#ifndef VK_NO_PROTOTYPES
17208#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17209VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorEnableNV(
17210 VkCommandBuffer commandBuffer,
17211 uint32_t firstExclusiveScissor,
17212 uint32_t exclusiveScissorCount,
17213 const VkBool32* pExclusiveScissorEnables);
17214#endif
17215
17216#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17217VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
17218 VkCommandBuffer commandBuffer,
17219 uint32_t firstExclusiveScissor,
17220 uint32_t exclusiveScissorCount,
17221 const VkRect2D* pExclusiveScissors);
17222#endif
17223#endif
17224
17225
17226// VK_NV_device_diagnostic_checkpoints is a preprocessor guard. Do not pass it to API calls.
17227#define VK_NV_device_diagnostic_checkpoints 1
17228#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
17229#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
17230typedef struct VkQueueFamilyCheckpointPropertiesNV {
17231 VkStructureType sType;
17232 void* pNext;
17233 VkPipelineStageFlags checkpointExecutionStageMask;
17234} VkQueueFamilyCheckpointPropertiesNV;
17235
17236typedef struct VkCheckpointDataNV {
17237 VkStructureType sType;
17238 void* pNext;
17239 VkPipelineStageFlagBits stage;
17240 void* pCheckpointMarker;
17241} VkCheckpointDataNV;
17242
17243typedef struct VkQueueFamilyCheckpointProperties2NV {
17244 VkStructureType sType;
17245 void* pNext;
17246 VkPipelineStageFlags2 checkpointExecutionStageMask;
17247} VkQueueFamilyCheckpointProperties2NV;
17248
17249typedef struct VkCheckpointData2NV {
17250 VkStructureType sType;
17251 void* pNext;
17252 VkPipelineStageFlags2 stage;
17253 void* pCheckpointMarker;
17254} VkCheckpointData2NV;
17255
17256typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
17257typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
17258typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
17259
17260#ifndef VK_NO_PROTOTYPES
17261#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17262VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
17263 VkCommandBuffer commandBuffer,
17264 const void* pCheckpointMarker);
17265#endif
17266
17267#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17268VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
17269 VkQueue queue,
17270 uint32_t* pCheckpointDataCount,
17271 VkCheckpointDataNV* pCheckpointData);
17272#endif
17273
17274#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17275VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV(
17276 VkQueue queue,
17277 uint32_t* pCheckpointDataCount,
17278 VkCheckpointData2NV* pCheckpointData);
17279#endif
17280#endif
17281
17282
17283// VK_EXT_present_timing is a preprocessor guard. Do not pass it to API calls.
17284#define VK_EXT_present_timing 1
17285#define VK_EXT_PRESENT_TIMING_SPEC_VERSION 3
17286#define VK_EXT_PRESENT_TIMING_EXTENSION_NAME "VK_EXT_present_timing"
17287
17288typedef enum VkPresentStageFlagBitsEXT {
17289 VK_PRESENT_STAGE_QUEUE_OPERATIONS_END_BIT_EXT = 0x00000001,
17290 VK_PRESENT_STAGE_REQUEST_DEQUEUED_BIT_EXT = 0x00000002,
17291 VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_OUT_BIT_EXT = 0x00000004,
17292 VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_VISIBLE_BIT_EXT = 0x00000008,
17293 VK_PRESENT_STAGE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17294} VkPresentStageFlagBitsEXT;
17295typedef VkFlags VkPresentStageFlagsEXT;
17296
17297typedef enum VkPastPresentationTimingFlagBitsEXT {
17298 VK_PAST_PRESENTATION_TIMING_ALLOW_PARTIAL_RESULTS_BIT_EXT = 0x00000001,
17299 VK_PAST_PRESENTATION_TIMING_ALLOW_OUT_OF_ORDER_RESULTS_BIT_EXT = 0x00000002,
17300 VK_PAST_PRESENTATION_TIMING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17301} VkPastPresentationTimingFlagBitsEXT;
17302typedef VkFlags VkPastPresentationTimingFlagsEXT;
17303
17304typedef enum VkPresentTimingInfoFlagBitsEXT {
17305 VK_PRESENT_TIMING_INFO_PRESENT_AT_RELATIVE_TIME_BIT_EXT = 0x00000001,
17306 VK_PRESENT_TIMING_INFO_PRESENT_AT_NEAREST_REFRESH_CYCLE_BIT_EXT = 0x00000002,
17307 VK_PRESENT_TIMING_INFO_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17308} VkPresentTimingInfoFlagBitsEXT;
17309typedef VkFlags VkPresentTimingInfoFlagsEXT;
17310typedef struct VkPhysicalDevicePresentTimingFeaturesEXT {
17311 VkStructureType sType;
17312 void* pNext;
17313 VkBool32 presentTiming;
17314 VkBool32 presentAtAbsoluteTime;
17315 VkBool32 presentAtRelativeTime;
17316} VkPhysicalDevicePresentTimingFeaturesEXT;
17317
17318typedef struct VkPresentTimingSurfaceCapabilitiesEXT {
17319 VkStructureType sType;
17320 void* pNext;
17321 VkBool32 presentTimingSupported;
17322 VkBool32 presentAtAbsoluteTimeSupported;
17323 VkBool32 presentAtRelativeTimeSupported;
17324 VkPresentStageFlagsEXT presentStageQueries;
17325} VkPresentTimingSurfaceCapabilitiesEXT;
17326
17327typedef struct VkSwapchainCalibratedTimestampInfoEXT {
17328 VkStructureType sType;
17329 const void* pNext;
17330 VkSwapchainKHR swapchain;
17331 VkPresentStageFlagsEXT presentStage;
17332 uint64_t timeDomainId;
17333} VkSwapchainCalibratedTimestampInfoEXT;
17334
17335typedef struct VkSwapchainTimingPropertiesEXT {
17336 VkStructureType sType;
17337 void* pNext;
17338 uint64_t refreshDuration;
17339 uint64_t refreshInterval;
17340} VkSwapchainTimingPropertiesEXT;
17341
17342typedef struct VkSwapchainTimeDomainPropertiesEXT {
17343 VkStructureType sType;
17344 void* pNext;
17345 uint32_t timeDomainCount;
17346 VkTimeDomainKHR* pTimeDomains;
17347 uint64_t* pTimeDomainIds;
17348} VkSwapchainTimeDomainPropertiesEXT;
17349
17350typedef struct VkPastPresentationTimingInfoEXT {
17351 VkStructureType sType;
17352 const void* pNext;
17353 VkPastPresentationTimingFlagsEXT flags;
17354 VkSwapchainKHR swapchain;
17355} VkPastPresentationTimingInfoEXT;
17356
17357typedef struct VkPresentStageTimeEXT {
17358 VkPresentStageFlagsEXT stage;
17359 uint64_t time;
17360} VkPresentStageTimeEXT;
17361
17362typedef struct VkPastPresentationTimingEXT {
17363 VkStructureType sType;
17364 void* pNext;
17365 uint64_t presentId;
17366 uint64_t targetTime;
17367 uint32_t presentStageCount;
17368 VkPresentStageTimeEXT* pPresentStages;
17369 VkTimeDomainKHR timeDomain;
17370 uint64_t timeDomainId;
17371 VkBool32 reportComplete;
17372} VkPastPresentationTimingEXT;
17373
17374typedef struct VkPastPresentationTimingPropertiesEXT {
17375 VkStructureType sType;
17376 void* pNext;
17377 uint64_t timingPropertiesCounter;
17378 uint64_t timeDomainsCounter;
17379 uint32_t presentationTimingCount;
17380 VkPastPresentationTimingEXT* pPresentationTimings;
17381} VkPastPresentationTimingPropertiesEXT;
17382
17383typedef struct VkPresentTimingInfoEXT {
17384 VkStructureType sType;
17385 const void* pNext;
17386 VkPresentTimingInfoFlagsEXT flags;
17387 uint64_t targetTime;
17388 uint64_t timeDomainId;
17389 VkPresentStageFlagsEXT presentStageQueries;
17390 VkPresentStageFlagsEXT targetTimeDomainPresentStage;
17391} VkPresentTimingInfoEXT;
17392
17393typedef struct VkPresentTimingsInfoEXT {
17394 VkStructureType sType;
17395 const void* pNext;
17396 uint32_t swapchainCount;
17397 const VkPresentTimingInfoEXT* pTimingInfos;
17398} VkPresentTimingsInfoEXT;
17399
17400typedef VkResult (VKAPI_PTR *PFN_vkSetSwapchainPresentTimingQueueSizeEXT)(VkDevice device, VkSwapchainKHR swapchain, uint32_t size);
17401typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainTimingPropertiesEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSwapchainTimingPropertiesEXT* pSwapchainTimingProperties, uint64_t* pSwapchainTimingPropertiesCounter);
17402typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainTimeDomainPropertiesEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSwapchainTimeDomainPropertiesEXT* pSwapchainTimeDomainProperties, uint64_t* pTimeDomainsCounter);
17403typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingEXT)(VkDevice device, const VkPastPresentationTimingInfoEXT* pPastPresentationTimingInfo, VkPastPresentationTimingPropertiesEXT* pPastPresentationTimingProperties);
17404
17405#ifndef VK_NO_PROTOTYPES
17406#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17407VKAPI_ATTR VkResult VKAPI_CALL vkSetSwapchainPresentTimingQueueSizeEXT(
17408 VkDevice device,
17409 VkSwapchainKHR swapchain,
17410 uint32_t size);
17411#endif
17412
17413#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17414VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainTimingPropertiesEXT(
17415 VkDevice device,
17416 VkSwapchainKHR swapchain,
17417 VkSwapchainTimingPropertiesEXT* pSwapchainTimingProperties,
17418 uint64_t* pSwapchainTimingPropertiesCounter);
17419#endif
17420
17421#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17422VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainTimeDomainPropertiesEXT(
17423 VkDevice device,
17424 VkSwapchainKHR swapchain,
17425 VkSwapchainTimeDomainPropertiesEXT* pSwapchainTimeDomainProperties,
17426 uint64_t* pTimeDomainsCounter);
17427#endif
17428
17429#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17430VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingEXT(
17431 VkDevice device,
17432 const VkPastPresentationTimingInfoEXT* pPastPresentationTimingInfo,
17433 VkPastPresentationTimingPropertiesEXT* pPastPresentationTimingProperties);
17434#endif
17435#endif
17436
17437
17438// VK_INTEL_shader_integer_functions2 is a preprocessor guard. Do not pass it to API calls.
17439#define VK_INTEL_shader_integer_functions2 1
17440#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
17441#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
17442typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
17443 VkStructureType sType;
17444 void* pNext;
17445 VkBool32 shaderIntegerFunctions2;
17446} VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
17447
17448
17449
17450// VK_INTEL_performance_query is a preprocessor guard. Do not pass it to API calls.
17451#define VK_INTEL_performance_query 1
17452VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
17453#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
17454#define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
17455
17456typedef enum VkPerformanceConfigurationTypeINTEL {
17457 VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
17458 VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
17459} VkPerformanceConfigurationTypeINTEL;
17460
17461typedef enum VkQueryPoolSamplingModeINTEL {
17462 VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
17463 VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
17464} VkQueryPoolSamplingModeINTEL;
17465
17466typedef enum VkPerformanceOverrideTypeINTEL {
17467 VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
17468 VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
17469 VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
17470} VkPerformanceOverrideTypeINTEL;
17471
17472typedef enum VkPerformanceParameterTypeINTEL {
17473 VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
17474 VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
17475 VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
17476} VkPerformanceParameterTypeINTEL;
17477
17478typedef enum VkPerformanceValueTypeINTEL {
17479 VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
17480 VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
17481 VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
17482 VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
17483 VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
17484 VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
17485} VkPerformanceValueTypeINTEL;
17486typedef union VkPerformanceValueDataINTEL {
17487 uint32_t value32;
17488 uint64_t value64;
17489 float valueFloat;
17490 VkBool32 valueBool;
17491 const char* valueString;
17492} VkPerformanceValueDataINTEL;
17493
17494typedef struct VkPerformanceValueINTEL {
17495 VkPerformanceValueTypeINTEL type;
17496 VkPerformanceValueDataINTEL data;
17497} VkPerformanceValueINTEL;
17498
17499typedef struct VkInitializePerformanceApiInfoINTEL {
17500 VkStructureType sType;
17501 const void* pNext;
17502 void* pUserData;
17503} VkInitializePerformanceApiInfoINTEL;
17504
17505typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
17506 VkStructureType sType;
17507 const void* pNext;
17508 VkQueryPoolSamplingModeINTEL performanceCountersSampling;
17509} VkQueryPoolPerformanceQueryCreateInfoINTEL;
17510
17511typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
17512
17513typedef struct VkPerformanceMarkerInfoINTEL {
17514 VkStructureType sType;
17515 const void* pNext;
17516 uint64_t marker;
17517} VkPerformanceMarkerInfoINTEL;
17518
17519typedef struct VkPerformanceStreamMarkerInfoINTEL {
17520 VkStructureType sType;
17521 const void* pNext;
17522 uint32_t marker;
17523} VkPerformanceStreamMarkerInfoINTEL;
17524
17525typedef struct VkPerformanceOverrideInfoINTEL {
17526 VkStructureType sType;
17527 const void* pNext;
17528 VkPerformanceOverrideTypeINTEL type;
17529 VkBool32 enable;
17530 uint64_t parameter;
17531} VkPerformanceOverrideInfoINTEL;
17532
17533typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
17534 VkStructureType sType;
17535 const void* pNext;
17536 VkPerformanceConfigurationTypeINTEL type;
17537} VkPerformanceConfigurationAcquireInfoINTEL;
17538
17539typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
17540typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
17541typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
17542typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
17543typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
17544typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
17545typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
17546typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
17547typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
17548
17549#ifndef VK_NO_PROTOTYPES
17550#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17551VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
17552 VkDevice device,
17553 const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
17554#endif
17555
17556#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17557VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
17558 VkDevice device);
17559#endif
17560
17561#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17562VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
17563 VkCommandBuffer commandBuffer,
17564 const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
17565#endif
17566
17567#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17568VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
17569 VkCommandBuffer commandBuffer,
17570 const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
17571#endif
17572
17573#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17574VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
17575 VkCommandBuffer commandBuffer,
17576 const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
17577#endif
17578
17579#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17580VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
17581 VkDevice device,
17582 const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
17583 VkPerformanceConfigurationINTEL* pConfiguration);
17584#endif
17585
17586#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17587VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
17588 VkDevice device,
17589 VkPerformanceConfigurationINTEL configuration);
17590#endif
17591
17592#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17593VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
17594 VkQueue queue,
17595 VkPerformanceConfigurationINTEL configuration);
17596#endif
17597
17598#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17599VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
17600 VkDevice device,
17601 VkPerformanceParameterTypeINTEL parameter,
17602 VkPerformanceValueINTEL* pValue);
17603#endif
17604#endif
17605
17606
17607// VK_EXT_pci_bus_info is a preprocessor guard. Do not pass it to API calls.
17608#define VK_EXT_pci_bus_info 1
17609#define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2
17610#define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
17611typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
17612 VkStructureType sType;
17613 void* pNext;
17614 uint32_t pciDomain;
17615 uint32_t pciBus;
17616 uint32_t pciDevice;
17617 uint32_t pciFunction;
17618} VkPhysicalDevicePCIBusInfoPropertiesEXT;
17619
17620
17621
17622// VK_AMD_display_native_hdr is a preprocessor guard. Do not pass it to API calls.
17623#define VK_AMD_display_native_hdr 1
17624#define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
17625#define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
17626typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
17627 VkStructureType sType;
17628 void* pNext;
17629 VkBool32 localDimmingSupport;
17630} VkDisplayNativeHdrSurfaceCapabilitiesAMD;
17631
17632typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
17633 VkStructureType sType;
17634 const void* pNext;
17635 VkBool32 localDimmingEnable;
17636} VkSwapchainDisplayNativeHdrCreateInfoAMD;
17637
17638typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
17639
17640#ifndef VK_NO_PROTOTYPES
17641#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17642VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
17643 VkDevice device,
17644 VkSwapchainKHR swapChain,
17645 VkBool32 localDimmingEnable);
17646#endif
17647#endif
17648
17649
17650// VK_EXT_fragment_density_map is a preprocessor guard. Do not pass it to API calls.
17651#define VK_EXT_fragment_density_map 1
17652#define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 3
17653#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
17654typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
17655 VkStructureType sType;
17656 void* pNext;
17657 VkBool32 fragmentDensityMap;
17658 VkBool32 fragmentDensityMapDynamic;
17659 VkBool32 fragmentDensityMapNonSubsampledImages;
17660} VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
17661
17662typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
17663 VkStructureType sType;
17664 void* pNext;
17665 VkExtent2D minFragmentDensityTexelSize;
17666 VkExtent2D maxFragmentDensityTexelSize;
17667 VkBool32 fragmentDensityInvocations;
17668} VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
17669
17670typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
17671 VkStructureType sType;
17672 const void* pNext;
17673 VkAttachmentReference fragmentDensityMapAttachment;
17674} VkRenderPassFragmentDensityMapCreateInfoEXT;
17675
17676typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
17677 VkStructureType sType;
17678 const void* pNext;
17679 VkImageView imageView;
17680 VkImageLayout imageLayout;
17681} VkRenderingFragmentDensityMapAttachmentInfoEXT;
17682
17683
17684
17685// VK_EXT_scalar_block_layout is a preprocessor guard. Do not pass it to API calls.
17686#define VK_EXT_scalar_block_layout 1
17687#define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
17688#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
17689typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
17690
17691
17692
17693// VK_GOOGLE_hlsl_functionality1 is a preprocessor guard. Do not pass it to API calls.
17694#define VK_GOOGLE_hlsl_functionality1 1
17695#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
17696#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
17697// VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION is a legacy alias
17698#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
17699// VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME is a legacy alias
17700#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
17701
17702
17703// VK_GOOGLE_decorate_string is a preprocessor guard. Do not pass it to API calls.
17704#define VK_GOOGLE_decorate_string 1
17705#define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
17706#define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
17707
17708
17709// VK_EXT_subgroup_size_control is a preprocessor guard. Do not pass it to API calls.
17710#define VK_EXT_subgroup_size_control 1
17711#define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
17712#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
17713typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
17714
17715typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
17716
17717typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
17718
17719
17720
17721// VK_AMD_shader_core_properties2 is a preprocessor guard. Do not pass it to API calls.
17722#define VK_AMD_shader_core_properties2 1
17723#define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
17724#define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
17725
17726typedef enum VkShaderCorePropertiesFlagBitsAMD {
17727 VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
17728} VkShaderCorePropertiesFlagBitsAMD;
17729typedef VkFlags VkShaderCorePropertiesFlagsAMD;
17730typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
17731 VkStructureType sType;
17732 void* pNext;
17733 VkShaderCorePropertiesFlagsAMD shaderCoreFeatures;
17734 uint32_t activeComputeUnitCount;
17735} VkPhysicalDeviceShaderCoreProperties2AMD;
17736
17737
17738
17739// VK_AMD_device_coherent_memory is a preprocessor guard. Do not pass it to API calls.
17740#define VK_AMD_device_coherent_memory 1
17741#define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
17742#define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
17743typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
17744 VkStructureType sType;
17745 void* pNext;
17746 VkBool32 deviceCoherentMemory;
17747} VkPhysicalDeviceCoherentMemoryFeaturesAMD;
17748
17749
17750
17751// VK_EXT_shader_image_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
17752#define VK_EXT_shader_image_atomic_int64 1
17753#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
17754#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
17755typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
17756 VkStructureType sType;
17757 void* pNext;
17758 VkBool32 shaderImageInt64Atomics;
17759 VkBool32 sparseImageInt64Atomics;
17760} VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
17761
17762
17763
17764// VK_EXT_memory_budget is a preprocessor guard. Do not pass it to API calls.
17765#define VK_EXT_memory_budget 1
17766#define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
17767#define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
17768typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
17769 VkStructureType sType;
17770 void* pNext;
17771 VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS];
17772 VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS];
17773} VkPhysicalDeviceMemoryBudgetPropertiesEXT;
17774
17775
17776
17777// VK_EXT_memory_priority is a preprocessor guard. Do not pass it to API calls.
17778#define VK_EXT_memory_priority 1
17779#define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
17780#define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
17781typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
17782 VkStructureType sType;
17783 void* pNext;
17784 VkBool32 memoryPriority;
17785} VkPhysicalDeviceMemoryPriorityFeaturesEXT;
17786
17787typedef struct VkMemoryPriorityAllocateInfoEXT {
17788 VkStructureType sType;
17789 const void* pNext;
17790 float priority;
17791} VkMemoryPriorityAllocateInfoEXT;
17792
17793
17794
17795// VK_NV_dedicated_allocation_image_aliasing is a preprocessor guard. Do not pass it to API calls.
17796#define VK_NV_dedicated_allocation_image_aliasing 1
17797#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
17798#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
17799typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
17800 VkStructureType sType;
17801 void* pNext;
17802 VkBool32 dedicatedAllocationImageAliasing;
17803} VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
17804
17805
17806
17807// VK_EXT_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
17808#define VK_EXT_buffer_device_address 1
17809#define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
17810#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
17811typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
17812 VkStructureType sType;
17813 void* pNext;
17814 VkBool32 bufferDeviceAddress;
17815 VkBool32 bufferDeviceAddressCaptureReplay;
17816 VkBool32 bufferDeviceAddressMultiDevice;
17817} VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
17818
17819typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
17820
17821typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
17822
17823typedef struct VkBufferDeviceAddressCreateInfoEXT {
17824 VkStructureType sType;
17825 const void* pNext;
17826 VkDeviceAddress deviceAddress;
17827} VkBufferDeviceAddressCreateInfoEXT;
17828
17829typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
17830
17831#ifndef VK_NO_PROTOTYPES
17832#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17833VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
17834 VkDevice device,
17835 const VkBufferDeviceAddressInfo* pInfo);
17836#endif
17837#endif
17838
17839
17840// VK_EXT_tooling_info is a preprocessor guard. Do not pass it to API calls.
17841#define VK_EXT_tooling_info 1
17842#define VK_EXT_TOOLING_INFO_SPEC_VERSION 1
17843#define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
17844typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT;
17845
17846typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
17847
17848typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
17849
17850typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
17851
17852#ifndef VK_NO_PROTOTYPES
17853#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17854VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
17855 VkPhysicalDevice physicalDevice,
17856 uint32_t* pToolCount,
17857 VkPhysicalDeviceToolProperties* pToolProperties);
17858#endif
17859#endif
17860
17861
17862// VK_EXT_separate_stencil_usage is a preprocessor guard. Do not pass it to API calls.
17863#define VK_EXT_separate_stencil_usage 1
17864#define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
17865#define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
17866typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
17867
17868
17869
17870// VK_EXT_validation_features is a preprocessor guard. Do not pass it to API calls.
17871#define VK_EXT_validation_features 1
17872#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 6
17873#define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
17874
17875typedef enum VkValidationFeatureEnableEXT {
17876 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
17877 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
17878 VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
17879 VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
17880 VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
17881 VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
17882} VkValidationFeatureEnableEXT;
17883
17884typedef enum VkValidationFeatureDisableEXT {
17885 VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
17886 VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
17887 VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
17888 VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
17889 VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
17890 VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
17891 VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
17892 VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
17893 VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
17894} VkValidationFeatureDisableEXT;
17895typedef struct VkValidationFeaturesEXT {
17896 VkStructureType sType;
17897 const void* pNext;
17898 uint32_t enabledValidationFeatureCount;
17899 const VkValidationFeatureEnableEXT* pEnabledValidationFeatures;
17900 uint32_t disabledValidationFeatureCount;
17901 const VkValidationFeatureDisableEXT* pDisabledValidationFeatures;
17902} VkValidationFeaturesEXT;
17903
17904
17905
17906// VK_NV_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
17907#define VK_NV_cooperative_matrix 1
17908#define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
17909#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
17910typedef VkComponentTypeKHR VkComponentTypeNV;
17911
17912typedef VkScopeKHR VkScopeNV;
17913
17914typedef struct VkCooperativeMatrixPropertiesNV {
17915 VkStructureType sType;
17916 void* pNext;
17917 uint32_t MSize;
17918 uint32_t NSize;
17919 uint32_t KSize;
17920 VkComponentTypeNV AType;
17921 VkComponentTypeNV BType;
17922 VkComponentTypeNV CType;
17923 VkComponentTypeNV DType;
17924 VkScopeNV scope;
17925} VkCooperativeMatrixPropertiesNV;
17926
17927typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
17928 VkStructureType sType;
17929 void* pNext;
17930 VkBool32 cooperativeMatrix;
17931 VkBool32 cooperativeMatrixRobustBufferAccess;
17932} VkPhysicalDeviceCooperativeMatrixFeaturesNV;
17933
17934typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
17935 VkStructureType sType;
17936 void* pNext;
17937 VkShaderStageFlags cooperativeMatrixSupportedStages;
17938} VkPhysicalDeviceCooperativeMatrixPropertiesNV;
17939
17940typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
17941
17942#ifndef VK_NO_PROTOTYPES
17943#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17944VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
17945 VkPhysicalDevice physicalDevice,
17946 uint32_t* pPropertyCount,
17947 VkCooperativeMatrixPropertiesNV* pProperties);
17948#endif
17949#endif
17950
17951
17952// VK_NV_coverage_reduction_mode is a preprocessor guard. Do not pass it to API calls.
17953#define VK_NV_coverage_reduction_mode 1
17954#define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
17955#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
17956
17957typedef enum VkCoverageReductionModeNV {
17958 VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
17959 VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
17960 VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
17961} VkCoverageReductionModeNV;
17962typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
17963typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
17964 VkStructureType sType;
17965 void* pNext;
17966 VkBool32 coverageReductionMode;
17967} VkPhysicalDeviceCoverageReductionModeFeaturesNV;
17968
17969typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
17970 VkStructureType sType;
17971 const void* pNext;
17972 VkPipelineCoverageReductionStateCreateFlagsNV flags;
17973 VkCoverageReductionModeNV coverageReductionMode;
17974} VkPipelineCoverageReductionStateCreateInfoNV;
17975
17976typedef struct VkFramebufferMixedSamplesCombinationNV {
17977 VkStructureType sType;
17978 void* pNext;
17979 VkCoverageReductionModeNV coverageReductionMode;
17980 VkSampleCountFlagBits rasterizationSamples;
17981 VkSampleCountFlags depthStencilSamples;
17982 VkSampleCountFlags colorSamples;
17983} VkFramebufferMixedSamplesCombinationNV;
17984
17985typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
17986
17987#ifndef VK_NO_PROTOTYPES
17988#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17989VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
17990 VkPhysicalDevice physicalDevice,
17991 uint32_t* pCombinationCount,
17992 VkFramebufferMixedSamplesCombinationNV* pCombinations);
17993#endif
17994#endif
17995
17996
17997// VK_EXT_fragment_shader_interlock is a preprocessor guard. Do not pass it to API calls.
17998#define VK_EXT_fragment_shader_interlock 1
17999#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
18000#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
18001typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
18002 VkStructureType sType;
18003 void* pNext;
18004 VkBool32 fragmentShaderSampleInterlock;
18005 VkBool32 fragmentShaderPixelInterlock;
18006 VkBool32 fragmentShaderShadingRateInterlock;
18007} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
18008
18009
18010
18011// VK_EXT_ycbcr_image_arrays is a preprocessor guard. Do not pass it to API calls.
18012#define VK_EXT_ycbcr_image_arrays 1
18013#define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
18014#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
18015typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
18016 VkStructureType sType;
18017 void* pNext;
18018 VkBool32 ycbcrImageArrays;
18019} VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
18020
18021
18022
18023// VK_EXT_provoking_vertex is a preprocessor guard. Do not pass it to API calls.
18024#define VK_EXT_provoking_vertex 1
18025#define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
18026#define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
18027
18028typedef enum VkProvokingVertexModeEXT {
18029 VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0,
18030 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1,
18031 VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
18032} VkProvokingVertexModeEXT;
18033typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT {
18034 VkStructureType sType;
18035 void* pNext;
18036 VkBool32 provokingVertexLast;
18037 VkBool32 transformFeedbackPreservesProvokingVertex;
18038} VkPhysicalDeviceProvokingVertexFeaturesEXT;
18039
18040typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT {
18041 VkStructureType sType;
18042 void* pNext;
18043 VkBool32 provokingVertexModePerPipeline;
18044 VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex;
18045} VkPhysicalDeviceProvokingVertexPropertiesEXT;
18046
18047typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
18048 VkStructureType sType;
18049 const void* pNext;
18050 VkProvokingVertexModeEXT provokingVertexMode;
18051} VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
18052
18053
18054
18055// VK_EXT_headless_surface is a preprocessor guard. Do not pass it to API calls.
18056#define VK_EXT_headless_surface 1
18057#define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
18058#define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
18059typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
18060typedef struct VkHeadlessSurfaceCreateInfoEXT {
18061 VkStructureType sType;
18062 const void* pNext;
18063 VkHeadlessSurfaceCreateFlagsEXT flags;
18064} VkHeadlessSurfaceCreateInfoEXT;
18065
18066typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
18067
18068#ifndef VK_NO_PROTOTYPES
18069#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18070VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
18071 VkInstance instance,
18072 const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo,
18073 const VkAllocationCallbacks* pAllocator,
18074 VkSurfaceKHR* pSurface);
18075#endif
18076#endif
18077
18078
18079// VK_EXT_line_rasterization is a preprocessor guard. Do not pass it to API calls.
18080#define VK_EXT_line_rasterization 1
18081#define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
18082#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
18083typedef VkLineRasterizationMode VkLineRasterizationModeEXT;
18084
18085typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesEXT;
18086
18087typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesEXT;
18088
18089typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoEXT;
18090
18091typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
18092
18093#ifndef VK_NO_PROTOTYPES
18094#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18095VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
18096 VkCommandBuffer commandBuffer,
18097 uint32_t lineStippleFactor,
18098 uint16_t lineStipplePattern);
18099#endif
18100#endif
18101
18102
18103// VK_EXT_shader_atomic_float is a preprocessor guard. Do not pass it to API calls.
18104#define VK_EXT_shader_atomic_float 1
18105#define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
18106#define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
18107typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
18108 VkStructureType sType;
18109 void* pNext;
18110 VkBool32 shaderBufferFloat32Atomics;
18111 VkBool32 shaderBufferFloat32AtomicAdd;
18112 VkBool32 shaderBufferFloat64Atomics;
18113 VkBool32 shaderBufferFloat64AtomicAdd;
18114 VkBool32 shaderSharedFloat32Atomics;
18115 VkBool32 shaderSharedFloat32AtomicAdd;
18116 VkBool32 shaderSharedFloat64Atomics;
18117 VkBool32 shaderSharedFloat64AtomicAdd;
18118 VkBool32 shaderImageFloat32Atomics;
18119 VkBool32 shaderImageFloat32AtomicAdd;
18120 VkBool32 sparseImageFloat32Atomics;
18121 VkBool32 sparseImageFloat32AtomicAdd;
18122} VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
18123
18124
18125
18126// VK_EXT_host_query_reset is a preprocessor guard. Do not pass it to API calls.
18127#define VK_EXT_host_query_reset 1
18128#define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
18129#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
18130typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
18131
18132typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
18133
18134#ifndef VK_NO_PROTOTYPES
18135#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18136VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
18137 VkDevice device,
18138 VkQueryPool queryPool,
18139 uint32_t firstQuery,
18140 uint32_t queryCount);
18141#endif
18142#endif
18143
18144
18145// VK_EXT_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
18146#define VK_EXT_index_type_uint8 1
18147#define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
18148#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
18149typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
18150
18151
18152
18153// VK_EXT_extended_dynamic_state is a preprocessor guard. Do not pass it to API calls.
18154#define VK_EXT_extended_dynamic_state 1
18155#define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
18156#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
18157typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
18158 VkStructureType sType;
18159 void* pNext;
18160 VkBool32 extendedDynamicState;
18161} VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
18162
18163typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
18164typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
18165typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
18166typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
18167typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
18168typedef 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);
18169typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
18170typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
18171typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
18172typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
18173typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
18174typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
18175
18176#ifndef VK_NO_PROTOTYPES
18177#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18178VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
18179 VkCommandBuffer commandBuffer,
18180 VkCullModeFlags cullMode);
18181#endif
18182
18183#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18184VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
18185 VkCommandBuffer commandBuffer,
18186 VkFrontFace frontFace);
18187#endif
18188
18189#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18190VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
18191 VkCommandBuffer commandBuffer,
18192 VkPrimitiveTopology primitiveTopology);
18193#endif
18194
18195#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18196VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
18197 VkCommandBuffer commandBuffer,
18198 uint32_t viewportCount,
18199 const VkViewport* pViewports);
18200#endif
18201
18202#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18203VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
18204 VkCommandBuffer commandBuffer,
18205 uint32_t scissorCount,
18206 const VkRect2D* pScissors);
18207#endif
18208
18209#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18210VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
18211 VkCommandBuffer commandBuffer,
18212 uint32_t firstBinding,
18213 uint32_t bindingCount,
18214 const VkBuffer* pBuffers,
18215 const VkDeviceSize* pOffsets,
18216 const VkDeviceSize* pSizes,
18217 const VkDeviceSize* pStrides);
18218#endif
18219
18220#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18221VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
18222 VkCommandBuffer commandBuffer,
18223 VkBool32 depthTestEnable);
18224#endif
18225
18226#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18227VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
18228 VkCommandBuffer commandBuffer,
18229 VkBool32 depthWriteEnable);
18230#endif
18231
18232#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18233VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
18234 VkCommandBuffer commandBuffer,
18235 VkCompareOp depthCompareOp);
18236#endif
18237
18238#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18239VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
18240 VkCommandBuffer commandBuffer,
18241 VkBool32 depthBoundsTestEnable);
18242#endif
18243
18244#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18245VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
18246 VkCommandBuffer commandBuffer,
18247 VkBool32 stencilTestEnable);
18248#endif
18249
18250#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18251VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
18252 VkCommandBuffer commandBuffer,
18253 VkStencilFaceFlags faceMask,
18254 VkStencilOp failOp,
18255 VkStencilOp passOp,
18256 VkStencilOp depthFailOp,
18257 VkCompareOp compareOp);
18258#endif
18259#endif
18260
18261
18262// VK_EXT_host_image_copy is a preprocessor guard. Do not pass it to API calls.
18263#define VK_EXT_host_image_copy 1
18264#define VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION 1
18265#define VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME "VK_EXT_host_image_copy"
18266typedef VkHostImageCopyFlagBits VkHostImageCopyFlagBitsEXT;
18267
18268typedef VkHostImageCopyFlags VkHostImageCopyFlagsEXT;
18269
18270typedef VkPhysicalDeviceHostImageCopyFeatures VkPhysicalDeviceHostImageCopyFeaturesEXT;
18271
18272typedef VkPhysicalDeviceHostImageCopyProperties VkPhysicalDeviceHostImageCopyPropertiesEXT;
18273
18274typedef VkMemoryToImageCopy VkMemoryToImageCopyEXT;
18275
18276typedef VkImageToMemoryCopy VkImageToMemoryCopyEXT;
18277
18278typedef VkCopyMemoryToImageInfo VkCopyMemoryToImageInfoEXT;
18279
18280typedef VkCopyImageToMemoryInfo VkCopyImageToMemoryInfoEXT;
18281
18282typedef VkCopyImageToImageInfo VkCopyImageToImageInfoEXT;
18283
18284typedef VkHostImageLayoutTransitionInfo VkHostImageLayoutTransitionInfoEXT;
18285
18286typedef VkSubresourceHostMemcpySize VkSubresourceHostMemcpySizeEXT;
18287
18288typedef VkHostImageCopyDevicePerformanceQuery VkHostImageCopyDevicePerformanceQueryEXT;
18289
18290typedef VkSubresourceLayout2 VkSubresourceLayout2EXT;
18291
18292typedef VkImageSubresource2 VkImageSubresource2EXT;
18293
18294typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImageEXT)(VkDevice device, const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
18295typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemoryEXT)(VkDevice device, const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
18296typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImageEXT)(VkDevice device, const VkCopyImageToImageInfo* pCopyImageToImageInfo);
18297typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayoutEXT)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions);
18298typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
18299
18300#ifndef VK_NO_PROTOTYPES
18301#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18302VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImageEXT(
18303 VkDevice device,
18304 const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
18305#endif
18306
18307#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18308VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemoryEXT(
18309 VkDevice device,
18310 const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
18311#endif
18312
18313#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18314VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImageEXT(
18315 VkDevice device,
18316 const VkCopyImageToImageInfo* pCopyImageToImageInfo);
18317#endif
18318
18319#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18320VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayoutEXT(
18321 VkDevice device,
18322 uint32_t transitionCount,
18323 const VkHostImageLayoutTransitionInfo* pTransitions);
18324#endif
18325
18326#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18327VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
18328 VkDevice device,
18329 VkImage image,
18330 const VkImageSubresource2* pSubresource,
18331 VkSubresourceLayout2* pLayout);
18332#endif
18333#endif
18334
18335
18336// VK_EXT_map_memory_placed is a preprocessor guard. Do not pass it to API calls.
18337#define VK_EXT_map_memory_placed 1
18338#define VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION 1
18339#define VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME "VK_EXT_map_memory_placed"
18340typedef struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT {
18341 VkStructureType sType;
18342 void* pNext;
18343 VkBool32 memoryMapPlaced;
18344 VkBool32 memoryMapRangePlaced;
18345 VkBool32 memoryUnmapReserve;
18346} VkPhysicalDeviceMapMemoryPlacedFeaturesEXT;
18347
18348typedef struct VkPhysicalDeviceMapMemoryPlacedPropertiesEXT {
18349 VkStructureType sType;
18350 void* pNext;
18351 VkDeviceSize minPlacedMemoryMapAlignment;
18352} VkPhysicalDeviceMapMemoryPlacedPropertiesEXT;
18353
18354typedef struct VkMemoryMapPlacedInfoEXT {
18355 VkStructureType sType;
18356 const void* pNext;
18357 void* pPlacedAddress;
18358} VkMemoryMapPlacedInfoEXT;
18359
18360
18361
18362// VK_EXT_shader_atomic_float2 is a preprocessor guard. Do not pass it to API calls.
18363#define VK_EXT_shader_atomic_float2 1
18364#define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
18365#define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
18366typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
18367 VkStructureType sType;
18368 void* pNext;
18369 VkBool32 shaderBufferFloat16Atomics;
18370 VkBool32 shaderBufferFloat16AtomicAdd;
18371 VkBool32 shaderBufferFloat16AtomicMinMax;
18372 VkBool32 shaderBufferFloat32AtomicMinMax;
18373 VkBool32 shaderBufferFloat64AtomicMinMax;
18374 VkBool32 shaderSharedFloat16Atomics;
18375 VkBool32 shaderSharedFloat16AtomicAdd;
18376 VkBool32 shaderSharedFloat16AtomicMinMax;
18377 VkBool32 shaderSharedFloat32AtomicMinMax;
18378 VkBool32 shaderSharedFloat64AtomicMinMax;
18379 VkBool32 shaderImageFloat32AtomicMinMax;
18380 VkBool32 sparseImageFloat32AtomicMinMax;
18381} VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
18382
18383
18384
18385// VK_EXT_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
18386#define VK_EXT_surface_maintenance1 1
18387#define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
18388#define VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_surface_maintenance1"
18389typedef VkPresentScalingFlagBitsKHR VkPresentScalingFlagBitsEXT;
18390
18391typedef VkPresentScalingFlagsKHR VkPresentScalingFlagsEXT;
18392
18393typedef VkPresentGravityFlagBitsKHR VkPresentGravityFlagBitsEXT;
18394
18395typedef VkPresentGravityFlagsKHR VkPresentGravityFlagsEXT;
18396
18397typedef VkSurfacePresentModeKHR VkSurfacePresentModeEXT;
18398
18399typedef VkSurfacePresentScalingCapabilitiesKHR VkSurfacePresentScalingCapabilitiesEXT;
18400
18401typedef VkSurfacePresentModeCompatibilityKHR VkSurfacePresentModeCompatibilityEXT;
18402
18403
18404
18405// VK_EXT_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
18406#define VK_EXT_swapchain_maintenance1 1
18407#define VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
18408#define VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_swapchain_maintenance1"
18409typedef VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT;
18410
18411typedef VkSwapchainPresentFenceInfoKHR VkSwapchainPresentFenceInfoEXT;
18412
18413typedef VkSwapchainPresentModesCreateInfoKHR VkSwapchainPresentModesCreateInfoEXT;
18414
18415typedef VkSwapchainPresentModeInfoKHR VkSwapchainPresentModeInfoEXT;
18416
18417typedef VkSwapchainPresentScalingCreateInfoKHR VkSwapchainPresentScalingCreateInfoEXT;
18418
18419typedef VkReleaseSwapchainImagesInfoKHR VkReleaseSwapchainImagesInfoEXT;
18420
18421typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesEXT)(VkDevice device, const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
18422
18423#ifndef VK_NO_PROTOTYPES
18424#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18425VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesEXT(
18426 VkDevice device,
18427 const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
18428#endif
18429#endif
18430
18431
18432// VK_EXT_shader_demote_to_helper_invocation is a preprocessor guard. Do not pass it to API calls.
18433#define VK_EXT_shader_demote_to_helper_invocation 1
18434#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
18435#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
18436typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
18437
18438
18439
18440// VK_NV_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
18441#define VK_NV_device_generated_commands 1
18442VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
18443#define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
18444#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
18445
18446typedef enum VkIndirectCommandsTokenTypeNV {
18447 VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
18448 VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
18449 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
18450 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
18451 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
18452 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
18453 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
18454 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
18455 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_NV = 1000135000,
18456 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000,
18457 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = 1000428003,
18458 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = 1000428004,
18459 VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
18460} VkIndirectCommandsTokenTypeNV;
18461
18462typedef enum VkIndirectStateFlagBitsNV {
18463 VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
18464 VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18465} VkIndirectStateFlagBitsNV;
18466typedef VkFlags VkIndirectStateFlagsNV;
18467
18468typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
18469 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
18470 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
18471 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
18472 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18473} VkIndirectCommandsLayoutUsageFlagBitsNV;
18474typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
18475typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
18476 VkStructureType sType;
18477 void* pNext;
18478 uint32_t maxGraphicsShaderGroupCount;
18479 uint32_t maxIndirectSequenceCount;
18480 uint32_t maxIndirectCommandsTokenCount;
18481 uint32_t maxIndirectCommandsStreamCount;
18482 uint32_t maxIndirectCommandsTokenOffset;
18483 uint32_t maxIndirectCommandsStreamStride;
18484 uint32_t minSequencesCountBufferOffsetAlignment;
18485 uint32_t minSequencesIndexBufferOffsetAlignment;
18486 uint32_t minIndirectCommandsBufferOffsetAlignment;
18487} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
18488
18489typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
18490 VkStructureType sType;
18491 void* pNext;
18492 VkBool32 deviceGeneratedCommands;
18493} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
18494
18495typedef struct VkGraphicsShaderGroupCreateInfoNV {
18496 VkStructureType sType;
18497 const void* pNext;
18498 uint32_t stageCount;
18499 const VkPipelineShaderStageCreateInfo* pStages;
18500 const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
18501 const VkPipelineTessellationStateCreateInfo* pTessellationState;
18502} VkGraphicsShaderGroupCreateInfoNV;
18503
18504typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
18505 VkStructureType sType;
18506 const void* pNext;
18507 uint32_t groupCount;
18508 const VkGraphicsShaderGroupCreateInfoNV* pGroups;
18509 uint32_t pipelineCount;
18510 const VkPipeline* pPipelines;
18511} VkGraphicsPipelineShaderGroupsCreateInfoNV;
18512
18513typedef struct VkBindShaderGroupIndirectCommandNV {
18514 uint32_t groupIndex;
18515} VkBindShaderGroupIndirectCommandNV;
18516
18517typedef struct VkBindIndexBufferIndirectCommandNV {
18518 VkDeviceAddress bufferAddress;
18519 uint32_t size;
18520 VkIndexType indexType;
18521} VkBindIndexBufferIndirectCommandNV;
18522
18523typedef struct VkBindVertexBufferIndirectCommandNV {
18524 VkDeviceAddress bufferAddress;
18525 uint32_t size;
18526 uint32_t stride;
18527} VkBindVertexBufferIndirectCommandNV;
18528
18529typedef struct VkSetStateFlagsIndirectCommandNV {
18530 uint32_t data;
18531} VkSetStateFlagsIndirectCommandNV;
18532
18533typedef struct VkIndirectCommandsStreamNV {
18534 VkBuffer buffer;
18535 VkDeviceSize offset;
18536} VkIndirectCommandsStreamNV;
18537
18538typedef struct VkIndirectCommandsLayoutTokenNV {
18539 VkStructureType sType;
18540 const void* pNext;
18541 VkIndirectCommandsTokenTypeNV tokenType;
18542 uint32_t stream;
18543 uint32_t offset;
18544 uint32_t vertexBindingUnit;
18545 VkBool32 vertexDynamicStride;
18546 VkPipelineLayout pushconstantPipelineLayout;
18547 VkShaderStageFlags pushconstantShaderStageFlags;
18548 uint32_t pushconstantOffset;
18549 uint32_t pushconstantSize;
18550 VkIndirectStateFlagsNV indirectStateFlags;
18551 uint32_t indexTypeCount;
18552 const VkIndexType* pIndexTypes;
18553 const uint32_t* pIndexTypeValues;
18554} VkIndirectCommandsLayoutTokenNV;
18555
18556typedef struct VkIndirectCommandsLayoutCreateInfoNV {
18557 VkStructureType sType;
18558 const void* pNext;
18559 VkIndirectCommandsLayoutUsageFlagsNV flags;
18560 VkPipelineBindPoint pipelineBindPoint;
18561 uint32_t tokenCount;
18562 const VkIndirectCommandsLayoutTokenNV* pTokens;
18563 uint32_t streamCount;
18564 const uint32_t* pStreamStrides;
18565} VkIndirectCommandsLayoutCreateInfoNV;
18566
18567typedef struct VkGeneratedCommandsInfoNV {
18568 VkStructureType sType;
18569 const void* pNext;
18570 VkPipelineBindPoint pipelineBindPoint;
18571 VkPipeline pipeline;
18572 VkIndirectCommandsLayoutNV indirectCommandsLayout;
18573 uint32_t streamCount;
18574 const VkIndirectCommandsStreamNV* pStreams;
18575 uint32_t sequencesCount;
18576 VkBuffer preprocessBuffer;
18577 VkDeviceSize preprocessOffset;
18578 VkDeviceSize preprocessSize;
18579 VkBuffer sequencesCountBuffer;
18580 VkDeviceSize sequencesCountOffset;
18581 VkBuffer sequencesIndexBuffer;
18582 VkDeviceSize sequencesIndexOffset;
18583} VkGeneratedCommandsInfoNV;
18584
18585typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
18586 VkStructureType sType;
18587 const void* pNext;
18588 VkPipelineBindPoint pipelineBindPoint;
18589 VkPipeline pipeline;
18590 VkIndirectCommandsLayoutNV indirectCommandsLayout;
18591 uint32_t maxSequencesCount;
18592} VkGeneratedCommandsMemoryRequirementsInfoNV;
18593
18594typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
18595typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
18596typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
18597typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
18598typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
18599typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
18600
18601#ifndef VK_NO_PROTOTYPES
18602#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18603VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
18604 VkDevice device,
18605 const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
18606 VkMemoryRequirements2* pMemoryRequirements);
18607#endif
18608
18609#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18610VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
18611 VkCommandBuffer commandBuffer,
18612 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
18613#endif
18614
18615#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18616VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
18617 VkCommandBuffer commandBuffer,
18618 VkBool32 isPreprocessed,
18619 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
18620#endif
18621
18622#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18623VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
18624 VkCommandBuffer commandBuffer,
18625 VkPipelineBindPoint pipelineBindPoint,
18626 VkPipeline pipeline,
18627 uint32_t groupIndex);
18628#endif
18629
18630#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18631VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
18632 VkDevice device,
18633 const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
18634 const VkAllocationCallbacks* pAllocator,
18635 VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
18636#endif
18637
18638#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18639VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
18640 VkDevice device,
18641 VkIndirectCommandsLayoutNV indirectCommandsLayout,
18642 const VkAllocationCallbacks* pAllocator);
18643#endif
18644#endif
18645
18646
18647// VK_NV_inherited_viewport_scissor is a preprocessor guard. Do not pass it to API calls.
18648#define VK_NV_inherited_viewport_scissor 1
18649#define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
18650#define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
18651typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV {
18652 VkStructureType sType;
18653 void* pNext;
18654 VkBool32 inheritedViewportScissor2D;
18655} VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
18656
18657typedef struct VkCommandBufferInheritanceViewportScissorInfoNV {
18658 VkStructureType sType;
18659 const void* pNext;
18660 VkBool32 viewportScissor2D;
18661 uint32_t viewportDepthCount;
18662 const VkViewport* pViewportDepths;
18663} VkCommandBufferInheritanceViewportScissorInfoNV;
18664
18665
18666
18667// VK_EXT_texel_buffer_alignment is a preprocessor guard. Do not pass it to API calls.
18668#define VK_EXT_texel_buffer_alignment 1
18669#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
18670#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
18671typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
18672 VkStructureType sType;
18673 void* pNext;
18674 VkBool32 texelBufferAlignment;
18675} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
18676
18677typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
18678
18679
18680
18681// VK_QCOM_render_pass_transform is a preprocessor guard. Do not pass it to API calls.
18682#define VK_QCOM_render_pass_transform 1
18683#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 5
18684#define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
18685typedef struct VkRenderPassTransformBeginInfoQCOM {
18686 VkStructureType sType;
18687 const void* pNext;
18688 VkSurfaceTransformFlagBitsKHR transform;
18689} VkRenderPassTransformBeginInfoQCOM;
18690
18691typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
18692 VkStructureType sType;
18693 const void* pNext;
18694 VkSurfaceTransformFlagBitsKHR transform;
18695 VkRect2D renderArea;
18696} VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
18697
18698
18699
18700// VK_EXT_depth_bias_control is a preprocessor guard. Do not pass it to API calls.
18701#define VK_EXT_depth_bias_control 1
18702#define VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION 1
18703#define VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME "VK_EXT_depth_bias_control"
18704
18705typedef enum VkDepthBiasRepresentationEXT {
18706 VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = 0,
18707 VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = 1,
18708 VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = 2,
18709 VK_DEPTH_BIAS_REPRESENTATION_MAX_ENUM_EXT = 0x7FFFFFFF
18710} VkDepthBiasRepresentationEXT;
18711typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT {
18712 VkStructureType sType;
18713 void* pNext;
18714 VkBool32 depthBiasControl;
18715 VkBool32 leastRepresentableValueForceUnormRepresentation;
18716 VkBool32 floatRepresentation;
18717 VkBool32 depthBiasExact;
18718} VkPhysicalDeviceDepthBiasControlFeaturesEXT;
18719
18720typedef struct VkDepthBiasInfoEXT {
18721 VkStructureType sType;
18722 const void* pNext;
18723 float depthBiasConstantFactor;
18724 float depthBiasClamp;
18725 float depthBiasSlopeFactor;
18726} VkDepthBiasInfoEXT;
18727
18728typedef struct VkDepthBiasRepresentationInfoEXT {
18729 VkStructureType sType;
18730 const void* pNext;
18731 VkDepthBiasRepresentationEXT depthBiasRepresentation;
18732 VkBool32 depthBiasExact;
18733} VkDepthBiasRepresentationInfoEXT;
18734
18735typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias2EXT)(VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT* pDepthBiasInfo);
18736
18737#ifndef VK_NO_PROTOTYPES
18738#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18739VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias2EXT(
18740 VkCommandBuffer commandBuffer,
18741 const VkDepthBiasInfoEXT* pDepthBiasInfo);
18742#endif
18743#endif
18744
18745
18746// VK_EXT_device_memory_report is a preprocessor guard. Do not pass it to API calls.
18747#define VK_EXT_device_memory_report 1
18748#define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
18749#define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
18750
18751typedef enum VkDeviceMemoryReportEventTypeEXT {
18752 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
18753 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
18754 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
18755 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
18756 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
18757 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
18758} VkDeviceMemoryReportEventTypeEXT;
18759typedef VkFlags VkDeviceMemoryReportFlagsEXT;
18760typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
18761 VkStructureType sType;
18762 void* pNext;
18763 VkBool32 deviceMemoryReport;
18764} VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
18765
18766typedef struct VkDeviceMemoryReportCallbackDataEXT {
18767 VkStructureType sType;
18768 void* pNext;
18769 VkDeviceMemoryReportFlagsEXT flags;
18770 VkDeviceMemoryReportEventTypeEXT type;
18771 uint64_t memoryObjectId;
18772 VkDeviceSize size;
18773 VkObjectType objectType;
18774 uint64_t objectHandle;
18775 uint32_t heapIndex;
18776} VkDeviceMemoryReportCallbackDataEXT;
18777
18778typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
18779 const VkDeviceMemoryReportCallbackDataEXT* pCallbackData,
18780 void* pUserData);
18781
18782typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
18783 VkStructureType sType;
18784 const void* pNext;
18785 VkDeviceMemoryReportFlagsEXT flags;
18786 PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback;
18787 void* pUserData;
18788} VkDeviceDeviceMemoryReportCreateInfoEXT;
18789
18790
18791
18792// VK_EXT_acquire_drm_display is a preprocessor guard. Do not pass it to API calls.
18793#define VK_EXT_acquire_drm_display 1
18794#define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
18795#define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
18796typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
18797typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
18798
18799#ifndef VK_NO_PROTOTYPES
18800#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18801VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT(
18802 VkPhysicalDevice physicalDevice,
18803 int32_t drmFd,
18804 VkDisplayKHR display);
18805#endif
18806
18807#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18808VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT(
18809 VkPhysicalDevice physicalDevice,
18810 int32_t drmFd,
18811 uint32_t connectorId,
18812 VkDisplayKHR* display);
18813#endif
18814#endif
18815
18816
18817// VK_EXT_robustness2 is a preprocessor guard. Do not pass it to API calls.
18818#define VK_EXT_robustness2 1
18819#define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1
18820#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
18821typedef VkPhysicalDeviceRobustness2FeaturesKHR VkPhysicalDeviceRobustness2FeaturesEXT;
18822
18823typedef VkPhysicalDeviceRobustness2PropertiesKHR VkPhysicalDeviceRobustness2PropertiesEXT;
18824
18825
18826
18827// VK_EXT_custom_border_color is a preprocessor guard. Do not pass it to API calls.
18828#define VK_EXT_custom_border_color 1
18829#define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
18830#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
18831typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
18832 VkStructureType sType;
18833 void* pNext;
18834 uint32_t maxCustomBorderColorSamplers;
18835} VkPhysicalDeviceCustomBorderColorPropertiesEXT;
18836
18837typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
18838 VkStructureType sType;
18839 void* pNext;
18840 VkBool32 customBorderColors;
18841 VkBool32 customBorderColorWithoutFormat;
18842} VkPhysicalDeviceCustomBorderColorFeaturesEXT;
18843
18844
18845
18846// VK_EXT_texture_compression_astc_3d is a preprocessor guard. Do not pass it to API calls.
18847#define VK_EXT_texture_compression_astc_3d 1
18848#define VK_EXT_TEXTURE_COMPRESSION_ASTC_3D_SPEC_VERSION 1
18849#define VK_EXT_TEXTURE_COMPRESSION_ASTC_3D_EXTENSION_NAME "VK_EXT_texture_compression_astc_3d"
18850typedef struct VkPhysicalDeviceTextureCompressionASTC3DFeaturesEXT {
18851 VkStructureType sType;
18852 void* pNext;
18853 VkBool32 textureCompressionASTC_3D;
18854} VkPhysicalDeviceTextureCompressionASTC3DFeaturesEXT;
18855
18856
18857
18858// VK_GOOGLE_user_type is a preprocessor guard. Do not pass it to API calls.
18859#define VK_GOOGLE_user_type 1
18860#define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1
18861#define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
18862
18863
18864// VK_NV_present_barrier is a preprocessor guard. Do not pass it to API calls.
18865#define VK_NV_present_barrier 1
18866#define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1
18867#define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier"
18868typedef struct VkPhysicalDevicePresentBarrierFeaturesNV {
18869 VkStructureType sType;
18870 void* pNext;
18871 VkBool32 presentBarrier;
18872} VkPhysicalDevicePresentBarrierFeaturesNV;
18873
18874typedef struct VkSurfaceCapabilitiesPresentBarrierNV {
18875 VkStructureType sType;
18876 void* pNext;
18877 VkBool32 presentBarrierSupported;
18878} VkSurfaceCapabilitiesPresentBarrierNV;
18879
18880typedef struct VkSwapchainPresentBarrierCreateInfoNV {
18881 VkStructureType sType;
18882 void* pNext;
18883 VkBool32 presentBarrierEnable;
18884} VkSwapchainPresentBarrierCreateInfoNV;
18885
18886
18887
18888// VK_EXT_private_data is a preprocessor guard. Do not pass it to API calls.
18889#define VK_EXT_private_data 1
18890typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
18891
18892#define VK_EXT_PRIVATE_DATA_SPEC_VERSION 1
18893#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
18894typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
18895
18896typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
18897
18898typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
18899
18900typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
18901
18902typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
18903typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
18904typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
18905typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
18906
18907#ifndef VK_NO_PROTOTYPES
18908#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18909VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
18910 VkDevice device,
18911 const VkPrivateDataSlotCreateInfo* pCreateInfo,
18912 const VkAllocationCallbacks* pAllocator,
18913 VkPrivateDataSlot* pPrivateDataSlot);
18914#endif
18915
18916#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18917VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
18918 VkDevice device,
18919 VkPrivateDataSlot privateDataSlot,
18920 const VkAllocationCallbacks* pAllocator);
18921#endif
18922
18923#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18924VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
18925 VkDevice device,
18926 VkObjectType objectType,
18927 uint64_t objectHandle,
18928 VkPrivateDataSlot privateDataSlot,
18929 uint64_t data);
18930#endif
18931
18932#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18933VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
18934 VkDevice device,
18935 VkObjectType objectType,
18936 uint64_t objectHandle,
18937 VkPrivateDataSlot privateDataSlot,
18938 uint64_t* pData);
18939#endif
18940#endif
18941
18942
18943// VK_EXT_pipeline_creation_cache_control is a preprocessor guard. Do not pass it to API calls.
18944#define VK_EXT_pipeline_creation_cache_control 1
18945#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
18946#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
18947typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
18948
18949
18950
18951// VK_NV_device_diagnostics_config is a preprocessor guard. Do not pass it to API calls.
18952#define VK_NV_device_diagnostics_config 1
18953#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
18954#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
18955
18956typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
18957 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
18958 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
18959 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
18960 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008,
18961 VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18962} VkDeviceDiagnosticsConfigFlagBitsNV;
18963typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
18964typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
18965 VkStructureType sType;
18966 void* pNext;
18967 VkBool32 diagnosticsConfig;
18968} VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
18969
18970typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
18971 VkStructureType sType;
18972 const void* pNext;
18973 VkDeviceDiagnosticsConfigFlagsNV flags;
18974} VkDeviceDiagnosticsConfigCreateInfoNV;
18975
18976
18977
18978// VK_QCOM_render_pass_store_ops is a preprocessor guard. Do not pass it to API calls.
18979#define VK_QCOM_render_pass_store_ops 1
18980#define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
18981#define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
18982
18983
18984// VK_QCOM_tile_shading is a preprocessor guard. Do not pass it to API calls.
18985#define VK_QCOM_tile_shading 1
18986#define VK_QCOM_TILE_SHADING_SPEC_VERSION 2
18987#define VK_QCOM_TILE_SHADING_EXTENSION_NAME "VK_QCOM_tile_shading"
18988
18989typedef enum VkTileShadingRenderPassFlagBitsQCOM {
18990 VK_TILE_SHADING_RENDER_PASS_ENABLE_BIT_QCOM = 0x00000001,
18991 VK_TILE_SHADING_RENDER_PASS_PER_TILE_EXECUTION_BIT_QCOM = 0x00000002,
18992 VK_TILE_SHADING_RENDER_PASS_FLAG_BITS_MAX_ENUM_QCOM = 0x7FFFFFFF
18993} VkTileShadingRenderPassFlagBitsQCOM;
18994typedef VkFlags VkTileShadingRenderPassFlagsQCOM;
18995typedef struct VkPhysicalDeviceTileShadingFeaturesQCOM {
18996 VkStructureType sType;
18997 void* pNext;
18998 VkBool32 tileShading;
18999 VkBool32 tileShadingFragmentStage;
19000 VkBool32 tileShadingColorAttachments;
19001 VkBool32 tileShadingDepthAttachments;
19002 VkBool32 tileShadingStencilAttachments;
19003 VkBool32 tileShadingInputAttachments;
19004 VkBool32 tileShadingSampledAttachments;
19005 VkBool32 tileShadingPerTileDraw;
19006 VkBool32 tileShadingPerTileDispatch;
19007 VkBool32 tileShadingDispatchTile;
19008 VkBool32 tileShadingApron;
19009 VkBool32 tileShadingAnisotropicApron;
19010 VkBool32 tileShadingAtomicOps;
19011 VkBool32 tileShadingImageProcessing;
19012} VkPhysicalDeviceTileShadingFeaturesQCOM;
19013
19014typedef struct VkPhysicalDeviceTileShadingPropertiesQCOM {
19015 VkStructureType sType;
19016 void* pNext;
19017 uint32_t maxApronSize;
19018 VkBool32 preferNonCoherent;
19019 VkExtent2D tileGranularity;
19020 VkExtent2D maxTileShadingRate;
19021} VkPhysicalDeviceTileShadingPropertiesQCOM;
19022
19023typedef struct VkRenderPassTileShadingCreateInfoQCOM {
19024 VkStructureType sType;
19025 const void* pNext;
19026 VkTileShadingRenderPassFlagsQCOM flags;
19027 VkExtent2D tileApronSize;
19028} VkRenderPassTileShadingCreateInfoQCOM;
19029
19030typedef struct VkPerTileBeginInfoQCOM {
19031 VkStructureType sType;
19032 const void* pNext;
19033} VkPerTileBeginInfoQCOM;
19034
19035typedef struct VkPerTileEndInfoQCOM {
19036 VkStructureType sType;
19037 const void* pNext;
19038} VkPerTileEndInfoQCOM;
19039
19040typedef struct VkDispatchTileInfoQCOM {
19041 VkStructureType sType;
19042 const void* pNext;
19043} VkDispatchTileInfoQCOM;
19044
19045typedef void (VKAPI_PTR *PFN_vkCmdDispatchTileQCOM)(VkCommandBuffer commandBuffer, const VkDispatchTileInfoQCOM* pDispatchTileInfo);
19046typedef void (VKAPI_PTR *PFN_vkCmdBeginPerTileExecutionQCOM)(VkCommandBuffer commandBuffer, const VkPerTileBeginInfoQCOM* pPerTileBeginInfo);
19047typedef void (VKAPI_PTR *PFN_vkCmdEndPerTileExecutionQCOM)(VkCommandBuffer commandBuffer, const VkPerTileEndInfoQCOM* pPerTileEndInfo);
19048
19049#ifndef VK_NO_PROTOTYPES
19050#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19051VKAPI_ATTR void VKAPI_CALL vkCmdDispatchTileQCOM(
19052 VkCommandBuffer commandBuffer,
19053 const VkDispatchTileInfoQCOM* pDispatchTileInfo);
19054#endif
19055
19056#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19057VKAPI_ATTR void VKAPI_CALL vkCmdBeginPerTileExecutionQCOM(
19058 VkCommandBuffer commandBuffer,
19059 const VkPerTileBeginInfoQCOM* pPerTileBeginInfo);
19060#endif
19061
19062#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19063VKAPI_ATTR void VKAPI_CALL vkCmdEndPerTileExecutionQCOM(
19064 VkCommandBuffer commandBuffer,
19065 const VkPerTileEndInfoQCOM* pPerTileEndInfo);
19066#endif
19067#endif
19068
19069
19070// VK_NV_low_latency is a preprocessor guard. Do not pass it to API calls.
19071#define VK_NV_low_latency 1
19072#define VK_NV_LOW_LATENCY_SPEC_VERSION 1
19073#define VK_NV_LOW_LATENCY_EXTENSION_NAME "VK_NV_low_latency"
19074typedef struct VkQueryLowLatencySupportNV {
19075 VkStructureType sType;
19076 const void* pNext;
19077 void* pQueriedLowLatencyData;
19078} VkQueryLowLatencySupportNV;
19079
19080
19081
19082// VK_EXT_descriptor_buffer is a preprocessor guard. Do not pass it to API calls.
19083#define VK_EXT_descriptor_buffer 1
19084VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
19085#define VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION 1
19086#define VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME "VK_EXT_descriptor_buffer"
19087typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT {
19088 VkStructureType sType;
19089 void* pNext;
19090 VkBool32 combinedImageSamplerDescriptorSingleArray;
19091 VkBool32 bufferlessPushDescriptors;
19092 VkBool32 allowSamplerImageViewPostSubmitCreation;
19093 VkDeviceSize descriptorBufferOffsetAlignment;
19094 uint32_t maxDescriptorBufferBindings;
19095 uint32_t maxResourceDescriptorBufferBindings;
19096 uint32_t maxSamplerDescriptorBufferBindings;
19097 uint32_t maxEmbeddedImmutableSamplerBindings;
19098 uint32_t maxEmbeddedImmutableSamplers;
19099 size_t bufferCaptureReplayDescriptorDataSize;
19100 size_t imageCaptureReplayDescriptorDataSize;
19101 size_t imageViewCaptureReplayDescriptorDataSize;
19102 size_t samplerCaptureReplayDescriptorDataSize;
19103 size_t accelerationStructureCaptureReplayDescriptorDataSize;
19104 size_t samplerDescriptorSize;
19105 size_t combinedImageSamplerDescriptorSize;
19106 size_t sampledImageDescriptorSize;
19107 size_t storageImageDescriptorSize;
19108 size_t uniformTexelBufferDescriptorSize;
19109 size_t robustUniformTexelBufferDescriptorSize;
19110 size_t storageTexelBufferDescriptorSize;
19111 size_t robustStorageTexelBufferDescriptorSize;
19112 size_t uniformBufferDescriptorSize;
19113 size_t robustUniformBufferDescriptorSize;
19114 size_t storageBufferDescriptorSize;
19115 size_t robustStorageBufferDescriptorSize;
19116 size_t inputAttachmentDescriptorSize;
19117 size_t accelerationStructureDescriptorSize;
19118 VkDeviceSize maxSamplerDescriptorBufferRange;
19119 VkDeviceSize maxResourceDescriptorBufferRange;
19120 VkDeviceSize samplerDescriptorBufferAddressSpaceSize;
19121 VkDeviceSize resourceDescriptorBufferAddressSpaceSize;
19122 VkDeviceSize descriptorBufferAddressSpaceSize;
19123} VkPhysicalDeviceDescriptorBufferPropertiesEXT;
19124
19125typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
19126 VkStructureType sType;
19127 void* pNext;
19128 size_t combinedImageSamplerDensityMapDescriptorSize;
19129} VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
19130
19131typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT {
19132 VkStructureType sType;
19133 void* pNext;
19134 VkBool32 descriptorBuffer;
19135 VkBool32 descriptorBufferCaptureReplay;
19136 VkBool32 descriptorBufferImageLayoutIgnored;
19137 VkBool32 descriptorBufferPushDescriptors;
19138} VkPhysicalDeviceDescriptorBufferFeaturesEXT;
19139
19140typedef struct VkDescriptorAddressInfoEXT {
19141 VkStructureType sType;
19142 void* pNext;
19143 VkDeviceAddress address;
19144 VkDeviceSize range;
19145 VkFormat format;
19146} VkDescriptorAddressInfoEXT;
19147
19148typedef struct VkDescriptorBufferBindingInfoEXT {
19149 VkStructureType sType;
19150 const void* pNext;
19151 VkDeviceAddress address;
19152 VkBufferUsageFlags usage;
19153} VkDescriptorBufferBindingInfoEXT;
19154
19155typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT {
19156 VkStructureType sType;
19157 const void* pNext;
19158 VkBuffer buffer;
19159} VkDescriptorBufferBindingPushDescriptorBufferHandleEXT;
19160
19161typedef union VkDescriptorDataEXT {
19162 const VkSampler* pSampler;
19163 const VkDescriptorImageInfo* pCombinedImageSampler;
19164 const VkDescriptorImageInfo* pInputAttachmentImage;
19165 const VkDescriptorImageInfo* pSampledImage;
19166 const VkDescriptorImageInfo* pStorageImage;
19167 const VkDescriptorAddressInfoEXT* pUniformTexelBuffer;
19168 const VkDescriptorAddressInfoEXT* pStorageTexelBuffer;
19169 const VkDescriptorAddressInfoEXT* pUniformBuffer;
19170 const VkDescriptorAddressInfoEXT* pStorageBuffer;
19171 VkDeviceAddress accelerationStructure;
19172} VkDescriptorDataEXT;
19173
19174typedef struct VkDescriptorGetInfoEXT {
19175 VkStructureType sType;
19176 const void* pNext;
19177 VkDescriptorType type;
19178 VkDescriptorDataEXT data;
19179} VkDescriptorGetInfoEXT;
19180
19181typedef struct VkBufferCaptureDescriptorDataInfoEXT {
19182 VkStructureType sType;
19183 const void* pNext;
19184 VkBuffer buffer;
19185} VkBufferCaptureDescriptorDataInfoEXT;
19186
19187typedef struct VkImageCaptureDescriptorDataInfoEXT {
19188 VkStructureType sType;
19189 const void* pNext;
19190 VkImage image;
19191} VkImageCaptureDescriptorDataInfoEXT;
19192
19193typedef struct VkImageViewCaptureDescriptorDataInfoEXT {
19194 VkStructureType sType;
19195 const void* pNext;
19196 VkImageView imageView;
19197} VkImageViewCaptureDescriptorDataInfoEXT;
19198
19199typedef struct VkSamplerCaptureDescriptorDataInfoEXT {
19200 VkStructureType sType;
19201 const void* pNext;
19202 VkSampler sampler;
19203} VkSamplerCaptureDescriptorDataInfoEXT;
19204
19205typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT {
19206 VkStructureType sType;
19207 const void* pNext;
19208 const void* opaqueCaptureDescriptorData;
19209} VkOpaqueCaptureDescriptorDataCreateInfoEXT;
19210
19211typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT {
19212 VkStructureType sType;
19213 const void* pNext;
19214 VkAccelerationStructureKHR accelerationStructure;
19215 VkAccelerationStructureNV accelerationStructureNV;
19216} VkAccelerationStructureCaptureDescriptorDataInfoEXT;
19217
19218typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSizeEXT)(VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes);
19219typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset);
19220typedef void (VKAPI_PTR *PFN_vkGetDescriptorEXT)(VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor);
19221typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
19222typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsetsEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const uint32_t* pBufferIndices, const VkDeviceSize* pOffsets);
19223typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set);
19224typedef VkResult (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData);
19225typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData);
19226typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData);
19227typedef VkResult (VKAPI_PTR *PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData);
19228typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData);
19229
19230#ifndef VK_NO_PROTOTYPES
19231#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19232VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT(
19233 VkDevice device,
19234 VkDescriptorSetLayout layout,
19235 VkDeviceSize* pLayoutSizeInBytes);
19236#endif
19237
19238#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19239VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutBindingOffsetEXT(
19240 VkDevice device,
19241 VkDescriptorSetLayout layout,
19242 uint32_t binding,
19243 VkDeviceSize* pOffset);
19244#endif
19245
19246#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19247VKAPI_ATTR void VKAPI_CALL vkGetDescriptorEXT(
19248 VkDevice device,
19249 const VkDescriptorGetInfoEXT* pDescriptorInfo,
19250 size_t dataSize,
19251 void* pDescriptor);
19252#endif
19253
19254#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19255VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBuffersEXT(
19256 VkCommandBuffer commandBuffer,
19257 uint32_t bufferCount,
19258 const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
19259#endif
19260
19261#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19262VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsetsEXT(
19263 VkCommandBuffer commandBuffer,
19264 VkPipelineBindPoint pipelineBindPoint,
19265 VkPipelineLayout layout,
19266 uint32_t firstSet,
19267 uint32_t setCount,
19268 const uint32_t* pBufferIndices,
19269 const VkDeviceSize* pOffsets);
19270#endif
19271
19272#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19273VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
19274 VkCommandBuffer commandBuffer,
19275 VkPipelineBindPoint pipelineBindPoint,
19276 VkPipelineLayout layout,
19277 uint32_t set);
19278#endif
19279
19280#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19281VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferOpaqueCaptureDescriptorDataEXT(
19282 VkDevice device,
19283 const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
19284 void* pData);
19285#endif
19286
19287#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19288VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDescriptorDataEXT(
19289 VkDevice device,
19290 const VkImageCaptureDescriptorDataInfoEXT* pInfo,
19291 void* pData);
19292#endif
19293
19294#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19295VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT(
19296 VkDevice device,
19297 const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
19298 void* pData);
19299#endif
19300
19301#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19302VKAPI_ATTR VkResult VKAPI_CALL vkGetSamplerOpaqueCaptureDescriptorDataEXT(
19303 VkDevice device,
19304 const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
19305 void* pData);
19306#endif
19307
19308#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19309VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
19310 VkDevice device,
19311 const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
19312 void* pData);
19313#endif
19314#endif
19315
19316
19317// VK_EXT_graphics_pipeline_library is a preprocessor guard. Do not pass it to API calls.
19318#define VK_EXT_graphics_pipeline_library 1
19319#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
19320#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
19321
19322typedef enum VkGraphicsPipelineLibraryFlagBitsEXT {
19323 VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001,
19324 VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002,
19325 VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004,
19326 VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008,
19327 VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19328} VkGraphicsPipelineLibraryFlagBitsEXT;
19329typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT;
19330typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
19331 VkStructureType sType;
19332 void* pNext;
19333 VkBool32 graphicsPipelineLibrary;
19334} VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
19335
19336typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
19337 VkStructureType sType;
19338 void* pNext;
19339 VkBool32 graphicsPipelineLibraryFastLinking;
19340 VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration;
19341} VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
19342
19343typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {
19344 VkStructureType sType;
19345 const void* pNext;
19346 VkGraphicsPipelineLibraryFlagsEXT flags;
19347} VkGraphicsPipelineLibraryCreateInfoEXT;
19348
19349
19350
19351// VK_AMD_shader_early_and_late_fragment_tests is a preprocessor guard. Do not pass it to API calls.
19352#define VK_AMD_shader_early_and_late_fragment_tests 1
19353#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
19354#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
19355typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
19356 VkStructureType sType;
19357 void* pNext;
19358 VkBool32 shaderEarlyAndLateFragmentTests;
19359} VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
19360
19361
19362
19363// VK_NV_fragment_shading_rate_enums is a preprocessor guard. Do not pass it to API calls.
19364#define VK_NV_fragment_shading_rate_enums 1
19365#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
19366#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
19367
19368typedef enum VkFragmentShadingRateTypeNV {
19369 VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0,
19370 VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1,
19371 VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
19372} VkFragmentShadingRateTypeNV;
19373
19374typedef enum VkFragmentShadingRateNV {
19375 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0,
19376 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
19377 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
19378 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
19379 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
19380 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
19381 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
19382 VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11,
19383 VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12,
19384 VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13,
19385 VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14,
19386 VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15,
19387 VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF
19388} VkFragmentShadingRateNV;
19389typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
19390 VkStructureType sType;
19391 void* pNext;
19392 VkBool32 fragmentShadingRateEnums;
19393 VkBool32 supersampleFragmentShadingRates;
19394 VkBool32 noInvocationFragmentShadingRates;
19395} VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
19396
19397typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
19398 VkStructureType sType;
19399 void* pNext;
19400 VkSampleCountFlagBits maxFragmentShadingRateInvocationCount;
19401} VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
19402
19403typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV {
19404 VkStructureType sType;
19405 const void* pNext;
19406 VkFragmentShadingRateTypeNV shadingRateType;
19407 VkFragmentShadingRateNV shadingRate;
19408 VkFragmentShadingRateCombinerOpKHR combinerOps[2];
19409} VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
19410
19411typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
19412
19413#ifndef VK_NO_PROTOTYPES
19414#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19415VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV(
19416 VkCommandBuffer commandBuffer,
19417 VkFragmentShadingRateNV shadingRate,
19418 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
19419#endif
19420#endif
19421
19422
19423// VK_NV_ray_tracing_motion_blur is a preprocessor guard. Do not pass it to API calls.
19424#define VK_NV_ray_tracing_motion_blur 1
19425#define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
19426#define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
19427
19428typedef enum VkAccelerationStructureMotionInstanceTypeNV {
19429 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
19430 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
19431 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2,
19432 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
19433} VkAccelerationStructureMotionInstanceTypeNV;
19434typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV;
19435typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV;
19436typedef union VkDeviceOrHostAddressConstKHR {
19437 VkDeviceAddress deviceAddress;
19438 const void* hostAddress;
19439} VkDeviceOrHostAddressConstKHR;
19440
19441typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV {
19442 VkStructureType sType;
19443 const void* pNext;
19444 VkDeviceOrHostAddressConstKHR vertexData;
19445} VkAccelerationStructureGeometryMotionTrianglesDataNV;
19446
19447typedef struct VkAccelerationStructureMotionInfoNV {
19448 VkStructureType sType;
19449 const void* pNext;
19450 uint32_t maxInstances;
19451 VkAccelerationStructureMotionInfoFlagsNV flags;
19452} VkAccelerationStructureMotionInfoNV;
19453
19454typedef struct VkAccelerationStructureMatrixMotionInstanceNV {
19455 VkTransformMatrixKHR transformT0;
19456 VkTransformMatrixKHR transformT1;
19457 uint32_t instanceCustomIndex:24;
19458 uint32_t mask:8;
19459 uint32_t instanceShaderBindingTableRecordOffset:24;
19460 VkGeometryInstanceFlagsKHR flags:8;
19461 uint64_t accelerationStructureReference;
19462} VkAccelerationStructureMatrixMotionInstanceNV;
19463
19464typedef struct VkSRTDataNV {
19465 float sx;
19466 float a;
19467 float b;
19468 float pvx;
19469 float sy;
19470 float c;
19471 float pvy;
19472 float sz;
19473 float pvz;
19474 float qx;
19475 float qy;
19476 float qz;
19477 float qw;
19478 float tx;
19479 float ty;
19480 float tz;
19481} VkSRTDataNV;
19482
19483typedef struct VkAccelerationStructureSRTMotionInstanceNV {
19484 VkSRTDataNV transformT0;
19485 VkSRTDataNV transformT1;
19486 uint32_t instanceCustomIndex:24;
19487 uint32_t mask:8;
19488 uint32_t instanceShaderBindingTableRecordOffset:24;
19489 VkGeometryInstanceFlagsKHR flags:8;
19490 uint64_t accelerationStructureReference;
19491} VkAccelerationStructureSRTMotionInstanceNV;
19492
19493typedef union VkAccelerationStructureMotionInstanceDataNV {
19494 VkAccelerationStructureInstanceKHR staticInstance;
19495 VkAccelerationStructureMatrixMotionInstanceNV matrixMotionInstance;
19496 VkAccelerationStructureSRTMotionInstanceNV srtMotionInstance;
19497} VkAccelerationStructureMotionInstanceDataNV;
19498
19499typedef struct VkAccelerationStructureMotionInstanceNV {
19500 VkAccelerationStructureMotionInstanceTypeNV type;
19501 VkAccelerationStructureMotionInstanceFlagsNV flags;
19502 VkAccelerationStructureMotionInstanceDataNV data;
19503} VkAccelerationStructureMotionInstanceNV;
19504
19505typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
19506 VkStructureType sType;
19507 void* pNext;
19508 VkBool32 rayTracingMotionBlur;
19509 VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect;
19510} VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
19511
19512
19513
19514// VK_EXT_ycbcr_2plane_444_formats is a preprocessor guard. Do not pass it to API calls.
19515#define VK_EXT_ycbcr_2plane_444_formats 1
19516#define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
19517#define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
19518typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
19519 VkStructureType sType;
19520 void* pNext;
19521 VkBool32 ycbcr2plane444Formats;
19522} VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
19523
19524
19525
19526// VK_EXT_fragment_density_map2 is a preprocessor guard. Do not pass it to API calls.
19527#define VK_EXT_fragment_density_map2 1
19528#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
19529#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
19530typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
19531 VkStructureType sType;
19532 void* pNext;
19533 VkBool32 fragmentDensityMapDeferred;
19534} VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
19535
19536typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
19537 VkStructureType sType;
19538 void* pNext;
19539 VkBool32 subsampledLoads;
19540 VkBool32 subsampledCoarseReconstructionEarlyAccess;
19541 uint32_t maxSubsampledArrayLayers;
19542 uint32_t maxDescriptorSetSubsampledSamplers;
19543} VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
19544
19545
19546
19547// VK_QCOM_rotated_copy_commands is a preprocessor guard. Do not pass it to API calls.
19548#define VK_QCOM_rotated_copy_commands 1
19549#define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 2
19550#define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
19551typedef struct VkCopyCommandTransformInfoQCOM {
19552 VkStructureType sType;
19553 const void* pNext;
19554 VkSurfaceTransformFlagBitsKHR transform;
19555} VkCopyCommandTransformInfoQCOM;
19556
19557
19558
19559// VK_EXT_image_robustness is a preprocessor guard. Do not pass it to API calls.
19560#define VK_EXT_image_robustness 1
19561#define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
19562#define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
19563typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT;
19564
19565
19566
19567// VK_EXT_image_compression_control is a preprocessor guard. Do not pass it to API calls.
19568#define VK_EXT_image_compression_control 1
19569#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
19570#define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
19571
19572typedef enum VkImageCompressionFlagBitsEXT {
19573 VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0,
19574 VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001,
19575 VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002,
19576 VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004,
19577 VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19578} VkImageCompressionFlagBitsEXT;
19579typedef VkFlags VkImageCompressionFlagsEXT;
19580
19581typedef enum VkImageCompressionFixedRateFlagBitsEXT {
19582 VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0,
19583 VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001,
19584 VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002,
19585 VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004,
19586 VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008,
19587 VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010,
19588 VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020,
19589 VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040,
19590 VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080,
19591 VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100,
19592 VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200,
19593 VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400,
19594 VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800,
19595 VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000,
19596 VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000,
19597 VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000,
19598 VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000,
19599 VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000,
19600 VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000,
19601 VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000,
19602 VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000,
19603 VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000,
19604 VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000,
19605 VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000,
19606 VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000,
19607 VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19608} VkImageCompressionFixedRateFlagBitsEXT;
19609typedef VkFlags VkImageCompressionFixedRateFlagsEXT;
19610typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT {
19611 VkStructureType sType;
19612 void* pNext;
19613 VkBool32 imageCompressionControl;
19614} VkPhysicalDeviceImageCompressionControlFeaturesEXT;
19615
19616typedef struct VkImageCompressionControlEXT {
19617 VkStructureType sType;
19618 const void* pNext;
19619 VkImageCompressionFlagsEXT flags;
19620 uint32_t compressionControlPlaneCount;
19621 VkImageCompressionFixedRateFlagsEXT* pFixedRateFlags;
19622} VkImageCompressionControlEXT;
19623
19624typedef struct VkImageCompressionPropertiesEXT {
19625 VkStructureType sType;
19626 void* pNext;
19627 VkImageCompressionFlagsEXT imageCompressionFlags;
19628 VkImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags;
19629} VkImageCompressionPropertiesEXT;
19630
19631
19632
19633// VK_EXT_attachment_feedback_loop_layout is a preprocessor guard. Do not pass it to API calls.
19634#define VK_EXT_attachment_feedback_loop_layout 1
19635#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2
19636#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout"
19637typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
19638 VkStructureType sType;
19639 void* pNext;
19640 VkBool32 attachmentFeedbackLoopLayout;
19641} VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
19642
19643
19644
19645// VK_EXT_4444_formats is a preprocessor guard. Do not pass it to API calls.
19646#define VK_EXT_4444_formats 1
19647#define VK_EXT_4444_FORMATS_SPEC_VERSION 1
19648#define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
19649typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
19650 VkStructureType sType;
19651 void* pNext;
19652 VkBool32 formatA4R4G4B4;
19653 VkBool32 formatA4B4G4R4;
19654} VkPhysicalDevice4444FormatsFeaturesEXT;
19655
19656
19657
19658// VK_EXT_device_fault is a preprocessor guard. Do not pass it to API calls.
19659#define VK_EXT_device_fault 1
19660#define VK_EXT_DEVICE_FAULT_SPEC_VERSION 2
19661#define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault"
19662
19663typedef enum VkDeviceFaultAddressTypeEXT {
19664 VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0,
19665 VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1,
19666 VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2,
19667 VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3,
19668 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4,
19669 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5,
19670 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6,
19671 VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
19672} VkDeviceFaultAddressTypeEXT;
19673
19674typedef enum VkDeviceFaultVendorBinaryHeaderVersionEXT {
19675 VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1,
19676 VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
19677} VkDeviceFaultVendorBinaryHeaderVersionEXT;
19678typedef struct VkPhysicalDeviceFaultFeaturesEXT {
19679 VkStructureType sType;
19680 void* pNext;
19681 VkBool32 deviceFault;
19682 VkBool32 deviceFaultVendorBinary;
19683} VkPhysicalDeviceFaultFeaturesEXT;
19684
19685typedef struct VkDeviceFaultCountsEXT {
19686 VkStructureType sType;
19687 void* pNext;
19688 uint32_t addressInfoCount;
19689 uint32_t vendorInfoCount;
19690 VkDeviceSize vendorBinarySize;
19691} VkDeviceFaultCountsEXT;
19692
19693typedef struct VkDeviceFaultAddressInfoEXT {
19694 VkDeviceFaultAddressTypeEXT addressType;
19695 VkDeviceAddress reportedAddress;
19696 VkDeviceSize addressPrecision;
19697} VkDeviceFaultAddressInfoEXT;
19698
19699typedef struct VkDeviceFaultVendorInfoEXT {
19700 char description[VK_MAX_DESCRIPTION_SIZE];
19701 uint64_t vendorFaultCode;
19702 uint64_t vendorFaultData;
19703} VkDeviceFaultVendorInfoEXT;
19704
19705typedef struct VkDeviceFaultInfoEXT {
19706 VkStructureType sType;
19707 void* pNext;
19708 char description[VK_MAX_DESCRIPTION_SIZE];
19709 VkDeviceFaultAddressInfoEXT* pAddressInfos;
19710 VkDeviceFaultVendorInfoEXT* pVendorInfos;
19711 void* pVendorBinaryData;
19712} VkDeviceFaultInfoEXT;
19713
19714typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT {
19715 uint32_t headerSize;
19716 VkDeviceFaultVendorBinaryHeaderVersionEXT headerVersion;
19717 uint32_t vendorID;
19718 uint32_t deviceID;
19719 uint32_t driverVersion;
19720 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
19721 uint32_t applicationNameOffset;
19722 uint32_t applicationVersion;
19723 uint32_t engineNameOffset;
19724 uint32_t engineVersion;
19725 uint32_t apiVersion;
19726} VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
19727
19728typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo);
19729
19730#ifndef VK_NO_PROTOTYPES
19731#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19732VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT(
19733 VkDevice device,
19734 VkDeviceFaultCountsEXT* pFaultCounts,
19735 VkDeviceFaultInfoEXT* pFaultInfo);
19736#endif
19737#endif
19738
19739
19740// VK_ARM_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
19741#define VK_ARM_rasterization_order_attachment_access 1
19742#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
19743#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
19744typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
19745 VkStructureType sType;
19746 void* pNext;
19747 VkBool32 rasterizationOrderColorAttachmentAccess;
19748 VkBool32 rasterizationOrderDepthAttachmentAccess;
19749 VkBool32 rasterizationOrderStencilAttachmentAccess;
19750} VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
19751
19752typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
19753
19754
19755
19756// VK_EXT_rgba10x6_formats is a preprocessor guard. Do not pass it to API calls.
19757#define VK_EXT_rgba10x6_formats 1
19758#define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
19759#define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
19760typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT {
19761 VkStructureType sType;
19762 void* pNext;
19763 VkBool32 formatRgba10x6WithoutYCbCrSampler;
19764} VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
19765
19766
19767
19768// VK_VALVE_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
19769#define VK_VALVE_mutable_descriptor_type 1
19770#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
19771#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
19772typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT {
19773 VkStructureType sType;
19774 void* pNext;
19775 VkBool32 mutableDescriptorType;
19776} VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
19777
19778typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
19779
19780typedef struct VkMutableDescriptorTypeListEXT {
19781 uint32_t descriptorTypeCount;
19782 const VkDescriptorType* pDescriptorTypes;
19783} VkMutableDescriptorTypeListEXT;
19784
19785typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE;
19786
19787typedef struct VkMutableDescriptorTypeCreateInfoEXT {
19788 VkStructureType sType;
19789 const void* pNext;
19790 uint32_t mutableDescriptorTypeListCount;
19791 const VkMutableDescriptorTypeListEXT* pMutableDescriptorTypeLists;
19792} VkMutableDescriptorTypeCreateInfoEXT;
19793
19794typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE;
19795
19796
19797
19798// VK_EXT_vertex_input_dynamic_state is a preprocessor guard. Do not pass it to API calls.
19799#define VK_EXT_vertex_input_dynamic_state 1
19800#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
19801#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
19802typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT {
19803 VkStructureType sType;
19804 void* pNext;
19805 VkBool32 vertexInputDynamicState;
19806} VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
19807
19808typedef struct VkVertexInputBindingDescription2EXT {
19809 VkStructureType sType;
19810 void* pNext;
19811 uint32_t binding;
19812 uint32_t stride;
19813 VkVertexInputRate inputRate;
19814 uint32_t divisor;
19815} VkVertexInputBindingDescription2EXT;
19816
19817typedef struct VkVertexInputAttributeDescription2EXT {
19818 VkStructureType sType;
19819 void* pNext;
19820 uint32_t location;
19821 uint32_t binding;
19822 VkFormat format;
19823 uint32_t offset;
19824} VkVertexInputAttributeDescription2EXT;
19825
19826typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
19827
19828#ifndef VK_NO_PROTOTYPES
19829#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19830VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT(
19831 VkCommandBuffer commandBuffer,
19832 uint32_t vertexBindingDescriptionCount,
19833 const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions,
19834 uint32_t vertexAttributeDescriptionCount,
19835 const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
19836#endif
19837#endif
19838
19839
19840// VK_EXT_physical_device_drm is a preprocessor guard. Do not pass it to API calls.
19841#define VK_EXT_physical_device_drm 1
19842#define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
19843#define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
19844typedef struct VkPhysicalDeviceDrmPropertiesEXT {
19845 VkStructureType sType;
19846 void* pNext;
19847 VkBool32 hasPrimary;
19848 VkBool32 hasRender;
19849 int64_t primaryMajor;
19850 int64_t primaryMinor;
19851 int64_t renderMajor;
19852 int64_t renderMinor;
19853} VkPhysicalDeviceDrmPropertiesEXT;
19854
19855
19856
19857// VK_EXT_device_address_binding_report is a preprocessor guard. Do not pass it to API calls.
19858#define VK_EXT_device_address_binding_report 1
19859#define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1
19860#define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report"
19861
19862typedef enum VkDeviceAddressBindingTypeEXT {
19863 VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0,
19864 VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1,
19865 VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
19866} VkDeviceAddressBindingTypeEXT;
19867
19868typedef enum VkDeviceAddressBindingFlagBitsEXT {
19869 VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0x00000001,
19870 VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19871} VkDeviceAddressBindingFlagBitsEXT;
19872typedef VkFlags VkDeviceAddressBindingFlagsEXT;
19873typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT {
19874 VkStructureType sType;
19875 void* pNext;
19876 VkBool32 reportAddressBinding;
19877} VkPhysicalDeviceAddressBindingReportFeaturesEXT;
19878
19879typedef struct VkDeviceAddressBindingCallbackDataEXT {
19880 VkStructureType sType;
19881 void* pNext;
19882 VkDeviceAddressBindingFlagsEXT flags;
19883 VkDeviceAddress baseAddress;
19884 VkDeviceSize size;
19885 VkDeviceAddressBindingTypeEXT bindingType;
19886} VkDeviceAddressBindingCallbackDataEXT;
19887
19888
19889
19890// VK_EXT_depth_clip_control is a preprocessor guard. Do not pass it to API calls.
19891#define VK_EXT_depth_clip_control 1
19892#define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
19893#define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
19894typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT {
19895 VkStructureType sType;
19896 void* pNext;
19897 VkBool32 depthClipControl;
19898} VkPhysicalDeviceDepthClipControlFeaturesEXT;
19899
19900typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT {
19901 VkStructureType sType;
19902 const void* pNext;
19903 VkBool32 negativeOneToOne;
19904} VkPipelineViewportDepthClipControlCreateInfoEXT;
19905
19906
19907
19908// VK_EXT_primitive_topology_list_restart is a preprocessor guard. Do not pass it to API calls.
19909#define VK_EXT_primitive_topology_list_restart 1
19910#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
19911#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
19912typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
19913 VkStructureType sType;
19914 void* pNext;
19915 VkBool32 primitiveTopologyListRestart;
19916 VkBool32 primitiveTopologyPatchListRestart;
19917} VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
19918
19919
19920
19921// VK_EXT_present_mode_fifo_latest_ready is a preprocessor guard. Do not pass it to API calls.
19922#define VK_EXT_present_mode_fifo_latest_ready 1
19923#define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION 1
19924#define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME "VK_EXT_present_mode_fifo_latest_ready"
19925typedef VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT;
19926
19927
19928
19929// VK_HUAWEI_subpass_shading is a preprocessor guard. Do not pass it to API calls.
19930#define VK_HUAWEI_subpass_shading 1
19931#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 3
19932#define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
19933typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
19934 VkStructureType sType;
19935 void* pNext;
19936 VkRenderPass renderPass;
19937 uint32_t subpass;
19938} VkSubpassShadingPipelineCreateInfoHUAWEI;
19939
19940typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI {
19941 VkStructureType sType;
19942 void* pNext;
19943 VkBool32 subpassShading;
19944} VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
19945
19946typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
19947 VkStructureType sType;
19948 void* pNext;
19949 uint32_t maxSubpassShadingWorkgroupSizeAspectRatio;
19950} VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
19951
19952typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
19953typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
19954
19955#ifndef VK_NO_PROTOTYPES
19956#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19957VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
19958 VkDevice device,
19959 VkRenderPass renderpass,
19960 VkExtent2D* pMaxWorkgroupSize);
19961#endif
19962
19963#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19964VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
19965 VkCommandBuffer commandBuffer);
19966#endif
19967#endif
19968
19969
19970// VK_HUAWEI_invocation_mask is a preprocessor guard. Do not pass it to API calls.
19971#define VK_HUAWEI_invocation_mask 1
19972#define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
19973#define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
19974typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
19975 VkStructureType sType;
19976 void* pNext;
19977 VkBool32 invocationMask;
19978} VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
19979
19980typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
19981
19982#ifndef VK_NO_PROTOTYPES
19983#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19984VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
19985 VkCommandBuffer commandBuffer,
19986 VkImageView imageView,
19987 VkImageLayout imageLayout);
19988#endif
19989#endif
19990
19991
19992// VK_NV_external_memory_rdma is a preprocessor guard. Do not pass it to API calls.
19993#define VK_NV_external_memory_rdma 1
19994typedef void* VkRemoteAddressNV;
19995#define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
19996#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
19997typedef struct VkMemoryGetRemoteAddressInfoNV {
19998 VkStructureType sType;
19999 const void* pNext;
20000 VkDeviceMemory memory;
20001 VkExternalMemoryHandleTypeFlagBits handleType;
20002} VkMemoryGetRemoteAddressInfoNV;
20003
20004typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
20005 VkStructureType sType;
20006 void* pNext;
20007 VkBool32 externalMemoryRDMA;
20008} VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
20009
20010typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
20011
20012#ifndef VK_NO_PROTOTYPES
20013#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20014VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
20015 VkDevice device,
20016 const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo,
20017 VkRemoteAddressNV* pAddress);
20018#endif
20019#endif
20020
20021
20022// VK_EXT_pipeline_properties is a preprocessor guard. Do not pass it to API calls.
20023#define VK_EXT_pipeline_properties 1
20024#define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
20025#define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
20026typedef VkPipelineInfoKHR VkPipelineInfoEXT;
20027
20028typedef struct VkPipelinePropertiesIdentifierEXT {
20029 VkStructureType sType;
20030 void* pNext;
20031 uint8_t pipelineIdentifier[VK_UUID_SIZE];
20032} VkPipelinePropertiesIdentifierEXT;
20033
20034typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT {
20035 VkStructureType sType;
20036 void* pNext;
20037 VkBool32 pipelinePropertiesIdentifier;
20038} VkPhysicalDevicePipelinePropertiesFeaturesEXT;
20039
20040typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
20041
20042#ifndef VK_NO_PROTOTYPES
20043#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20044VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT(
20045 VkDevice device,
20046 const VkPipelineInfoEXT* pPipelineInfo,
20047 VkBaseOutStructure* pPipelineProperties);
20048#endif
20049#endif
20050
20051
20052// VK_EXT_frame_boundary is a preprocessor guard. Do not pass it to API calls.
20053#define VK_EXT_frame_boundary 1
20054#define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1
20055#define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary"
20056
20057typedef enum VkFrameBoundaryFlagBitsEXT {
20058 VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001,
20059 VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
20060} VkFrameBoundaryFlagBitsEXT;
20061typedef VkFlags VkFrameBoundaryFlagsEXT;
20062typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT {
20063 VkStructureType sType;
20064 void* pNext;
20065 VkBool32 frameBoundary;
20066} VkPhysicalDeviceFrameBoundaryFeaturesEXT;
20067
20068typedef struct VkFrameBoundaryEXT {
20069 VkStructureType sType;
20070 const void* pNext;
20071 VkFrameBoundaryFlagsEXT flags;
20072 uint64_t frameID;
20073 uint32_t imageCount;
20074 const VkImage* pImages;
20075 uint32_t bufferCount;
20076 const VkBuffer* pBuffers;
20077 uint64_t tagName;
20078 size_t tagSize;
20079 const void* pTag;
20080} VkFrameBoundaryEXT;
20081
20082
20083
20084// VK_EXT_multisampled_render_to_single_sampled is a preprocessor guard. Do not pass it to API calls.
20085#define VK_EXT_multisampled_render_to_single_sampled 1
20086#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1
20087#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
20088typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
20089 VkStructureType sType;
20090 void* pNext;
20091 VkBool32 multisampledRenderToSingleSampled;
20092} VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
20093
20094typedef struct VkSubpassResolvePerformanceQueryEXT {
20095 VkStructureType sType;
20096 void* pNext;
20097 VkBool32 optimal;
20098} VkSubpassResolvePerformanceQueryEXT;
20099
20100typedef struct VkMultisampledRenderToSingleSampledInfoEXT {
20101 VkStructureType sType;
20102 const void* pNext;
20103 VkBool32 multisampledRenderToSingleSampledEnable;
20104 VkSampleCountFlagBits rasterizationSamples;
20105} VkMultisampledRenderToSingleSampledInfoEXT;
20106
20107
20108
20109// VK_EXT_extended_dynamic_state2 is a preprocessor guard. Do not pass it to API calls.
20110#define VK_EXT_extended_dynamic_state2 1
20111#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
20112#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
20113typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT {
20114 VkStructureType sType;
20115 void* pNext;
20116 VkBool32 extendedDynamicState2;
20117 VkBool32 extendedDynamicState2LogicOp;
20118 VkBool32 extendedDynamicState2PatchControlPoints;
20119} VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
20120
20121typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
20122typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
20123typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
20124typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp);
20125typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
20126
20127#ifndef VK_NO_PROTOTYPES
20128#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20129VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT(
20130 VkCommandBuffer commandBuffer,
20131 uint32_t patchControlPoints);
20132#endif
20133
20134#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20135VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT(
20136 VkCommandBuffer commandBuffer,
20137 VkBool32 rasterizerDiscardEnable);
20138#endif
20139
20140#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20141VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT(
20142 VkCommandBuffer commandBuffer,
20143 VkBool32 depthBiasEnable);
20144#endif
20145
20146#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20147VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT(
20148 VkCommandBuffer commandBuffer,
20149 VkLogicOp logicOp);
20150#endif
20151
20152#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20153VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT(
20154 VkCommandBuffer commandBuffer,
20155 VkBool32 primitiveRestartEnable);
20156#endif
20157#endif
20158
20159
20160// VK_EXT_color_write_enable is a preprocessor guard. Do not pass it to API calls.
20161#define VK_EXT_color_write_enable 1
20162#define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
20163#define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
20164typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT {
20165 VkStructureType sType;
20166 void* pNext;
20167 VkBool32 colorWriteEnable;
20168} VkPhysicalDeviceColorWriteEnableFeaturesEXT;
20169
20170typedef struct VkPipelineColorWriteCreateInfoEXT {
20171 VkStructureType sType;
20172 const void* pNext;
20173 uint32_t attachmentCount;
20174 const VkBool32* pColorWriteEnables;
20175} VkPipelineColorWriteCreateInfoEXT;
20176
20177typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables);
20178
20179#ifndef VK_NO_PROTOTYPES
20180#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20181VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteEnableEXT(
20182 VkCommandBuffer commandBuffer,
20183 uint32_t attachmentCount,
20184 const VkBool32* pColorWriteEnables);
20185#endif
20186#endif
20187
20188
20189// VK_EXT_primitives_generated_query is a preprocessor guard. Do not pass it to API calls.
20190#define VK_EXT_primitives_generated_query 1
20191#define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
20192#define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
20193typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
20194 VkStructureType sType;
20195 void* pNext;
20196 VkBool32 primitivesGeneratedQuery;
20197 VkBool32 primitivesGeneratedQueryWithRasterizerDiscard;
20198 VkBool32 primitivesGeneratedQueryWithNonZeroStreams;
20199} VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
20200
20201
20202
20203// VK_EXT_global_priority_query is a preprocessor guard. Do not pass it to API calls.
20204#define VK_EXT_global_priority_query 1
20205#define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
20206#define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
20207#define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT VK_MAX_GLOBAL_PRIORITY_SIZE
20208typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
20209
20210typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesEXT;
20211
20212
20213
20214// VK_VALVE_video_encode_rgb_conversion is a preprocessor guard. Do not pass it to API calls.
20215#define VK_VALVE_video_encode_rgb_conversion 1
20216#define VK_VALVE_VIDEO_ENCODE_RGB_CONVERSION_SPEC_VERSION 1
20217#define VK_VALVE_VIDEO_ENCODE_RGB_CONVERSION_EXTENSION_NAME "VK_VALVE_video_encode_rgb_conversion"
20218
20219typedef enum VkVideoEncodeRgbModelConversionFlagBitsVALVE {
20220 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_RGB_IDENTITY_BIT_VALVE = 0x00000001,
20221 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_IDENTITY_BIT_VALVE = 0x00000002,
20222 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_709_BIT_VALVE = 0x00000004,
20223 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_601_BIT_VALVE = 0x00000008,
20224 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_2020_BIT_VALVE = 0x00000010,
20225 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
20226} VkVideoEncodeRgbModelConversionFlagBitsVALVE;
20227typedef VkFlags VkVideoEncodeRgbModelConversionFlagsVALVE;
20228
20229typedef enum VkVideoEncodeRgbRangeCompressionFlagBitsVALVE {
20230 VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_FULL_RANGE_BIT_VALVE = 0x00000001,
20231 VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_NARROW_RANGE_BIT_VALVE = 0x00000002,
20232 VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
20233} VkVideoEncodeRgbRangeCompressionFlagBitsVALVE;
20234typedef VkFlags VkVideoEncodeRgbRangeCompressionFlagsVALVE;
20235
20236typedef enum VkVideoEncodeRgbChromaOffsetFlagBitsVALVE {
20237 VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_COSITED_EVEN_BIT_VALVE = 0x00000001,
20238 VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_MIDPOINT_BIT_VALVE = 0x00000002,
20239 VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
20240} VkVideoEncodeRgbChromaOffsetFlagBitsVALVE;
20241typedef VkFlags VkVideoEncodeRgbChromaOffsetFlagsVALVE;
20242typedef struct VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {
20243 VkStructureType sType;
20244 void* pNext;
20245 VkBool32 videoEncodeRgbConversion;
20246} VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE;
20247
20248typedef struct VkVideoEncodeRgbConversionCapabilitiesVALVE {
20249 VkStructureType sType;
20250 void* pNext;
20251 VkVideoEncodeRgbModelConversionFlagsVALVE rgbModels;
20252 VkVideoEncodeRgbRangeCompressionFlagsVALVE rgbRanges;
20253 VkVideoEncodeRgbChromaOffsetFlagsVALVE xChromaOffsets;
20254 VkVideoEncodeRgbChromaOffsetFlagsVALVE yChromaOffsets;
20255} VkVideoEncodeRgbConversionCapabilitiesVALVE;
20256
20257typedef struct VkVideoEncodeProfileRgbConversionInfoVALVE {
20258 VkStructureType sType;
20259 const void* pNext;
20260 VkBool32 performEncodeRgbConversion;
20261} VkVideoEncodeProfileRgbConversionInfoVALVE;
20262
20263typedef struct VkVideoEncodeSessionRgbConversionCreateInfoVALVE {
20264 VkStructureType sType;
20265 const void* pNext;
20266 VkVideoEncodeRgbModelConversionFlagBitsVALVE rgbModel;
20267 VkVideoEncodeRgbRangeCompressionFlagBitsVALVE rgbRange;
20268 VkVideoEncodeRgbChromaOffsetFlagBitsVALVE xChromaOffset;
20269 VkVideoEncodeRgbChromaOffsetFlagBitsVALVE yChromaOffset;
20270} VkVideoEncodeSessionRgbConversionCreateInfoVALVE;
20271
20272
20273
20274// VK_EXT_image_view_min_lod is a preprocessor guard. Do not pass it to API calls.
20275#define VK_EXT_image_view_min_lod 1
20276#define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
20277#define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
20278typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT {
20279 VkStructureType sType;
20280 void* pNext;
20281 VkBool32 minLod;
20282} VkPhysicalDeviceImageViewMinLodFeaturesEXT;
20283
20284typedef struct VkImageViewMinLodCreateInfoEXT {
20285 VkStructureType sType;
20286 const void* pNext;
20287 float minLod;
20288} VkImageViewMinLodCreateInfoEXT;
20289
20290
20291
20292// VK_EXT_multi_draw is a preprocessor guard. Do not pass it to API calls.
20293#define VK_EXT_multi_draw 1
20294#define VK_EXT_MULTI_DRAW_SPEC_VERSION 1
20295#define VK_EXT_MULTI_DRAW_EXTENSION_NAME "VK_EXT_multi_draw"
20296typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT {
20297 VkStructureType sType;
20298 void* pNext;
20299 VkBool32 multiDraw;
20300} VkPhysicalDeviceMultiDrawFeaturesEXT;
20301
20302typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT {
20303 VkStructureType sType;
20304 void* pNext;
20305 uint32_t maxMultiDrawCount;
20306} VkPhysicalDeviceMultiDrawPropertiesEXT;
20307
20308typedef struct VkMultiDrawInfoEXT {
20309 uint32_t firstVertex;
20310 uint32_t vertexCount;
20311} VkMultiDrawInfoEXT;
20312
20313typedef struct VkMultiDrawIndexedInfoEXT {
20314 uint32_t firstIndex;
20315 uint32_t indexCount;
20316 int32_t vertexOffset;
20317} VkMultiDrawIndexedInfoEXT;
20318
20319typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
20320typedef 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);
20321
20322#ifndef VK_NO_PROTOTYPES
20323#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20324VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT(
20325 VkCommandBuffer commandBuffer,
20326 uint32_t drawCount,
20327 const VkMultiDrawInfoEXT* pVertexInfo,
20328 uint32_t instanceCount,
20329 uint32_t firstInstance,
20330 uint32_t stride);
20331#endif
20332
20333#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20334VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
20335 VkCommandBuffer commandBuffer,
20336 uint32_t drawCount,
20337 const VkMultiDrawIndexedInfoEXT* pIndexInfo,
20338 uint32_t instanceCount,
20339 uint32_t firstInstance,
20340 uint32_t stride,
20341 const int32_t* pVertexOffset);
20342#endif
20343#endif
20344
20345
20346// VK_EXT_image_2d_view_of_3d is a preprocessor guard. Do not pass it to API calls.
20347#define VK_EXT_image_2d_view_of_3d 1
20348#define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
20349#define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
20350typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT {
20351 VkStructureType sType;
20352 void* pNext;
20353 VkBool32 image2DViewOf3D;
20354 VkBool32 sampler2DViewOf3D;
20355} VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
20356
20357
20358
20359// VK_EXT_shader_tile_image is a preprocessor guard. Do not pass it to API calls.
20360#define VK_EXT_shader_tile_image 1
20361#define VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION 1
20362#define VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME "VK_EXT_shader_tile_image"
20363typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT {
20364 VkStructureType sType;
20365 void* pNext;
20366 VkBool32 shaderTileImageColorReadAccess;
20367 VkBool32 shaderTileImageDepthReadAccess;
20368 VkBool32 shaderTileImageStencilReadAccess;
20369} VkPhysicalDeviceShaderTileImageFeaturesEXT;
20370
20371typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT {
20372 VkStructureType sType;
20373 void* pNext;
20374 VkBool32 shaderTileImageCoherentReadAccelerated;
20375 VkBool32 shaderTileImageReadSampleFromPixelRateInvocation;
20376 VkBool32 shaderTileImageReadFromHelperInvocation;
20377} VkPhysicalDeviceShaderTileImagePropertiesEXT;
20378
20379
20380
20381// VK_EXT_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
20382#define VK_EXT_opacity_micromap 1
20383VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT)
20384#define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2
20385#define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap"
20386
20387typedef enum VkMicromapTypeEXT {
20388 VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0,
20389#ifdef VK_ENABLE_BETA_EXTENSIONS
20390 VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV = 1000397000,
20391#endif
20392 VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
20393} VkMicromapTypeEXT;
20394
20395typedef enum VkBuildMicromapModeEXT {
20396 VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0,
20397 VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
20398} VkBuildMicromapModeEXT;
20399
20400typedef enum VkCopyMicromapModeEXT {
20401 VK_COPY_MICROMAP_MODE_CLONE_EXT = 0,
20402 VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1,
20403 VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2,
20404 VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3,
20405 VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
20406} VkCopyMicromapModeEXT;
20407
20408typedef enum VkOpacityMicromapFormatEXT {
20409 VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1,
20410 VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2,
20411 VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF
20412} VkOpacityMicromapFormatEXT;
20413
20414typedef enum VkOpacityMicromapSpecialIndexEXT {
20415 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1,
20416 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2,
20417 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3,
20418 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4,
20419 VK_OPACITY_MICROMAP_SPECIAL_INDEX_CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV = -5,
20420 VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 0x7FFFFFFF
20421} VkOpacityMicromapSpecialIndexEXT;
20422
20423typedef enum VkAccelerationStructureCompatibilityKHR {
20424 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
20425 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
20426 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
20427} VkAccelerationStructureCompatibilityKHR;
20428
20429typedef enum VkAccelerationStructureBuildTypeKHR {
20430 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
20431 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
20432 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
20433 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
20434} VkAccelerationStructureBuildTypeKHR;
20435
20436typedef enum VkBuildMicromapFlagBitsEXT {
20437 VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x00000001,
20438 VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x00000002,
20439 VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0x00000004,
20440 VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
20441} VkBuildMicromapFlagBitsEXT;
20442typedef VkFlags VkBuildMicromapFlagsEXT;
20443
20444typedef enum VkMicromapCreateFlagBitsEXT {
20445 VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000001,
20446 VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
20447} VkMicromapCreateFlagBitsEXT;
20448typedef VkFlags VkMicromapCreateFlagsEXT;
20449typedef struct VkMicromapUsageEXT {
20450 uint32_t count;
20451 uint32_t subdivisionLevel;
20452 uint32_t format;
20453} VkMicromapUsageEXT;
20454
20455typedef union VkDeviceOrHostAddressKHR {
20456 VkDeviceAddress deviceAddress;
20457 void* hostAddress;
20458} VkDeviceOrHostAddressKHR;
20459
20460typedef struct VkMicromapBuildInfoEXT {
20461 VkStructureType sType;
20462 const void* pNext;
20463 VkMicromapTypeEXT type;
20464 VkBuildMicromapFlagsEXT flags;
20465 VkBuildMicromapModeEXT mode;
20466 VkMicromapEXT dstMicromap;
20467 uint32_t usageCountsCount;
20468 const VkMicromapUsageEXT* pUsageCounts;
20469 const VkMicromapUsageEXT* const* ppUsageCounts;
20470 VkDeviceOrHostAddressConstKHR data;
20471 VkDeviceOrHostAddressKHR scratchData;
20472 VkDeviceOrHostAddressConstKHR triangleArray;
20473 VkDeviceSize triangleArrayStride;
20474} VkMicromapBuildInfoEXT;
20475
20476typedef struct VkMicromapCreateInfoEXT {
20477 VkStructureType sType;
20478 const void* pNext;
20479 VkMicromapCreateFlagsEXT createFlags;
20480 VkBuffer buffer;
20481 VkDeviceSize offset;
20482 VkDeviceSize size;
20483 VkMicromapTypeEXT type;
20484 VkDeviceAddress deviceAddress;
20485} VkMicromapCreateInfoEXT;
20486
20487typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT {
20488 VkStructureType sType;
20489 void* pNext;
20490 VkBool32 micromap;
20491 VkBool32 micromapCaptureReplay;
20492 VkBool32 micromapHostCommands;
20493} VkPhysicalDeviceOpacityMicromapFeaturesEXT;
20494
20495typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT {
20496 VkStructureType sType;
20497 void* pNext;
20498 uint32_t maxOpacity2StateSubdivisionLevel;
20499 uint32_t maxOpacity4StateSubdivisionLevel;
20500} VkPhysicalDeviceOpacityMicromapPropertiesEXT;
20501
20502typedef struct VkMicromapVersionInfoEXT {
20503 VkStructureType sType;
20504 const void* pNext;
20505 const uint8_t* pVersionData;
20506} VkMicromapVersionInfoEXT;
20507
20508typedef struct VkCopyMicromapToMemoryInfoEXT {
20509 VkStructureType sType;
20510 const void* pNext;
20511 VkMicromapEXT src;
20512 VkDeviceOrHostAddressKHR dst;
20513 VkCopyMicromapModeEXT mode;
20514} VkCopyMicromapToMemoryInfoEXT;
20515
20516typedef struct VkCopyMemoryToMicromapInfoEXT {
20517 VkStructureType sType;
20518 const void* pNext;
20519 VkDeviceOrHostAddressConstKHR src;
20520 VkMicromapEXT dst;
20521 VkCopyMicromapModeEXT mode;
20522} VkCopyMemoryToMicromapInfoEXT;
20523
20524typedef struct VkCopyMicromapInfoEXT {
20525 VkStructureType sType;
20526 const void* pNext;
20527 VkMicromapEXT src;
20528 VkMicromapEXT dst;
20529 VkCopyMicromapModeEXT mode;
20530} VkCopyMicromapInfoEXT;
20531
20532typedef struct VkMicromapBuildSizesInfoEXT {
20533 VkStructureType sType;
20534 const void* pNext;
20535 VkDeviceSize micromapSize;
20536 VkDeviceSize buildScratchSize;
20537 VkBool32 discardable;
20538} VkMicromapBuildSizesInfoEXT;
20539
20540typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT {
20541 VkStructureType sType;
20542 void* pNext;
20543 VkIndexType indexType;
20544 VkDeviceOrHostAddressConstKHR indexBuffer;
20545 VkDeviceSize indexStride;
20546 uint32_t baseTriangle;
20547 uint32_t usageCountsCount;
20548 const VkMicromapUsageEXT* pUsageCounts;
20549 const VkMicromapUsageEXT* const* ppUsageCounts;
20550 VkMicromapEXT micromap;
20551} VkAccelerationStructureTrianglesOpacityMicromapEXT;
20552
20553typedef struct VkMicromapTriangleEXT {
20554 uint32_t dataOffset;
20555 uint16_t subdivisionLevel;
20556 uint16_t format;
20557} VkMicromapTriangleEXT;
20558
20559typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice device, const VkMicromapCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkMicromapEXT* pMicromap);
20560typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator);
20561typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
20562typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
20563typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo);
20564typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo);
20565typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo);
20566typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
20567typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo);
20568typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo);
20569typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo);
20570typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
20571typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
20572typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkMicromapBuildInfoEXT* pBuildInfo, VkMicromapBuildSizesInfoEXT* pSizeInfo);
20573
20574#ifndef VK_NO_PROTOTYPES
20575#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20576VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT(
20577 VkDevice device,
20578 const VkMicromapCreateInfoEXT* pCreateInfo,
20579 const VkAllocationCallbacks* pAllocator,
20580 VkMicromapEXT* pMicromap);
20581#endif
20582
20583#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20584VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT(
20585 VkDevice device,
20586 VkMicromapEXT micromap,
20587 const VkAllocationCallbacks* pAllocator);
20588#endif
20589
20590#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20591VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT(
20592 VkCommandBuffer commandBuffer,
20593 uint32_t infoCount,
20594 const VkMicromapBuildInfoEXT* pInfos);
20595#endif
20596
20597#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20598VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT(
20599 VkDevice device,
20600 VkDeferredOperationKHR deferredOperation,
20601 uint32_t infoCount,
20602 const VkMicromapBuildInfoEXT* pInfos);
20603#endif
20604
20605#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20606VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT(
20607 VkDevice device,
20608 VkDeferredOperationKHR deferredOperation,
20609 const VkCopyMicromapInfoEXT* pInfo);
20610#endif
20611
20612#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20613VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT(
20614 VkDevice device,
20615 VkDeferredOperationKHR deferredOperation,
20616 const VkCopyMicromapToMemoryInfoEXT* pInfo);
20617#endif
20618
20619#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20620VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT(
20621 VkDevice device,
20622 VkDeferredOperationKHR deferredOperation,
20623 const VkCopyMemoryToMicromapInfoEXT* pInfo);
20624#endif
20625
20626#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20627VKAPI_ATTR VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(
20628 VkDevice device,
20629 uint32_t micromapCount,
20630 const VkMicromapEXT* pMicromaps,
20631 VkQueryType queryType,
20632 size_t dataSize,
20633 void* pData,
20634 size_t stride);
20635#endif
20636
20637#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20638VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapEXT(
20639 VkCommandBuffer commandBuffer,
20640 const VkCopyMicromapInfoEXT* pInfo);
20641#endif
20642
20643#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20644VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT(
20645 VkCommandBuffer commandBuffer,
20646 const VkCopyMicromapToMemoryInfoEXT* pInfo);
20647#endif
20648
20649#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20650VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT(
20651 VkCommandBuffer commandBuffer,
20652 const VkCopyMemoryToMicromapInfoEXT* pInfo);
20653#endif
20654
20655#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20656VKAPI_ATTR void VKAPI_CALL vkCmdWriteMicromapsPropertiesEXT(
20657 VkCommandBuffer commandBuffer,
20658 uint32_t micromapCount,
20659 const VkMicromapEXT* pMicromaps,
20660 VkQueryType queryType,
20661 VkQueryPool queryPool,
20662 uint32_t firstQuery);
20663#endif
20664
20665#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20666VKAPI_ATTR void VKAPI_CALL vkGetDeviceMicromapCompatibilityEXT(
20667 VkDevice device,
20668 const VkMicromapVersionInfoEXT* pVersionInfo,
20669 VkAccelerationStructureCompatibilityKHR* pCompatibility);
20670#endif
20671
20672#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20673VKAPI_ATTR void VKAPI_CALL vkGetMicromapBuildSizesEXT(
20674 VkDevice device,
20675 VkAccelerationStructureBuildTypeKHR buildType,
20676 const VkMicromapBuildInfoEXT* pBuildInfo,
20677 VkMicromapBuildSizesInfoEXT* pSizeInfo);
20678#endif
20679#endif
20680
20681
20682// VK_EXT_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
20683#define VK_EXT_load_store_op_none 1
20684#define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
20685#define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
20686
20687
20688// VK_HUAWEI_cluster_culling_shader is a preprocessor guard. Do not pass it to API calls.
20689#define VK_HUAWEI_cluster_culling_shader 1
20690#define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 3
20691#define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader"
20692typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
20693 VkStructureType sType;
20694 void* pNext;
20695 VkBool32 clustercullingShader;
20696 VkBool32 multiviewClusterCullingShader;
20697} VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
20698
20699typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
20700 VkStructureType sType;
20701 void* pNext;
20702 uint32_t maxWorkGroupCount[3];
20703 uint32_t maxWorkGroupSize[3];
20704 uint32_t maxOutputClusterCount;
20705 VkDeviceSize indirectBufferOffsetAlignment;
20706} VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
20707
20708typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
20709 VkStructureType sType;
20710 void* pNext;
20711 VkBool32 clusterShadingRate;
20712} VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
20713
20714typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterHUAWEI)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
20715typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
20716
20717#ifndef VK_NO_PROTOTYPES
20718#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20719VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterHUAWEI(
20720 VkCommandBuffer commandBuffer,
20721 uint32_t groupCountX,
20722 uint32_t groupCountY,
20723 uint32_t groupCountZ);
20724#endif
20725
20726#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20727VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI(
20728 VkCommandBuffer commandBuffer,
20729 VkBuffer buffer,
20730 VkDeviceSize offset);
20731#endif
20732#endif
20733
20734
20735// VK_EXT_border_color_swizzle is a preprocessor guard. Do not pass it to API calls.
20736#define VK_EXT_border_color_swizzle 1
20737#define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
20738#define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
20739typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT {
20740 VkStructureType sType;
20741 void* pNext;
20742 VkBool32 borderColorSwizzle;
20743 VkBool32 borderColorSwizzleFromImage;
20744} VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
20745
20746typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT {
20747 VkStructureType sType;
20748 const void* pNext;
20749 VkComponentMapping components;
20750 VkBool32 srgb;
20751} VkSamplerBorderColorComponentMappingCreateInfoEXT;
20752
20753
20754
20755// VK_EXT_pageable_device_local_memory is a preprocessor guard. Do not pass it to API calls.
20756#define VK_EXT_pageable_device_local_memory 1
20757#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
20758#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
20759typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
20760 VkStructureType sType;
20761 void* pNext;
20762 VkBool32 pageableDeviceLocalMemory;
20763} VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
20764
20765typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice device, VkDeviceMemory memory, float priority);
20766
20767#ifndef VK_NO_PROTOTYPES
20768#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20769VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
20770 VkDevice device,
20771 VkDeviceMemory memory,
20772 float priority);
20773#endif
20774#endif
20775
20776
20777// VK_ARM_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
20778#define VK_ARM_shader_core_properties 1
20779#define VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
20780#define VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_ARM_shader_core_properties"
20781typedef struct VkPhysicalDeviceShaderCorePropertiesARM {
20782 VkStructureType sType;
20783 void* pNext;
20784 uint32_t pixelRate;
20785 uint32_t texelRate;
20786 uint32_t fmaRate;
20787} VkPhysicalDeviceShaderCorePropertiesARM;
20788
20789
20790
20791// VK_ARM_scheduling_controls is a preprocessor guard. Do not pass it to API calls.
20792#define VK_ARM_scheduling_controls 1
20793#define VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION 1
20794#define VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME "VK_ARM_scheduling_controls"
20795typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM;
20796
20797// Flag bits for VkPhysicalDeviceSchedulingControlsFlagBitsARM
20798typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagBitsARM;
20799static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = 0x00000001ULL;
20800
20801typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM {
20802 VkStructureType sType;
20803 void* pNext;
20804 uint32_t shaderCoreCount;
20805} VkDeviceQueueShaderCoreControlCreateInfoARM;
20806
20807typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM {
20808 VkStructureType sType;
20809 void* pNext;
20810 VkBool32 schedulingControls;
20811} VkPhysicalDeviceSchedulingControlsFeaturesARM;
20812
20813typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM {
20814 VkStructureType sType;
20815 void* pNext;
20816 VkPhysicalDeviceSchedulingControlsFlagsARM schedulingControlsFlags;
20817} VkPhysicalDeviceSchedulingControlsPropertiesARM;
20818
20819
20820
20821// VK_EXT_image_sliced_view_of_3d is a preprocessor guard. Do not pass it to API calls.
20822#define VK_EXT_image_sliced_view_of_3d 1
20823#define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION 1
20824#define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_sliced_view_of_3d"
20825#define VK_REMAINING_3D_SLICES_EXT (~0U)
20826typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
20827 VkStructureType sType;
20828 void* pNext;
20829 VkBool32 imageSlicedViewOf3D;
20830} VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
20831
20832typedef struct VkImageViewSlicedCreateInfoEXT {
20833 VkStructureType sType;
20834 const void* pNext;
20835 uint32_t sliceOffset;
20836 uint32_t sliceCount;
20837} VkImageViewSlicedCreateInfoEXT;
20838
20839
20840
20841// VK_VALVE_descriptor_set_host_mapping is a preprocessor guard. Do not pass it to API calls.
20842#define VK_VALVE_descriptor_set_host_mapping 1
20843#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
20844#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
20845typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
20846 VkStructureType sType;
20847 void* pNext;
20848 VkBool32 descriptorSetHostMapping;
20849} VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
20850
20851typedef struct VkDescriptorSetBindingReferenceVALVE {
20852 VkStructureType sType;
20853 const void* pNext;
20854 VkDescriptorSetLayout descriptorSetLayout;
20855 uint32_t binding;
20856} VkDescriptorSetBindingReferenceVALVE;
20857
20858typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE {
20859 VkStructureType sType;
20860 void* pNext;
20861 size_t descriptorOffset;
20862 uint32_t descriptorSize;
20863} VkDescriptorSetLayoutHostMappingInfoVALVE;
20864
20865typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
20866typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
20867
20868#ifndef VK_NO_PROTOTYPES
20869#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20870VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE(
20871 VkDevice device,
20872 const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
20873 VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
20874#endif
20875
20876#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20877VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
20878 VkDevice device,
20879 VkDescriptorSet descriptorSet,
20880 void** ppData);
20881#endif
20882#endif
20883
20884
20885// VK_EXT_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
20886#define VK_EXT_depth_clamp_zero_one 1
20887#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
20888#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one"
20889typedef VkPhysicalDeviceDepthClampZeroOneFeaturesKHR VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
20890
20891
20892
20893// VK_EXT_non_seamless_cube_map is a preprocessor guard. Do not pass it to API calls.
20894#define VK_EXT_non_seamless_cube_map 1
20895#define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1
20896#define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
20897typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
20898 VkStructureType sType;
20899 void* pNext;
20900 VkBool32 nonSeamlessCubeMap;
20901} VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
20902
20903
20904
20905// VK_ARM_render_pass_striped is a preprocessor guard. Do not pass it to API calls.
20906#define VK_ARM_render_pass_striped 1
20907#define VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION 1
20908#define VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME "VK_ARM_render_pass_striped"
20909typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM {
20910 VkStructureType sType;
20911 void* pNext;
20912 VkBool32 renderPassStriped;
20913} VkPhysicalDeviceRenderPassStripedFeaturesARM;
20914
20915typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM {
20916 VkStructureType sType;
20917 void* pNext;
20918 VkExtent2D renderPassStripeGranularity;
20919 uint32_t maxRenderPassStripes;
20920} VkPhysicalDeviceRenderPassStripedPropertiesARM;
20921
20922typedef struct VkRenderPassStripeInfoARM {
20923 VkStructureType sType;
20924 const void* pNext;
20925 VkRect2D stripeArea;
20926} VkRenderPassStripeInfoARM;
20927
20928typedef struct VkRenderPassStripeBeginInfoARM {
20929 VkStructureType sType;
20930 const void* pNext;
20931 uint32_t stripeInfoCount;
20932 const VkRenderPassStripeInfoARM* pStripeInfos;
20933} VkRenderPassStripeBeginInfoARM;
20934
20935typedef struct VkRenderPassStripeSubmitInfoARM {
20936 VkStructureType sType;
20937 const void* pNext;
20938 uint32_t stripeSemaphoreInfoCount;
20939 const VkSemaphoreSubmitInfo* pStripeSemaphoreInfos;
20940} VkRenderPassStripeSubmitInfoARM;
20941
20942
20943
20944// VK_QCOM_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
20945#define VK_QCOM_fragment_density_map_offset 1
20946#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 3
20947#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
20948typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {
20949 VkStructureType sType;
20950 void* pNext;
20951 VkBool32 fragmentDensityMapOffset;
20952} VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT;
20953
20954typedef VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
20955
20956typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {
20957 VkStructureType sType;
20958 void* pNext;
20959 VkExtent2D fragmentDensityOffsetGranularity;
20960} VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT;
20961
20962typedef VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
20963
20964typedef struct VkRenderPassFragmentDensityMapOffsetEndInfoEXT {
20965 VkStructureType sType;
20966 const void* pNext;
20967 uint32_t fragmentDensityOffsetCount;
20968 const VkOffset2D* pFragmentDensityOffsets;
20969} VkRenderPassFragmentDensityMapOffsetEndInfoEXT;
20970
20971typedef VkRenderPassFragmentDensityMapOffsetEndInfoEXT VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
20972
20973
20974
20975// VK_NV_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
20976#define VK_NV_copy_memory_indirect 1
20977#define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
20978#define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect"
20979typedef VkCopyMemoryIndirectCommandKHR VkCopyMemoryIndirectCommandNV;
20980
20981typedef VkCopyMemoryToImageIndirectCommandKHR VkCopyMemoryToImageIndirectCommandNV;
20982
20983typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV {
20984 VkStructureType sType;
20985 void* pNext;
20986 VkBool32 indirectCopy;
20987} VkPhysicalDeviceCopyMemoryIndirectFeaturesNV;
20988
20989typedef VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR VkPhysicalDeviceCopyMemoryIndirectPropertiesNV;
20990
20991typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride);
20992typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources);
20993
20994#ifndef VK_NO_PROTOTYPES
20995#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20996VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectNV(
20997 VkCommandBuffer commandBuffer,
20998 VkDeviceAddress copyBufferAddress,
20999 uint32_t copyCount,
21000 uint32_t stride);
21001#endif
21002
21003#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21004VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectNV(
21005 VkCommandBuffer commandBuffer,
21006 VkDeviceAddress copyBufferAddress,
21007 uint32_t copyCount,
21008 uint32_t stride,
21009 VkImage dstImage,
21010 VkImageLayout dstImageLayout,
21011 const VkImageSubresourceLayers* pImageSubresources);
21012#endif
21013#endif
21014
21015
21016// VK_NV_memory_decompression is a preprocessor guard. Do not pass it to API calls.
21017#define VK_NV_memory_decompression 1
21018#define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1
21019#define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression"
21020
21021// Flag bits for VkMemoryDecompressionMethodFlagBitsEXT
21022typedef VkFlags64 VkMemoryDecompressionMethodFlagBitsEXT;
21023static const VkMemoryDecompressionMethodFlagBitsEXT VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT = 0x00000001ULL;
21024static const VkMemoryDecompressionMethodFlagBitsEXT VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL;
21025
21026typedef VkMemoryDecompressionMethodFlagBitsEXT VkMemoryDecompressionMethodFlagBitsNV;
21027
21028typedef VkFlags64 VkMemoryDecompressionMethodFlagsEXT;
21029typedef VkMemoryDecompressionMethodFlagsEXT VkMemoryDecompressionMethodFlagsNV;
21030
21031typedef struct VkDecompressMemoryRegionNV {
21032 VkDeviceAddress srcAddress;
21033 VkDeviceAddress dstAddress;
21034 VkDeviceSize compressedSize;
21035 VkDeviceSize decompressedSize;
21036 VkMemoryDecompressionMethodFlagsNV decompressionMethod;
21037} VkDecompressMemoryRegionNV;
21038
21039typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesEXT {
21040 VkStructureType sType;
21041 void* pNext;
21042 VkBool32 memoryDecompression;
21043} VkPhysicalDeviceMemoryDecompressionFeaturesEXT;
21044
21045typedef VkPhysicalDeviceMemoryDecompressionFeaturesEXT VkPhysicalDeviceMemoryDecompressionFeaturesNV;
21046
21047typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesEXT {
21048 VkStructureType sType;
21049 void* pNext;
21050 VkMemoryDecompressionMethodFlagsEXT decompressionMethods;
21051 uint64_t maxDecompressionIndirectCount;
21052} VkPhysicalDeviceMemoryDecompressionPropertiesEXT;
21053
21054typedef VkPhysicalDeviceMemoryDecompressionPropertiesEXT VkPhysicalDeviceMemoryDecompressionPropertiesNV;
21055
21056typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryNV)(VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
21057typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride);
21058
21059#ifndef VK_NO_PROTOTYPES
21060#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21061VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryNV(
21062 VkCommandBuffer commandBuffer,
21063 uint32_t decompressRegionCount,
21064 const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
21065#endif
21066
21067#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21068VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountNV(
21069 VkCommandBuffer commandBuffer,
21070 VkDeviceAddress indirectCommandsAddress,
21071 VkDeviceAddress indirectCommandsCountAddress,
21072 uint32_t stride);
21073#endif
21074#endif
21075
21076
21077// VK_NV_device_generated_commands_compute is a preprocessor guard. Do not pass it to API calls.
21078#define VK_NV_device_generated_commands_compute 1
21079#define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION 2
21080#define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME "VK_NV_device_generated_commands_compute"
21081typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
21082 VkStructureType sType;
21083 void* pNext;
21084 VkBool32 deviceGeneratedCompute;
21085 VkBool32 deviceGeneratedComputePipelines;
21086 VkBool32 deviceGeneratedComputeCaptureReplay;
21087} VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
21088
21089typedef struct VkComputePipelineIndirectBufferInfoNV {
21090 VkStructureType sType;
21091 const void* pNext;
21092 VkDeviceAddress deviceAddress;
21093 VkDeviceSize size;
21094 VkDeviceAddress pipelineDeviceAddressCaptureReplay;
21095} VkComputePipelineIndirectBufferInfoNV;
21096
21097typedef struct VkPipelineIndirectDeviceAddressInfoNV {
21098 VkStructureType sType;
21099 const void* pNext;
21100 VkPipelineBindPoint pipelineBindPoint;
21101 VkPipeline pipeline;
21102} VkPipelineIndirectDeviceAddressInfoNV;
21103
21104typedef struct VkBindPipelineIndirectCommandNV {
21105 VkDeviceAddress pipelineAddress;
21106} VkBindPipelineIndirectCommandNV;
21107
21108typedef void (VKAPI_PTR *PFN_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements);
21109typedef void (VKAPI_PTR *PFN_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
21110typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetPipelineIndirectDeviceAddressNV)(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
21111
21112#ifndef VK_NO_PROTOTYPES
21113#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21114VKAPI_ATTR void VKAPI_CALL vkGetPipelineIndirectMemoryRequirementsNV(
21115 VkDevice device,
21116 const VkComputePipelineCreateInfo* pCreateInfo,
21117 VkMemoryRequirements2* pMemoryRequirements);
21118#endif
21119
21120#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21121VKAPI_ATTR void VKAPI_CALL vkCmdUpdatePipelineIndirectBufferNV(
21122 VkCommandBuffer commandBuffer,
21123 VkPipelineBindPoint pipelineBindPoint,
21124 VkPipeline pipeline);
21125#endif
21126
21127#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21128VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetPipelineIndirectDeviceAddressNV(
21129 VkDevice device,
21130 const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
21131#endif
21132#endif
21133
21134
21135// VK_NV_ray_tracing_linear_swept_spheres is a preprocessor guard. Do not pass it to API calls.
21136#define VK_NV_ray_tracing_linear_swept_spheres 1
21137#define VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION 1
21138#define VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME "VK_NV_ray_tracing_linear_swept_spheres"
21139
21140typedef enum VkRayTracingLssIndexingModeNV {
21141 VK_RAY_TRACING_LSS_INDEXING_MODE_LIST_NV = 0,
21142 VK_RAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NV = 1,
21143 VK_RAY_TRACING_LSS_INDEXING_MODE_MAX_ENUM_NV = 0x7FFFFFFF
21144} VkRayTracingLssIndexingModeNV;
21145
21146typedef enum VkRayTracingLssPrimitiveEndCapsModeNV {
21147 VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_NONE_NV = 0,
21148 VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_CHAINED_NV = 1,
21149 VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_MAX_ENUM_NV = 0x7FFFFFFF
21150} VkRayTracingLssPrimitiveEndCapsModeNV;
21151typedef struct VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
21152 VkStructureType sType;
21153 void* pNext;
21154 VkBool32 spheres;
21155 VkBool32 linearSweptSpheres;
21156} VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV;
21157
21158typedef struct VkAccelerationStructureGeometryLinearSweptSpheresDataNV {
21159 VkStructureType sType;
21160 const void* pNext;
21161 VkFormat vertexFormat;
21162 VkDeviceOrHostAddressConstKHR vertexData;
21163 VkDeviceSize vertexStride;
21164 VkFormat radiusFormat;
21165 VkDeviceOrHostAddressConstKHR radiusData;
21166 VkDeviceSize radiusStride;
21167 VkIndexType indexType;
21168 VkDeviceOrHostAddressConstKHR indexData;
21169 VkDeviceSize indexStride;
21170 VkRayTracingLssIndexingModeNV indexingMode;
21171 VkRayTracingLssPrimitiveEndCapsModeNV endCapsMode;
21172} VkAccelerationStructureGeometryLinearSweptSpheresDataNV;
21173
21174typedef struct VkAccelerationStructureGeometrySpheresDataNV {
21175 VkStructureType sType;
21176 const void* pNext;
21177 VkFormat vertexFormat;
21178 VkDeviceOrHostAddressConstKHR vertexData;
21179 VkDeviceSize vertexStride;
21180 VkFormat radiusFormat;
21181 VkDeviceOrHostAddressConstKHR radiusData;
21182 VkDeviceSize radiusStride;
21183 VkIndexType indexType;
21184 VkDeviceOrHostAddressConstKHR indexData;
21185 VkDeviceSize indexStride;
21186} VkAccelerationStructureGeometrySpheresDataNV;
21187
21188
21189
21190// VK_NV_linear_color_attachment is a preprocessor guard. Do not pass it to API calls.
21191#define VK_NV_linear_color_attachment 1
21192#define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
21193#define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
21194typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV {
21195 VkStructureType sType;
21196 void* pNext;
21197 VkBool32 linearColorAttachment;
21198} VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
21199
21200
21201
21202// VK_GOOGLE_surfaceless_query is a preprocessor guard. Do not pass it to API calls.
21203#define VK_GOOGLE_surfaceless_query 1
21204#define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2
21205#define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
21206
21207
21208// VK_EXT_image_compression_control_swapchain is a preprocessor guard. Do not pass it to API calls.
21209#define VK_EXT_image_compression_control_swapchain 1
21210#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
21211#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
21212typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
21213 VkStructureType sType;
21214 void* pNext;
21215 VkBool32 imageCompressionControlSwapchain;
21216} VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
21217
21218
21219
21220// VK_QCOM_image_processing is a preprocessor guard. Do not pass it to API calls.
21221#define VK_QCOM_image_processing 1
21222#define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1
21223#define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
21224typedef struct VkImageViewSampleWeightCreateInfoQCOM {
21225 VkStructureType sType;
21226 const void* pNext;
21227 VkOffset2D filterCenter;
21228 VkExtent2D filterSize;
21229 uint32_t numPhases;
21230} VkImageViewSampleWeightCreateInfoQCOM;
21231
21232typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM {
21233 VkStructureType sType;
21234 void* pNext;
21235 VkBool32 textureSampleWeighted;
21236 VkBool32 textureBoxFilter;
21237 VkBool32 textureBlockMatch;
21238} VkPhysicalDeviceImageProcessingFeaturesQCOM;
21239
21240typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM {
21241 VkStructureType sType;
21242 void* pNext;
21243 uint32_t maxWeightFilterPhases;
21244 VkExtent2D maxWeightFilterDimension;
21245 VkExtent2D maxBlockMatchRegion;
21246 VkExtent2D maxBoxFilterBlockSize;
21247} VkPhysicalDeviceImageProcessingPropertiesQCOM;
21248
21249
21250
21251// VK_EXT_nested_command_buffer is a preprocessor guard. Do not pass it to API calls.
21252#define VK_EXT_nested_command_buffer 1
21253#define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1
21254#define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer"
21255typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT {
21256 VkStructureType sType;
21257 void* pNext;
21258 VkBool32 nestedCommandBuffer;
21259 VkBool32 nestedCommandBufferRendering;
21260 VkBool32 nestedCommandBufferSimultaneousUse;
21261} VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
21262
21263typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT {
21264 VkStructureType sType;
21265 void* pNext;
21266 uint32_t maxCommandBufferNestingLevel;
21267} VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
21268
21269
21270
21271// VK_EXT_external_memory_acquire_unmodified is a preprocessor guard. Do not pass it to API calls.
21272#define VK_EXT_external_memory_acquire_unmodified 1
21273#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1
21274#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified"
21275typedef struct VkExternalMemoryAcquireUnmodifiedEXT {
21276 VkStructureType sType;
21277 const void* pNext;
21278 VkBool32 acquireUnmodifiedMemory;
21279} VkExternalMemoryAcquireUnmodifiedEXT;
21280
21281
21282
21283// VK_EXT_extended_dynamic_state3 is a preprocessor guard. Do not pass it to API calls.
21284#define VK_EXT_extended_dynamic_state3 1
21285#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2
21286#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3"
21287typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT {
21288 VkStructureType sType;
21289 void* pNext;
21290 VkBool32 extendedDynamicState3TessellationDomainOrigin;
21291 VkBool32 extendedDynamicState3DepthClampEnable;
21292 VkBool32 extendedDynamicState3PolygonMode;
21293 VkBool32 extendedDynamicState3RasterizationSamples;
21294 VkBool32 extendedDynamicState3SampleMask;
21295 VkBool32 extendedDynamicState3AlphaToCoverageEnable;
21296 VkBool32 extendedDynamicState3AlphaToOneEnable;
21297 VkBool32 extendedDynamicState3LogicOpEnable;
21298 VkBool32 extendedDynamicState3ColorBlendEnable;
21299 VkBool32 extendedDynamicState3ColorBlendEquation;
21300 VkBool32 extendedDynamicState3ColorWriteMask;
21301 VkBool32 extendedDynamicState3RasterizationStream;
21302 VkBool32 extendedDynamicState3ConservativeRasterizationMode;
21303 VkBool32 extendedDynamicState3ExtraPrimitiveOverestimationSize;
21304 VkBool32 extendedDynamicState3DepthClipEnable;
21305 VkBool32 extendedDynamicState3SampleLocationsEnable;
21306 VkBool32 extendedDynamicState3ColorBlendAdvanced;
21307 VkBool32 extendedDynamicState3ProvokingVertexMode;
21308 VkBool32 extendedDynamicState3LineRasterizationMode;
21309 VkBool32 extendedDynamicState3LineStippleEnable;
21310 VkBool32 extendedDynamicState3DepthClipNegativeOneToOne;
21311 VkBool32 extendedDynamicState3ViewportWScalingEnable;
21312 VkBool32 extendedDynamicState3ViewportSwizzle;
21313 VkBool32 extendedDynamicState3CoverageToColorEnable;
21314 VkBool32 extendedDynamicState3CoverageToColorLocation;
21315 VkBool32 extendedDynamicState3CoverageModulationMode;
21316 VkBool32 extendedDynamicState3CoverageModulationTableEnable;
21317 VkBool32 extendedDynamicState3CoverageModulationTable;
21318 VkBool32 extendedDynamicState3CoverageReductionMode;
21319 VkBool32 extendedDynamicState3RepresentativeFragmentTestEnable;
21320 VkBool32 extendedDynamicState3ShadingRateImageEnable;
21321} VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
21322
21323typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT {
21324 VkStructureType sType;
21325 void* pNext;
21326 VkBool32 dynamicPrimitiveTopologyUnrestricted;
21327} VkPhysicalDeviceExtendedDynamicState3PropertiesEXT;
21328
21329typedef struct VkColorBlendEquationEXT {
21330 VkBlendFactor srcColorBlendFactor;
21331 VkBlendFactor dstColorBlendFactor;
21332 VkBlendOp colorBlendOp;
21333 VkBlendFactor srcAlphaBlendFactor;
21334 VkBlendFactor dstAlphaBlendFactor;
21335 VkBlendOp alphaBlendOp;
21336} VkColorBlendEquationEXT;
21337
21338typedef struct VkColorBlendAdvancedEXT {
21339 VkBlendOp advancedBlendOp;
21340 VkBool32 srcPremultiplied;
21341 VkBool32 dstPremultiplied;
21342 VkBlendOverlapEXT blendOverlap;
21343 VkBool32 clampResults;
21344} VkColorBlendAdvancedEXT;
21345
21346typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable);
21347typedef void (VKAPI_PTR *PFN_vkCmdSetPolygonModeEXT)(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode);
21348typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples);
21349typedef void (VKAPI_PTR *PFN_vkCmdSetSampleMaskEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits samples, const VkSampleMask* pSampleMask);
21350typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable);
21351typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable);
21352typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 logicOpEnable);
21353typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables);
21354typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations);
21355typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks);
21356typedef void (VKAPI_PTR *PFN_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin);
21357typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer commandBuffer, uint32_t rasterizationStream);
21358typedef void (VKAPI_PTR *PFN_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode);
21359typedef void (VKAPI_PTR *PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize);
21360typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClipEnable);
21361typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable);
21362typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
21363typedef void (VKAPI_PTR *PFN_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode);
21364typedef void (VKAPI_PTR *PFN_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode);
21365typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable);
21366typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne);
21367typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable);
21368typedef void (VKAPI_PTR *PFN_vkCmdSetViewportSwizzleNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles);
21369typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable);
21370typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation);
21371typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode);
21372typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable);
21373typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const float* pCoverageModulationTable);
21374typedef void (VKAPI_PTR *PFN_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable);
21375typedef void (VKAPI_PTR *PFN_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable);
21376typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode);
21377
21378#ifndef VK_NO_PROTOTYPES
21379#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21380VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT(
21381 VkCommandBuffer commandBuffer,
21382 VkBool32 depthClampEnable);
21383#endif
21384
21385#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21386VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT(
21387 VkCommandBuffer commandBuffer,
21388 VkPolygonMode polygonMode);
21389#endif
21390
21391#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21392VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT(
21393 VkCommandBuffer commandBuffer,
21394 VkSampleCountFlagBits rasterizationSamples);
21395#endif
21396
21397#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21398VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT(
21399 VkCommandBuffer commandBuffer,
21400 VkSampleCountFlagBits samples,
21401 const VkSampleMask* pSampleMask);
21402#endif
21403
21404#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21405VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT(
21406 VkCommandBuffer commandBuffer,
21407 VkBool32 alphaToCoverageEnable);
21408#endif
21409
21410#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21411VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT(
21412 VkCommandBuffer commandBuffer,
21413 VkBool32 alphaToOneEnable);
21414#endif
21415
21416#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21417VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT(
21418 VkCommandBuffer commandBuffer,
21419 VkBool32 logicOpEnable);
21420#endif
21421
21422#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21423VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEnableEXT(
21424 VkCommandBuffer commandBuffer,
21425 uint32_t firstAttachment,
21426 uint32_t attachmentCount,
21427 const VkBool32* pColorBlendEnables);
21428#endif
21429
21430#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21431VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEquationEXT(
21432 VkCommandBuffer commandBuffer,
21433 uint32_t firstAttachment,
21434 uint32_t attachmentCount,
21435 const VkColorBlendEquationEXT* pColorBlendEquations);
21436#endif
21437
21438#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21439VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteMaskEXT(
21440 VkCommandBuffer commandBuffer,
21441 uint32_t firstAttachment,
21442 uint32_t attachmentCount,
21443 const VkColorComponentFlags* pColorWriteMasks);
21444#endif
21445
21446#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21447VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT(
21448 VkCommandBuffer commandBuffer,
21449 VkTessellationDomainOrigin domainOrigin);
21450#endif
21451
21452#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21453VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT(
21454 VkCommandBuffer commandBuffer,
21455 uint32_t rasterizationStream);
21456#endif
21457
21458#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21459VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT(
21460 VkCommandBuffer commandBuffer,
21461 VkConservativeRasterizationModeEXT conservativeRasterizationMode);
21462#endif
21463
21464#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21465VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT(
21466 VkCommandBuffer commandBuffer,
21467 float extraPrimitiveOverestimationSize);
21468#endif
21469
21470#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21471VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT(
21472 VkCommandBuffer commandBuffer,
21473 VkBool32 depthClipEnable);
21474#endif
21475
21476#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21477VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT(
21478 VkCommandBuffer commandBuffer,
21479 VkBool32 sampleLocationsEnable);
21480#endif
21481
21482#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21483VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT(
21484 VkCommandBuffer commandBuffer,
21485 uint32_t firstAttachment,
21486 uint32_t attachmentCount,
21487 const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
21488#endif
21489
21490#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21491VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT(
21492 VkCommandBuffer commandBuffer,
21493 VkProvokingVertexModeEXT provokingVertexMode);
21494#endif
21495
21496#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21497VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT(
21498 VkCommandBuffer commandBuffer,
21499 VkLineRasterizationModeEXT lineRasterizationMode);
21500#endif
21501
21502#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21503VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT(
21504 VkCommandBuffer commandBuffer,
21505 VkBool32 stippledLineEnable);
21506#endif
21507
21508#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21509VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT(
21510 VkCommandBuffer commandBuffer,
21511 VkBool32 negativeOneToOne);
21512#endif
21513
21514#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21515VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV(
21516 VkCommandBuffer commandBuffer,
21517 VkBool32 viewportWScalingEnable);
21518#endif
21519
21520#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21521VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV(
21522 VkCommandBuffer commandBuffer,
21523 uint32_t firstViewport,
21524 uint32_t viewportCount,
21525 const VkViewportSwizzleNV* pViewportSwizzles);
21526#endif
21527
21528#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21529VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV(
21530 VkCommandBuffer commandBuffer,
21531 VkBool32 coverageToColorEnable);
21532#endif
21533
21534#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21535VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV(
21536 VkCommandBuffer commandBuffer,
21537 uint32_t coverageToColorLocation);
21538#endif
21539
21540#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21541VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV(
21542 VkCommandBuffer commandBuffer,
21543 VkCoverageModulationModeNV coverageModulationMode);
21544#endif
21545
21546#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21547VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV(
21548 VkCommandBuffer commandBuffer,
21549 VkBool32 coverageModulationTableEnable);
21550#endif
21551
21552#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21553VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV(
21554 VkCommandBuffer commandBuffer,
21555 uint32_t coverageModulationTableCount,
21556 const float* pCoverageModulationTable);
21557#endif
21558
21559#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21560VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV(
21561 VkCommandBuffer commandBuffer,
21562 VkBool32 shadingRateImageEnable);
21563#endif
21564
21565#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21566VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV(
21567 VkCommandBuffer commandBuffer,
21568 VkBool32 representativeFragmentTestEnable);
21569#endif
21570
21571#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21572VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV(
21573 VkCommandBuffer commandBuffer,
21574 VkCoverageReductionModeNV coverageReductionMode);
21575#endif
21576#endif
21577
21578
21579// VK_EXT_subpass_merge_feedback is a preprocessor guard. Do not pass it to API calls.
21580#define VK_EXT_subpass_merge_feedback 1
21581#define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2
21582#define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
21583
21584typedef enum VkSubpassMergeStatusEXT {
21585 VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0,
21586 VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1,
21587 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2,
21588 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3,
21589 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4,
21590 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5,
21591 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6,
21592 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7,
21593 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8,
21594 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9,
21595 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10,
21596 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11,
21597 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12,
21598 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13,
21599 VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 0x7FFFFFFF
21600} VkSubpassMergeStatusEXT;
21601typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
21602 VkStructureType sType;
21603 void* pNext;
21604 VkBool32 subpassMergeFeedback;
21605} VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
21606
21607typedef struct VkRenderPassCreationControlEXT {
21608 VkStructureType sType;
21609 const void* pNext;
21610 VkBool32 disallowMerging;
21611} VkRenderPassCreationControlEXT;
21612
21613typedef struct VkRenderPassCreationFeedbackInfoEXT {
21614 uint32_t postMergeSubpassCount;
21615} VkRenderPassCreationFeedbackInfoEXT;
21616
21617typedef struct VkRenderPassCreationFeedbackCreateInfoEXT {
21618 VkStructureType sType;
21619 const void* pNext;
21620 VkRenderPassCreationFeedbackInfoEXT* pRenderPassFeedback;
21621} VkRenderPassCreationFeedbackCreateInfoEXT;
21622
21623typedef struct VkRenderPassSubpassFeedbackInfoEXT {
21624 VkSubpassMergeStatusEXT subpassMergeStatus;
21625 char description[VK_MAX_DESCRIPTION_SIZE];
21626 uint32_t postMergeIndex;
21627} VkRenderPassSubpassFeedbackInfoEXT;
21628
21629typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT {
21630 VkStructureType sType;
21631 const void* pNext;
21632 VkRenderPassSubpassFeedbackInfoEXT* pSubpassFeedback;
21633} VkRenderPassSubpassFeedbackCreateInfoEXT;
21634
21635
21636
21637// VK_LUNARG_direct_driver_loading is a preprocessor guard. Do not pass it to API calls.
21638#define VK_LUNARG_direct_driver_loading 1
21639#define VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION 1
21640#define VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME "VK_LUNARG_direct_driver_loading"
21641
21642typedef enum VkDirectDriverLoadingModeLUNARG {
21643 VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0,
21644 VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1,
21645 VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 0x7FFFFFFF
21646} VkDirectDriverLoadingModeLUNARG;
21647typedef VkFlags VkDirectDriverLoadingFlagsLUNARG;
21648typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddrLUNARG)(
21649 VkInstance instance,
21650 const char* pName);
21651
21652typedef struct VkDirectDriverLoadingInfoLUNARG {
21653 VkStructureType sType;
21654 void* pNext;
21655 VkDirectDriverLoadingFlagsLUNARG flags;
21656 PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr;
21657} VkDirectDriverLoadingInfoLUNARG;
21658
21659typedef struct VkDirectDriverLoadingListLUNARG {
21660 VkStructureType sType;
21661 const void* pNext;
21662 VkDirectDriverLoadingModeLUNARG mode;
21663 uint32_t driverCount;
21664 const VkDirectDriverLoadingInfoLUNARG* pDrivers;
21665} VkDirectDriverLoadingListLUNARG;
21666
21667
21668
21669// VK_ARM_tensors is a preprocessor guard. Do not pass it to API calls.
21670#define VK_ARM_tensors 1
21671VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorViewARM)
21672#define VK_ARM_TENSORS_SPEC_VERSION 1
21673#define VK_ARM_TENSORS_EXTENSION_NAME "VK_ARM_tensors"
21674
21675typedef enum VkTensorTilingARM {
21676 VK_TENSOR_TILING_OPTIMAL_ARM = 0,
21677 VK_TENSOR_TILING_LINEAR_ARM = 1,
21678 VK_TENSOR_TILING_MAX_ENUM_ARM = 0x7FFFFFFF
21679} VkTensorTilingARM;
21680typedef VkFlags64 VkTensorCreateFlagsARM;
21681
21682// Flag bits for VkTensorCreateFlagBitsARM
21683typedef VkFlags64 VkTensorCreateFlagBitsARM;
21684static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARM = 0x00000001ULL;
21685static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_PROTECTED_BIT_ARM = 0x00000002ULL;
21686static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_ARM = 0x00000008ULL;
21687static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM = 0x00000004ULL;
21688
21689typedef VkFlags64 VkTensorUsageFlagsARM;
21690
21691// Flag bits for VkTensorUsageFlagBitsARM
21692typedef VkFlags64 VkTensorUsageFlagBitsARM;
21693static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_SHADER_BIT_ARM = 0x00000002ULL;
21694static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_TRANSFER_SRC_BIT_ARM = 0x00000004ULL;
21695static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_TRANSFER_DST_BIT_ARM = 0x00000008ULL;
21696static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_IMAGE_ALIASING_BIT_ARM = 0x00000010ULL;
21697static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_DATA_GRAPH_BIT_ARM = 0x00000020ULL;
21698
21699typedef struct VkTensorDescriptionARM {
21700 VkStructureType sType;
21701 const void* pNext;
21702 VkTensorTilingARM tiling;
21703 VkFormat format;
21704 uint32_t dimensionCount;
21705 const int64_t* pDimensions;
21706 const int64_t* pStrides;
21707 VkTensorUsageFlagsARM usage;
21708} VkTensorDescriptionARM;
21709
21710typedef struct VkTensorCreateInfoARM {
21711 VkStructureType sType;
21712 const void* pNext;
21713 VkTensorCreateFlagsARM flags;
21714 const VkTensorDescriptionARM* pDescription;
21715 VkSharingMode sharingMode;
21716 uint32_t queueFamilyIndexCount;
21717 const uint32_t* pQueueFamilyIndices;
21718} VkTensorCreateInfoARM;
21719
21720typedef struct VkTensorMemoryRequirementsInfoARM {
21721 VkStructureType sType;
21722 const void* pNext;
21723 VkTensorARM tensor;
21724} VkTensorMemoryRequirementsInfoARM;
21725
21726typedef struct VkBindTensorMemoryInfoARM {
21727 VkStructureType sType;
21728 const void* pNext;
21729 VkTensorARM tensor;
21730 VkDeviceMemory memory;
21731 VkDeviceSize memoryOffset;
21732} VkBindTensorMemoryInfoARM;
21733
21734typedef struct VkWriteDescriptorSetTensorARM {
21735 VkStructureType sType;
21736 const void* pNext;
21737 uint32_t tensorViewCount;
21738 const VkTensorViewARM* pTensorViews;
21739} VkWriteDescriptorSetTensorARM;
21740
21741typedef struct VkTensorFormatPropertiesARM {
21742 VkStructureType sType;
21743 void* pNext;
21744 VkFormatFeatureFlags2 optimalTilingTensorFeatures;
21745 VkFormatFeatureFlags2 linearTilingTensorFeatures;
21746} VkTensorFormatPropertiesARM;
21747
21748typedef struct VkPhysicalDeviceTensorPropertiesARM {
21749 VkStructureType sType;
21750 void* pNext;
21751 uint32_t maxTensorDimensionCount;
21752 uint64_t maxTensorElements;
21753 uint64_t maxPerDimensionTensorElements;
21754 int64_t maxTensorStride;
21755 uint64_t maxTensorSize;
21756 uint32_t maxTensorShaderAccessArrayLength;
21757 uint32_t maxTensorShaderAccessSize;
21758 uint32_t maxDescriptorSetStorageTensors;
21759 uint32_t maxPerStageDescriptorSetStorageTensors;
21760 uint32_t maxDescriptorSetUpdateAfterBindStorageTensors;
21761 uint32_t maxPerStageDescriptorUpdateAfterBindStorageTensors;
21762 VkBool32 shaderStorageTensorArrayNonUniformIndexingNative;
21763 VkShaderStageFlags shaderTensorSupportedStages;
21764} VkPhysicalDeviceTensorPropertiesARM;
21765
21766typedef struct VkTensorMemoryBarrierARM {
21767 VkStructureType sType;
21768 const void* pNext;
21769 VkPipelineStageFlags2 srcStageMask;
21770 VkAccessFlags2 srcAccessMask;
21771 VkPipelineStageFlags2 dstStageMask;
21772 VkAccessFlags2 dstAccessMask;
21773 uint32_t srcQueueFamilyIndex;
21774 uint32_t dstQueueFamilyIndex;
21775 VkTensorARM tensor;
21776} VkTensorMemoryBarrierARM;
21777
21778typedef struct VkTensorDependencyInfoARM {
21779 VkStructureType sType;
21780 const void* pNext;
21781 uint32_t tensorMemoryBarrierCount;
21782 const VkTensorMemoryBarrierARM* pTensorMemoryBarriers;
21783} VkTensorDependencyInfoARM;
21784
21785typedef struct VkPhysicalDeviceTensorFeaturesARM {
21786 VkStructureType sType;
21787 void* pNext;
21788 VkBool32 tensorNonPacked;
21789 VkBool32 shaderTensorAccess;
21790 VkBool32 shaderStorageTensorArrayDynamicIndexing;
21791 VkBool32 shaderStorageTensorArrayNonUniformIndexing;
21792 VkBool32 descriptorBindingStorageTensorUpdateAfterBind;
21793 VkBool32 tensors;
21794} VkPhysicalDeviceTensorFeaturesARM;
21795
21796typedef struct VkDeviceTensorMemoryRequirementsARM {
21797 VkStructureType sType;
21798 const void* pNext;
21799 const VkTensorCreateInfoARM* pCreateInfo;
21800} VkDeviceTensorMemoryRequirementsARM;
21801
21802typedef struct VkTensorCopyARM {
21803 VkStructureType sType;
21804 const void* pNext;
21805 uint32_t dimensionCount;
21806 const uint64_t* pSrcOffset;
21807 const uint64_t* pDstOffset;
21808 const uint64_t* pExtent;
21809} VkTensorCopyARM;
21810
21811typedef struct VkCopyTensorInfoARM {
21812 VkStructureType sType;
21813 const void* pNext;
21814 VkTensorARM srcTensor;
21815 VkTensorARM dstTensor;
21816 uint32_t regionCount;
21817 const VkTensorCopyARM* pRegions;
21818} VkCopyTensorInfoARM;
21819
21820typedef struct VkMemoryDedicatedAllocateInfoTensorARM {
21821 VkStructureType sType;
21822 const void* pNext;
21823 VkTensorARM tensor;
21824} VkMemoryDedicatedAllocateInfoTensorARM;
21825
21826typedef struct VkPhysicalDeviceExternalTensorInfoARM {
21827 VkStructureType sType;
21828 const void* pNext;
21829 VkTensorCreateFlagsARM flags;
21830 const VkTensorDescriptionARM* pDescription;
21831 VkExternalMemoryHandleTypeFlagBits handleType;
21832} VkPhysicalDeviceExternalTensorInfoARM;
21833
21834typedef struct VkExternalTensorPropertiesARM {
21835 VkStructureType sType;
21836 const void* pNext;
21837 VkExternalMemoryProperties externalMemoryProperties;
21838} VkExternalTensorPropertiesARM;
21839
21840typedef struct VkExternalMemoryTensorCreateInfoARM {
21841 VkStructureType sType;
21842 const void* pNext;
21843 VkExternalMemoryHandleTypeFlags handleTypes;
21844} VkExternalMemoryTensorCreateInfoARM;
21845
21846typedef struct VkPhysicalDeviceDescriptorBufferTensorFeaturesARM {
21847 VkStructureType sType;
21848 void* pNext;
21849 VkBool32 descriptorBufferTensorDescriptors;
21850} VkPhysicalDeviceDescriptorBufferTensorFeaturesARM;
21851
21852typedef struct VkPhysicalDeviceDescriptorBufferTensorPropertiesARM {
21853 VkStructureType sType;
21854 void* pNext;
21855 size_t tensorCaptureReplayDescriptorDataSize;
21856 size_t tensorViewCaptureReplayDescriptorDataSize;
21857 size_t tensorDescriptorSize;
21858} VkPhysicalDeviceDescriptorBufferTensorPropertiesARM;
21859
21860typedef struct VkDescriptorGetTensorInfoARM {
21861 VkStructureType sType;
21862 const void* pNext;
21863 VkTensorViewARM tensorView;
21864} VkDescriptorGetTensorInfoARM;
21865
21866typedef struct VkTensorCaptureDescriptorDataInfoARM {
21867 VkStructureType sType;
21868 const void* pNext;
21869 VkTensorARM tensor;
21870} VkTensorCaptureDescriptorDataInfoARM;
21871
21872typedef struct VkTensorViewCaptureDescriptorDataInfoARM {
21873 VkStructureType sType;
21874 const void* pNext;
21875 VkTensorViewARM tensorView;
21876} VkTensorViewCaptureDescriptorDataInfoARM;
21877
21878typedef struct VkFrameBoundaryTensorsARM {
21879 VkStructureType sType;
21880 const void* pNext;
21881 uint32_t tensorCount;
21882 const VkTensorARM* pTensors;
21883} VkFrameBoundaryTensorsARM;
21884
21885typedef VkResult (VKAPI_PTR *PFN_vkCreateTensorARM)(VkDevice device, const VkTensorCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkTensorARM* pTensor);
21886typedef void (VKAPI_PTR *PFN_vkDestroyTensorARM)(VkDevice device, VkTensorARM tensor, const VkAllocationCallbacks* pAllocator);
21887typedef VkResult (VKAPI_PTR *PFN_vkCreateTensorViewARM)(VkDevice device, const VkTensorViewCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkTensorViewARM* pView);
21888typedef void (VKAPI_PTR *PFN_vkDestroyTensorViewARM)(VkDevice device, VkTensorViewARM tensorView, const VkAllocationCallbacks* pAllocator);
21889typedef void (VKAPI_PTR *PFN_vkGetTensorMemoryRequirementsARM)(VkDevice device, const VkTensorMemoryRequirementsInfoARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
21890typedef VkResult (VKAPI_PTR *PFN_vkBindTensorMemoryARM)(VkDevice device, uint32_t bindInfoCount, const VkBindTensorMemoryInfoARM* pBindInfos);
21891typedef void (VKAPI_PTR *PFN_vkGetDeviceTensorMemoryRequirementsARM)(VkDevice device, const VkDeviceTensorMemoryRequirementsARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
21892typedef void (VKAPI_PTR *PFN_vkCmdCopyTensorARM)(VkCommandBuffer commandBuffer, const VkCopyTensorInfoARM* pCopyTensorInfo);
21893typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo, VkExternalTensorPropertiesARM* pExternalTensorProperties);
21894typedef VkResult (VKAPI_PTR *PFN_vkGetTensorOpaqueCaptureDescriptorDataARM)(VkDevice device, const VkTensorCaptureDescriptorDataInfoARM* pInfo, void* pData);
21895typedef VkResult (VKAPI_PTR *PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM)(VkDevice device, const VkTensorViewCaptureDescriptorDataInfoARM* pInfo, void* pData);
21896
21897#ifndef VK_NO_PROTOTYPES
21898#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21899VKAPI_ATTR VkResult VKAPI_CALL vkCreateTensorARM(
21900 VkDevice device,
21901 const VkTensorCreateInfoARM* pCreateInfo,
21902 const VkAllocationCallbacks* pAllocator,
21903 VkTensorARM* pTensor);
21904#endif
21905
21906#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21907VKAPI_ATTR void VKAPI_CALL vkDestroyTensorARM(
21908 VkDevice device,
21909 VkTensorARM tensor,
21910 const VkAllocationCallbacks* pAllocator);
21911#endif
21912
21913#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21914VKAPI_ATTR VkResult VKAPI_CALL vkCreateTensorViewARM(
21915 VkDevice device,
21916 const VkTensorViewCreateInfoARM* pCreateInfo,
21917 const VkAllocationCallbacks* pAllocator,
21918 VkTensorViewARM* pView);
21919#endif
21920
21921#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21922VKAPI_ATTR void VKAPI_CALL vkDestroyTensorViewARM(
21923 VkDevice device,
21924 VkTensorViewARM tensorView,
21925 const VkAllocationCallbacks* pAllocator);
21926#endif
21927
21928#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21929VKAPI_ATTR void VKAPI_CALL vkGetTensorMemoryRequirementsARM(
21930 VkDevice device,
21931 const VkTensorMemoryRequirementsInfoARM* pInfo,
21932 VkMemoryRequirements2* pMemoryRequirements);
21933#endif
21934
21935#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21936VKAPI_ATTR VkResult VKAPI_CALL vkBindTensorMemoryARM(
21937 VkDevice device,
21938 uint32_t bindInfoCount,
21939 const VkBindTensorMemoryInfoARM* pBindInfos);
21940#endif
21941
21942#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21943VKAPI_ATTR void VKAPI_CALL vkGetDeviceTensorMemoryRequirementsARM(
21944 VkDevice device,
21945 const VkDeviceTensorMemoryRequirementsARM* pInfo,
21946 VkMemoryRequirements2* pMemoryRequirements);
21947#endif
21948
21949#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21950VKAPI_ATTR void VKAPI_CALL vkCmdCopyTensorARM(
21951 VkCommandBuffer commandBuffer,
21952 const VkCopyTensorInfoARM* pCopyTensorInfo);
21953#endif
21954
21955#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21956VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalTensorPropertiesARM(
21957 VkPhysicalDevice physicalDevice,
21958 const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo,
21959 VkExternalTensorPropertiesARM* pExternalTensorProperties);
21960#endif
21961
21962#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21963VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorOpaqueCaptureDescriptorDataARM(
21964 VkDevice device,
21965 const VkTensorCaptureDescriptorDataInfoARM* pInfo,
21966 void* pData);
21967#endif
21968
21969#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21970VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorViewOpaqueCaptureDescriptorDataARM(
21971 VkDevice device,
21972 const VkTensorViewCaptureDescriptorDataInfoARM* pInfo,
21973 void* pData);
21974#endif
21975#endif
21976
21977
21978// VK_EXT_shader_module_identifier is a preprocessor guard. Do not pass it to API calls.
21979#define VK_EXT_shader_module_identifier 1
21980#define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U
21981#define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1
21982#define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
21983typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT {
21984 VkStructureType sType;
21985 void* pNext;
21986 VkBool32 shaderModuleIdentifier;
21987} VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
21988
21989typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT {
21990 VkStructureType sType;
21991 void* pNext;
21992 uint8_t shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
21993} VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
21994
21995typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT {
21996 VkStructureType sType;
21997 const void* pNext;
21998 uint32_t identifierSize;
21999 const uint8_t* pIdentifier;
22000} VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
22001
22002typedef struct VkShaderModuleIdentifierEXT {
22003 VkStructureType sType;
22004 void* pNext;
22005 uint32_t identifierSize;
22006 uint8_t identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
22007} VkShaderModuleIdentifierEXT;
22008
22009typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier);
22010typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier);
22011
22012#ifndef VK_NO_PROTOTYPES
22013#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22014VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleIdentifierEXT(
22015 VkDevice device,
22016 VkShaderModule shaderModule,
22017 VkShaderModuleIdentifierEXT* pIdentifier);
22018#endif
22019
22020#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22021VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT(
22022 VkDevice device,
22023 const VkShaderModuleCreateInfo* pCreateInfo,
22024 VkShaderModuleIdentifierEXT* pIdentifier);
22025#endif
22026#endif
22027
22028
22029// VK_EXT_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
22030#define VK_EXT_rasterization_order_attachment_access 1
22031#define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
22032#define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access"
22033
22034
22035// VK_NV_optical_flow is a preprocessor guard. Do not pass it to API calls.
22036#define VK_NV_optical_flow 1
22037VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV)
22038#define VK_NV_OPTICAL_FLOW_SPEC_VERSION 1
22039#define VK_NV_OPTICAL_FLOW_EXTENSION_NAME "VK_NV_optical_flow"
22040
22041typedef enum VkOpticalFlowPerformanceLevelNV {
22042 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0,
22043 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1,
22044 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2,
22045 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3,
22046 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 0x7FFFFFFF
22047} VkOpticalFlowPerformanceLevelNV;
22048
22049typedef enum VkOpticalFlowSessionBindingPointNV {
22050 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0,
22051 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1,
22052 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2,
22053 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3,
22054 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4,
22055 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5,
22056 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6,
22057 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7,
22058 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8,
22059 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 0x7FFFFFFF
22060} VkOpticalFlowSessionBindingPointNV;
22061
22062typedef enum VkOpticalFlowGridSizeFlagBitsNV {
22063 VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0,
22064 VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0x00000001,
22065 VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0x00000002,
22066 VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0x00000004,
22067 VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0x00000008,
22068 VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
22069} VkOpticalFlowGridSizeFlagBitsNV;
22070typedef VkFlags VkOpticalFlowGridSizeFlagsNV;
22071
22072typedef enum VkOpticalFlowUsageFlagBitsNV {
22073 VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0,
22074 VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0x00000001,
22075 VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0x00000002,
22076 VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0x00000004,
22077 VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0x00000008,
22078 VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0x00000010,
22079 VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
22080} VkOpticalFlowUsageFlagBitsNV;
22081typedef VkFlags VkOpticalFlowUsageFlagsNV;
22082
22083typedef enum VkOpticalFlowSessionCreateFlagBitsNV {
22084 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0x00000001,
22085 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0x00000002,
22086 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0x00000004,
22087 VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0x00000008,
22088 VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0x00000010,
22089 VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
22090} VkOpticalFlowSessionCreateFlagBitsNV;
22091typedef VkFlags VkOpticalFlowSessionCreateFlagsNV;
22092
22093typedef enum VkOpticalFlowExecuteFlagBitsNV {
22094 VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0x00000001,
22095 VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
22096} VkOpticalFlowExecuteFlagBitsNV;
22097typedef VkFlags VkOpticalFlowExecuteFlagsNV;
22098typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV {
22099 VkStructureType sType;
22100 void* pNext;
22101 VkBool32 opticalFlow;
22102} VkPhysicalDeviceOpticalFlowFeaturesNV;
22103
22104typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV {
22105 VkStructureType sType;
22106 void* pNext;
22107 VkOpticalFlowGridSizeFlagsNV supportedOutputGridSizes;
22108 VkOpticalFlowGridSizeFlagsNV supportedHintGridSizes;
22109 VkBool32 hintSupported;
22110 VkBool32 costSupported;
22111 VkBool32 bidirectionalFlowSupported;
22112 VkBool32 globalFlowSupported;
22113 uint32_t minWidth;
22114 uint32_t minHeight;
22115 uint32_t maxWidth;
22116 uint32_t maxHeight;
22117 uint32_t maxNumRegionsOfInterest;
22118} VkPhysicalDeviceOpticalFlowPropertiesNV;
22119
22120typedef struct VkOpticalFlowImageFormatInfoNV {
22121 VkStructureType sType;
22122 const void* pNext;
22123 VkOpticalFlowUsageFlagsNV usage;
22124} VkOpticalFlowImageFormatInfoNV;
22125
22126typedef struct VkOpticalFlowImageFormatPropertiesNV {
22127 VkStructureType sType;
22128 void* pNext;
22129 VkFormat format;
22130} VkOpticalFlowImageFormatPropertiesNV;
22131
22132typedef struct VkOpticalFlowSessionCreateInfoNV {
22133 VkStructureType sType;
22134 void* pNext;
22135 uint32_t width;
22136 uint32_t height;
22137 VkFormat imageFormat;
22138 VkFormat flowVectorFormat;
22139 VkFormat costFormat;
22140 VkOpticalFlowGridSizeFlagsNV outputGridSize;
22141 VkOpticalFlowGridSizeFlagsNV hintGridSize;
22142 VkOpticalFlowPerformanceLevelNV performanceLevel;
22143 VkOpticalFlowSessionCreateFlagsNV flags;
22144} VkOpticalFlowSessionCreateInfoNV;
22145
22146typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV {
22147 VkStructureType sType;
22148 void* pNext;
22149 uint32_t id;
22150 uint32_t size;
22151 const void* pPrivateData;
22152} VkOpticalFlowSessionCreatePrivateDataInfoNV;
22153
22154typedef struct VkOpticalFlowExecuteInfoNV {
22155 VkStructureType sType;
22156 void* pNext;
22157 VkOpticalFlowExecuteFlagsNV flags;
22158 uint32_t regionCount;
22159 const VkRect2D* pRegions;
22160} VkOpticalFlowExecuteInfoNV;
22161
22162typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
22163typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice device, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession);
22164typedef void (VKAPI_PTR *PFN_vkDestroyOpticalFlowSessionNV)(VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator);
22165typedef VkResult (VKAPI_PTR *PFN_vkBindOpticalFlowSessionImageNV)(VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout);
22166typedef void (VKAPI_PTR *PFN_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
22167
22168#ifndef VK_NO_PROTOTYPES
22169#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22170VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
22171 VkPhysicalDevice physicalDevice,
22172 const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo,
22173 uint32_t* pFormatCount,
22174 VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
22175#endif
22176
22177#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22178VKAPI_ATTR VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV(
22179 VkDevice device,
22180 const VkOpticalFlowSessionCreateInfoNV* pCreateInfo,
22181 const VkAllocationCallbacks* pAllocator,
22182 VkOpticalFlowSessionNV* pSession);
22183#endif
22184
22185#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22186VKAPI_ATTR void VKAPI_CALL vkDestroyOpticalFlowSessionNV(
22187 VkDevice device,
22188 VkOpticalFlowSessionNV session,
22189 const VkAllocationCallbacks* pAllocator);
22190#endif
22191
22192#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22193VKAPI_ATTR VkResult VKAPI_CALL vkBindOpticalFlowSessionImageNV(
22194 VkDevice device,
22195 VkOpticalFlowSessionNV session,
22196 VkOpticalFlowSessionBindingPointNV bindingPoint,
22197 VkImageView view,
22198 VkImageLayout layout);
22199#endif
22200
22201#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22202VKAPI_ATTR void VKAPI_CALL vkCmdOpticalFlowExecuteNV(
22203 VkCommandBuffer commandBuffer,
22204 VkOpticalFlowSessionNV session,
22205 const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
22206#endif
22207#endif
22208
22209
22210// VK_EXT_legacy_dithering is a preprocessor guard. Do not pass it to API calls.
22211#define VK_EXT_legacy_dithering 1
22212#define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 2
22213#define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering"
22214typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT {
22215 VkStructureType sType;
22216 void* pNext;
22217 VkBool32 legacyDithering;
22218} VkPhysicalDeviceLegacyDitheringFeaturesEXT;
22219
22220
22221
22222// VK_EXT_pipeline_protected_access is a preprocessor guard. Do not pass it to API calls.
22223#define VK_EXT_pipeline_protected_access 1
22224#define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1
22225#define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access"
22226typedef VkPhysicalDevicePipelineProtectedAccessFeatures VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
22227
22228
22229
22230// VK_AMD_anti_lag is a preprocessor guard. Do not pass it to API calls.
22231#define VK_AMD_anti_lag 1
22232#define VK_AMD_ANTI_LAG_SPEC_VERSION 1
22233#define VK_AMD_ANTI_LAG_EXTENSION_NAME "VK_AMD_anti_lag"
22234
22235typedef enum VkAntiLagModeAMD {
22236 VK_ANTI_LAG_MODE_DRIVER_CONTROL_AMD = 0,
22237 VK_ANTI_LAG_MODE_ON_AMD = 1,
22238 VK_ANTI_LAG_MODE_OFF_AMD = 2,
22239 VK_ANTI_LAG_MODE_MAX_ENUM_AMD = 0x7FFFFFFF
22240} VkAntiLagModeAMD;
22241
22242typedef enum VkAntiLagStageAMD {
22243 VK_ANTI_LAG_STAGE_INPUT_AMD = 0,
22244 VK_ANTI_LAG_STAGE_PRESENT_AMD = 1,
22245 VK_ANTI_LAG_STAGE_MAX_ENUM_AMD = 0x7FFFFFFF
22246} VkAntiLagStageAMD;
22247typedef struct VkPhysicalDeviceAntiLagFeaturesAMD {
22248 VkStructureType sType;
22249 void* pNext;
22250 VkBool32 antiLag;
22251} VkPhysicalDeviceAntiLagFeaturesAMD;
22252
22253typedef struct VkAntiLagPresentationInfoAMD {
22254 VkStructureType sType;
22255 void* pNext;
22256 VkAntiLagStageAMD stage;
22257 uint64_t frameIndex;
22258} VkAntiLagPresentationInfoAMD;
22259
22260typedef struct VkAntiLagDataAMD {
22261 VkStructureType sType;
22262 const void* pNext;
22263 VkAntiLagModeAMD mode;
22264 uint32_t maxFPS;
22265 const VkAntiLagPresentationInfoAMD* pPresentationInfo;
22266} VkAntiLagDataAMD;
22267
22268typedef void (VKAPI_PTR *PFN_vkAntiLagUpdateAMD)(VkDevice device, const VkAntiLagDataAMD* pData);
22269
22270#ifndef VK_NO_PROTOTYPES
22271#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22272VKAPI_ATTR void VKAPI_CALL vkAntiLagUpdateAMD(
22273 VkDevice device,
22274 const VkAntiLagDataAMD* pData);
22275#endif
22276#endif
22277
22278
22279// VK_EXT_shader_object is a preprocessor guard. Do not pass it to API calls.
22280#define VK_EXT_shader_object 1
22281VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT)
22282#define VK_EXT_SHADER_OBJECT_SPEC_VERSION 1
22283#define VK_EXT_SHADER_OBJECT_EXTENSION_NAME "VK_EXT_shader_object"
22284
22285typedef enum VkShaderCodeTypeEXT {
22286 VK_SHADER_CODE_TYPE_BINARY_EXT = 0,
22287 VK_SHADER_CODE_TYPE_SPIRV_EXT = 1,
22288 VK_SHADER_CODE_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
22289} VkShaderCodeTypeEXT;
22290
22291typedef enum VkDepthClampModeEXT {
22292 VK_DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT = 0,
22293 VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT = 1,
22294 VK_DEPTH_CLAMP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
22295} VkDepthClampModeEXT;
22296
22297typedef enum VkShaderCreateFlagBitsEXT {
22298 VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001,
22299 VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT = 0x00000400,
22300 VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002,
22301 VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000004,
22302 VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = 0x00000008,
22303 VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010,
22304 VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020,
22305 VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040,
22306 VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT = 0x00000080,
22307 VK_SHADER_CREATE_64_BIT_INDEXING_BIT_EXT = 0x00008000,
22308 VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
22309} VkShaderCreateFlagBitsEXT;
22310typedef VkFlags VkShaderCreateFlagsEXT;
22311typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT {
22312 VkStructureType sType;
22313 void* pNext;
22314 VkBool32 shaderObject;
22315} VkPhysicalDeviceShaderObjectFeaturesEXT;
22316
22317typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT {
22318 VkStructureType sType;
22319 void* pNext;
22320 uint8_t shaderBinaryUUID[VK_UUID_SIZE];
22321 uint32_t shaderBinaryVersion;
22322} VkPhysicalDeviceShaderObjectPropertiesEXT;
22323
22324typedef struct VkShaderCreateInfoEXT {
22325 VkStructureType sType;
22326 const void* pNext;
22327 VkShaderCreateFlagsEXT flags;
22328 VkShaderStageFlagBits stage;
22329 VkShaderStageFlags nextStage;
22330 VkShaderCodeTypeEXT codeType;
22331 size_t codeSize;
22332 const void* pCode;
22333 const char* pName;
22334 uint32_t setLayoutCount;
22335 const VkDescriptorSetLayout* pSetLayouts;
22336 uint32_t pushConstantRangeCount;
22337 const VkPushConstantRange* pPushConstantRanges;
22338 const VkSpecializationInfo* pSpecializationInfo;
22339} VkShaderCreateInfoEXT;
22340
22341typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT;
22342
22343typedef struct VkDepthClampRangeEXT {
22344 float minDepthClamp;
22345 float maxDepthClamp;
22346} VkDepthClampRangeEXT;
22347
22348typedef VkResult (VKAPI_PTR *PFN_vkCreateShadersEXT)(VkDevice device, uint32_t createInfoCount, const VkShaderCreateInfoEXT* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders);
22349typedef void (VKAPI_PTR *PFN_vkDestroyShaderEXT)(VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks* pAllocator);
22350typedef VkResult (VKAPI_PTR *PFN_vkGetShaderBinaryDataEXT)(VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData);
22351typedef void (VKAPI_PTR *PFN_vkCmdBindShadersEXT)(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders);
22352typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampRangeEXT)(VkCommandBuffer commandBuffer, VkDepthClampModeEXT depthClampMode, const VkDepthClampRangeEXT* pDepthClampRange);
22353
22354#ifndef VK_NO_PROTOTYPES
22355#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22356VKAPI_ATTR VkResult VKAPI_CALL vkCreateShadersEXT(
22357 VkDevice device,
22358 uint32_t createInfoCount,
22359 const VkShaderCreateInfoEXT* pCreateInfos,
22360 const VkAllocationCallbacks* pAllocator,
22361 VkShaderEXT* pShaders);
22362#endif
22363
22364#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22365VKAPI_ATTR void VKAPI_CALL vkDestroyShaderEXT(
22366 VkDevice device,
22367 VkShaderEXT shader,
22368 const VkAllocationCallbacks* pAllocator);
22369#endif
22370
22371#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22372VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderBinaryDataEXT(
22373 VkDevice device,
22374 VkShaderEXT shader,
22375 size_t* pDataSize,
22376 void* pData);
22377#endif
22378
22379#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22380VKAPI_ATTR void VKAPI_CALL vkCmdBindShadersEXT(
22381 VkCommandBuffer commandBuffer,
22382 uint32_t stageCount,
22383 const VkShaderStageFlagBits* pStages,
22384 const VkShaderEXT* pShaders);
22385#endif
22386
22387#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22388VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampRangeEXT(
22389 VkCommandBuffer commandBuffer,
22390 VkDepthClampModeEXT depthClampMode,
22391 const VkDepthClampRangeEXT* pDepthClampRange);
22392#endif
22393#endif
22394
22395
22396// VK_QCOM_tile_properties is a preprocessor guard. Do not pass it to API calls.
22397#define VK_QCOM_tile_properties 1
22398#define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1
22399#define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
22400typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM {
22401 VkStructureType sType;
22402 void* pNext;
22403 VkBool32 tileProperties;
22404} VkPhysicalDeviceTilePropertiesFeaturesQCOM;
22405
22406typedef struct VkTilePropertiesQCOM {
22407 VkStructureType sType;
22408 void* pNext;
22409 VkExtent3D tileSize;
22410 VkExtent2D apronSize;
22411 VkOffset2D origin;
22412} VkTilePropertiesQCOM;
22413
22414typedef VkResult (VKAPI_PTR *PFN_vkGetFramebufferTilePropertiesQCOM)(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties);
22415typedef VkResult (VKAPI_PTR *PFN_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties);
22416
22417#ifndef VK_NO_PROTOTYPES
22418#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22419VKAPI_ATTR VkResult VKAPI_CALL vkGetFramebufferTilePropertiesQCOM(
22420 VkDevice device,
22421 VkFramebuffer framebuffer,
22422 uint32_t* pPropertiesCount,
22423 VkTilePropertiesQCOM* pProperties);
22424#endif
22425
22426#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22427VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM(
22428 VkDevice device,
22429 const VkRenderingInfo* pRenderingInfo,
22430 VkTilePropertiesQCOM* pProperties);
22431#endif
22432#endif
22433
22434
22435// VK_SEC_amigo_profiling is a preprocessor guard. Do not pass it to API calls.
22436#define VK_SEC_amigo_profiling 1
22437#define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1
22438#define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling"
22439typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC {
22440 VkStructureType sType;
22441 void* pNext;
22442 VkBool32 amigoProfiling;
22443} VkPhysicalDeviceAmigoProfilingFeaturesSEC;
22444
22445typedef struct VkAmigoProfilingSubmitInfoSEC {
22446 VkStructureType sType;
22447 const void* pNext;
22448 uint64_t firstDrawTimestamp;
22449 uint64_t swapBufferTimestamp;
22450} VkAmigoProfilingSubmitInfoSEC;
22451
22452
22453
22454// VK_QCOM_multiview_per_view_viewports is a preprocessor guard. Do not pass it to API calls.
22455#define VK_QCOM_multiview_per_view_viewports 1
22456#define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION 1
22457#define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports"
22458typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
22459 VkStructureType sType;
22460 void* pNext;
22461 VkBool32 multiviewPerViewViewports;
22462} VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
22463
22464
22465
22466// VK_NV_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
22467#define VK_NV_ray_tracing_invocation_reorder 1
22468#define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
22469#define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder"
22470
22471typedef enum VkRayTracingInvocationReorderModeEXT {
22472 VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_EXT = 0,
22473 VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_EXT = 1,
22474 VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_EXT,
22475 VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_EXT,
22476 VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
22477} VkRayTracingInvocationReorderModeEXT;
22478typedef VkRayTracingInvocationReorderModeEXT VkRayTracingInvocationReorderModeNV;
22479
22480typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV {
22481 VkStructureType sType;
22482 void* pNext;
22483 VkRayTracingInvocationReorderModeEXT rayTracingInvocationReorderReorderingHint;
22484} VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV;
22485
22486typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV {
22487 VkStructureType sType;
22488 void* pNext;
22489 VkBool32 rayTracingInvocationReorder;
22490} VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV;
22491
22492
22493
22494// VK_NV_cooperative_vector is a preprocessor guard. Do not pass it to API calls.
22495#define VK_NV_cooperative_vector 1
22496#define VK_NV_COOPERATIVE_VECTOR_SPEC_VERSION 4
22497#define VK_NV_COOPERATIVE_VECTOR_EXTENSION_NAME "VK_NV_cooperative_vector"
22498
22499typedef enum VkCooperativeVectorMatrixLayoutNV {
22500 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_ROW_MAJOR_NV = 0,
22501 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_COLUMN_MAJOR_NV = 1,
22502 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_INFERENCING_OPTIMAL_NV = 2,
22503 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_TRAINING_OPTIMAL_NV = 3,
22504 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_MAX_ENUM_NV = 0x7FFFFFFF
22505} VkCooperativeVectorMatrixLayoutNV;
22506typedef struct VkPhysicalDeviceCooperativeVectorPropertiesNV {
22507 VkStructureType sType;
22508 void* pNext;
22509 VkShaderStageFlags cooperativeVectorSupportedStages;
22510 VkBool32 cooperativeVectorTrainingFloat16Accumulation;
22511 VkBool32 cooperativeVectorTrainingFloat32Accumulation;
22512 uint32_t maxCooperativeVectorComponents;
22513} VkPhysicalDeviceCooperativeVectorPropertiesNV;
22514
22515typedef struct VkPhysicalDeviceCooperativeVectorFeaturesNV {
22516 VkStructureType sType;
22517 void* pNext;
22518 VkBool32 cooperativeVector;
22519 VkBool32 cooperativeVectorTraining;
22520} VkPhysicalDeviceCooperativeVectorFeaturesNV;
22521
22522typedef struct VkCooperativeVectorPropertiesNV {
22523 VkStructureType sType;
22524 void* pNext;
22525 VkComponentTypeKHR inputType;
22526 VkComponentTypeKHR inputInterpretation;
22527 VkComponentTypeKHR matrixInterpretation;
22528 VkComponentTypeKHR biasInterpretation;
22529 VkComponentTypeKHR resultType;
22530 VkBool32 transpose;
22531} VkCooperativeVectorPropertiesNV;
22532
22533typedef struct VkConvertCooperativeVectorMatrixInfoNV {
22534 VkStructureType sType;
22535 const void* pNext;
22536 size_t srcSize;
22537 VkDeviceOrHostAddressConstKHR srcData;
22538 size_t* pDstSize;
22539 VkDeviceOrHostAddressKHR dstData;
22540 VkComponentTypeKHR srcComponentType;
22541 VkComponentTypeKHR dstComponentType;
22542 uint32_t numRows;
22543 uint32_t numColumns;
22544 VkCooperativeVectorMatrixLayoutNV srcLayout;
22545 size_t srcStride;
22546 VkCooperativeVectorMatrixLayoutNV dstLayout;
22547 size_t dstStride;
22548} VkConvertCooperativeVectorMatrixInfoNV;
22549
22550typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeVectorPropertiesNV* pProperties);
22551typedef VkResult (VKAPI_PTR *PFN_vkConvertCooperativeVectorMatrixNV)(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo);
22552typedef void (VKAPI_PTR *PFN_vkCmdConvertCooperativeVectorMatrixNV)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkConvertCooperativeVectorMatrixInfoNV* pInfos);
22553
22554#ifndef VK_NO_PROTOTYPES
22555#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22556VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeVectorPropertiesNV(
22557 VkPhysicalDevice physicalDevice,
22558 uint32_t* pPropertyCount,
22559 VkCooperativeVectorPropertiesNV* pProperties);
22560#endif
22561
22562#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22563VKAPI_ATTR VkResult VKAPI_CALL vkConvertCooperativeVectorMatrixNV(
22564 VkDevice device,
22565 const VkConvertCooperativeVectorMatrixInfoNV* pInfo);
22566#endif
22567
22568#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22569VKAPI_ATTR void VKAPI_CALL vkCmdConvertCooperativeVectorMatrixNV(
22570 VkCommandBuffer commandBuffer,
22571 uint32_t infoCount,
22572 const VkConvertCooperativeVectorMatrixInfoNV* pInfos);
22573#endif
22574#endif
22575
22576
22577// VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls.
22578#define VK_NV_extended_sparse_address_space 1
22579#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1
22580#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space"
22581typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
22582 VkStructureType sType;
22583 void* pNext;
22584 VkBool32 extendedSparseAddressSpace;
22585} VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
22586
22587typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
22588 VkStructureType sType;
22589 void* pNext;
22590 VkDeviceSize extendedSparseAddressSpaceSize;
22591 VkImageUsageFlags extendedSparseImageUsageFlags;
22592 VkBufferUsageFlags extendedSparseBufferUsageFlags;
22593} VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
22594
22595
22596
22597// VK_EXT_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
22598#define VK_EXT_mutable_descriptor_type 1
22599#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
22600#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
22601
22602
22603// VK_EXT_legacy_vertex_attributes is a preprocessor guard. Do not pass it to API calls.
22604#define VK_EXT_legacy_vertex_attributes 1
22605#define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION 1
22606#define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME "VK_EXT_legacy_vertex_attributes"
22607typedef struct VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT {
22608 VkStructureType sType;
22609 void* pNext;
22610 VkBool32 legacyVertexAttributes;
22611} VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT;
22612
22613typedef struct VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT {
22614 VkStructureType sType;
22615 void* pNext;
22616 VkBool32 nativeUnalignedPerformance;
22617} VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT;
22618
22619
22620
22621// VK_EXT_layer_settings is a preprocessor guard. Do not pass it to API calls.
22622#define VK_EXT_layer_settings 1
22623#define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 2
22624#define VK_EXT_LAYER_SETTINGS_EXTENSION_NAME "VK_EXT_layer_settings"
22625
22626typedef enum VkLayerSettingTypeEXT {
22627 VK_LAYER_SETTING_TYPE_BOOL32_EXT = 0,
22628 VK_LAYER_SETTING_TYPE_INT32_EXT = 1,
22629 VK_LAYER_SETTING_TYPE_INT64_EXT = 2,
22630 VK_LAYER_SETTING_TYPE_UINT32_EXT = 3,
22631 VK_LAYER_SETTING_TYPE_UINT64_EXT = 4,
22632 VK_LAYER_SETTING_TYPE_FLOAT32_EXT = 5,
22633 VK_LAYER_SETTING_TYPE_FLOAT64_EXT = 6,
22634 VK_LAYER_SETTING_TYPE_STRING_EXT = 7,
22635 VK_LAYER_SETTING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
22636} VkLayerSettingTypeEXT;
22637typedef struct VkLayerSettingEXT {
22638 const char* pLayerName;
22639 const char* pSettingName;
22640 VkLayerSettingTypeEXT type;
22641 uint32_t valueCount;
22642 const void* pValues;
22643} VkLayerSettingEXT;
22644
22645typedef struct VkLayerSettingsCreateInfoEXT {
22646 VkStructureType sType;
22647 const void* pNext;
22648 uint32_t settingCount;
22649 const VkLayerSettingEXT* pSettings;
22650} VkLayerSettingsCreateInfoEXT;
22651
22652
22653
22654// VK_ARM_shader_core_builtins is a preprocessor guard. Do not pass it to API calls.
22655#define VK_ARM_shader_core_builtins 1
22656#define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2
22657#define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins"
22658typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM {
22659 VkStructureType sType;
22660 void* pNext;
22661 VkBool32 shaderCoreBuiltins;
22662} VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
22663
22664typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM {
22665 VkStructureType sType;
22666 void* pNext;
22667 uint64_t shaderCoreMask;
22668 uint32_t shaderCoreCount;
22669 uint32_t shaderWarpsPerCore;
22670} VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM;
22671
22672
22673
22674// VK_EXT_pipeline_library_group_handles is a preprocessor guard. Do not pass it to API calls.
22675#define VK_EXT_pipeline_library_group_handles 1
22676#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION 1
22677#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles"
22678typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
22679 VkStructureType sType;
22680 void* pNext;
22681 VkBool32 pipelineLibraryGroupHandles;
22682} VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
22683
22684
22685
22686// VK_EXT_dynamic_rendering_unused_attachments is a preprocessor guard. Do not pass it to API calls.
22687#define VK_EXT_dynamic_rendering_unused_attachments 1
22688#define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION 1
22689#define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME "VK_EXT_dynamic_rendering_unused_attachments"
22690typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
22691 VkStructureType sType;
22692 void* pNext;
22693 VkBool32 dynamicRenderingUnusedAttachments;
22694} VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
22695
22696
22697
22698// VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls.
22699#define VK_NV_low_latency2 1
22700#define VK_NV_LOW_LATENCY_2_SPEC_VERSION 2
22701#define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2"
22702
22703typedef enum VkLatencyMarkerNV {
22704 VK_LATENCY_MARKER_SIMULATION_START_NV = 0,
22705 VK_LATENCY_MARKER_SIMULATION_END_NV = 1,
22706 VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2,
22707 VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3,
22708 VK_LATENCY_MARKER_PRESENT_START_NV = 4,
22709 VK_LATENCY_MARKER_PRESENT_END_NV = 5,
22710 VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6,
22711 VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7,
22712 VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8,
22713 VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9,
22714 VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10,
22715 VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11,
22716 VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF
22717} VkLatencyMarkerNV;
22718
22719typedef enum VkOutOfBandQueueTypeNV {
22720 VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0,
22721 VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1,
22722 VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
22723} VkOutOfBandQueueTypeNV;
22724typedef struct VkLatencySleepModeInfoNV {
22725 VkStructureType sType;
22726 const void* pNext;
22727 VkBool32 lowLatencyMode;
22728 VkBool32 lowLatencyBoost;
22729 uint32_t minimumIntervalUs;
22730} VkLatencySleepModeInfoNV;
22731
22732typedef struct VkLatencySleepInfoNV {
22733 VkStructureType sType;
22734 const void* pNext;
22735 VkSemaphore signalSemaphore;
22736 uint64_t value;
22737} VkLatencySleepInfoNV;
22738
22739typedef struct VkSetLatencyMarkerInfoNV {
22740 VkStructureType sType;
22741 const void* pNext;
22742 uint64_t presentID;
22743 VkLatencyMarkerNV marker;
22744} VkSetLatencyMarkerInfoNV;
22745
22746typedef struct VkLatencyTimingsFrameReportNV {
22747 VkStructureType sType;
22748 void* pNext;
22749 uint64_t presentID;
22750 uint64_t inputSampleTimeUs;
22751 uint64_t simStartTimeUs;
22752 uint64_t simEndTimeUs;
22753 uint64_t renderSubmitStartTimeUs;
22754 uint64_t renderSubmitEndTimeUs;
22755 uint64_t presentStartTimeUs;
22756 uint64_t presentEndTimeUs;
22757 uint64_t driverStartTimeUs;
22758 uint64_t driverEndTimeUs;
22759 uint64_t osRenderQueueStartTimeUs;
22760 uint64_t osRenderQueueEndTimeUs;
22761 uint64_t gpuRenderStartTimeUs;
22762 uint64_t gpuRenderEndTimeUs;
22763} VkLatencyTimingsFrameReportNV;
22764
22765typedef struct VkGetLatencyMarkerInfoNV {
22766 VkStructureType sType;
22767 const void* pNext;
22768 uint32_t timingCount;
22769 VkLatencyTimingsFrameReportNV* pTimings;
22770} VkGetLatencyMarkerInfoNV;
22771
22772typedef struct VkLatencySubmissionPresentIdNV {
22773 VkStructureType sType;
22774 const void* pNext;
22775 uint64_t presentID;
22776} VkLatencySubmissionPresentIdNV;
22777
22778typedef struct VkSwapchainLatencyCreateInfoNV {
22779 VkStructureType sType;
22780 const void* pNext;
22781 VkBool32 latencyModeEnable;
22782} VkSwapchainLatencyCreateInfoNV;
22783
22784typedef struct VkOutOfBandQueueTypeInfoNV {
22785 VkStructureType sType;
22786 const void* pNext;
22787 VkOutOfBandQueueTypeNV queueType;
22788} VkOutOfBandQueueTypeInfoNV;
22789
22790typedef struct VkLatencySurfaceCapabilitiesNV {
22791 VkStructureType sType;
22792 const void* pNext;
22793 uint32_t presentModeCount;
22794 VkPresentModeKHR* pPresentModes;
22795} VkLatencySurfaceCapabilitiesNV;
22796
22797typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo);
22798typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo);
22799typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
22800typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
22801typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
22802
22803#ifndef VK_NO_PROTOTYPES
22804#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22805VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV(
22806 VkDevice device,
22807 VkSwapchainKHR swapchain,
22808 const VkLatencySleepModeInfoNV* pSleepModeInfo);
22809#endif
22810
22811#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22812VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV(
22813 VkDevice device,
22814 VkSwapchainKHR swapchain,
22815 const VkLatencySleepInfoNV* pSleepInfo);
22816#endif
22817
22818#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22819VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV(
22820 VkDevice device,
22821 VkSwapchainKHR swapchain,
22822 const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
22823#endif
22824
22825#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22826VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV(
22827 VkDevice device,
22828 VkSwapchainKHR swapchain,
22829 VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
22830#endif
22831
22832#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22833VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV(
22834 VkQueue queue,
22835 const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
22836#endif
22837#endif
22838
22839
22840// VK_ARM_data_graph is a preprocessor guard. Do not pass it to API calls.
22841#define VK_ARM_data_graph 1
22842VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDataGraphPipelineSessionARM)
22843#define VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM 128U
22844#define VK_ARM_DATA_GRAPH_SPEC_VERSION 1
22845#define VK_ARM_DATA_GRAPH_EXTENSION_NAME "VK_ARM_data_graph"
22846
22847typedef enum VkDataGraphPipelineSessionBindPointARM {
22848 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TRANSIENT_ARM = 0,
22849 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_MAX_ENUM_ARM = 0x7FFFFFFF
22850} VkDataGraphPipelineSessionBindPointARM;
22851
22852typedef enum VkDataGraphPipelineSessionBindPointTypeARM {
22853 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TYPE_MEMORY_ARM = 0,
22854 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
22855} VkDataGraphPipelineSessionBindPointTypeARM;
22856
22857typedef enum VkDataGraphPipelinePropertyARM {
22858 VK_DATA_GRAPH_PIPELINE_PROPERTY_CREATION_LOG_ARM = 0,
22859 VK_DATA_GRAPH_PIPELINE_PROPERTY_IDENTIFIER_ARM = 1,
22860 VK_DATA_GRAPH_PIPELINE_PROPERTY_MAX_ENUM_ARM = 0x7FFFFFFF
22861} VkDataGraphPipelinePropertyARM;
22862
22863typedef enum VkPhysicalDeviceDataGraphProcessingEngineTypeARM {
22864 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_DEFAULT_ARM = 0,
22865 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_NEURAL_QCOM = 1000629000,
22866 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_COMPUTE_QCOM = 1000629001,
22867 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
22868} VkPhysicalDeviceDataGraphProcessingEngineTypeARM;
22869
22870typedef enum VkPhysicalDeviceDataGraphOperationTypeARM {
22871 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_SPIRV_EXTENDED_INSTRUCTION_SET_ARM = 0,
22872 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_NEURAL_MODEL_QCOM = 1000629000,
22873 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_BUILTIN_MODEL_QCOM = 1000629001,
22874 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
22875} VkPhysicalDeviceDataGraphOperationTypeARM;
22876typedef VkFlags64 VkDataGraphPipelineSessionCreateFlagsARM;
22877
22878// Flag bits for VkDataGraphPipelineSessionCreateFlagBitsARM
22879typedef VkFlags64 VkDataGraphPipelineSessionCreateFlagBitsARM;
22880static const VkDataGraphPipelineSessionCreateFlagBitsARM VK_DATA_GRAPH_PIPELINE_SESSION_CREATE_PROTECTED_BIT_ARM = 0x00000001ULL;
22881
22882typedef VkFlags64 VkDataGraphPipelineDispatchFlagsARM;
22883
22884// Flag bits for VkDataGraphPipelineDispatchFlagBitsARM
22885typedef VkFlags64 VkDataGraphPipelineDispatchFlagBitsARM;
22886
22887typedef struct VkPhysicalDeviceDataGraphFeaturesARM {
22888 VkStructureType sType;
22889 void* pNext;
22890 VkBool32 dataGraph;
22891 VkBool32 dataGraphUpdateAfterBind;
22892 VkBool32 dataGraphSpecializationConstants;
22893 VkBool32 dataGraphDescriptorBuffer;
22894 VkBool32 dataGraphShaderModule;
22895} VkPhysicalDeviceDataGraphFeaturesARM;
22896
22897typedef struct VkDataGraphPipelineConstantARM {
22898 VkStructureType sType;
22899 const void* pNext;
22900 uint32_t id;
22901 const void* pConstantData;
22902} VkDataGraphPipelineConstantARM;
22903
22904typedef struct VkDataGraphPipelineResourceInfoARM {
22905 VkStructureType sType;
22906 const void* pNext;
22907 uint32_t descriptorSet;
22908 uint32_t binding;
22909 uint32_t arrayElement;
22910} VkDataGraphPipelineResourceInfoARM;
22911
22912typedef struct VkDataGraphPipelineCompilerControlCreateInfoARM {
22913 VkStructureType sType;
22914 const void* pNext;
22915 const char* pVendorOptions;
22916} VkDataGraphPipelineCompilerControlCreateInfoARM;
22917
22918typedef struct VkDataGraphPipelineCreateInfoARM {
22919 VkStructureType sType;
22920 const void* pNext;
22921 VkPipelineCreateFlags2KHR flags;
22922 VkPipelineLayout layout;
22923 uint32_t resourceInfoCount;
22924 const VkDataGraphPipelineResourceInfoARM* pResourceInfos;
22925} VkDataGraphPipelineCreateInfoARM;
22926
22927typedef struct VkDataGraphPipelineShaderModuleCreateInfoARM {
22928 VkStructureType sType;
22929 const void* pNext;
22930 VkShaderModule module;
22931 const char* pName;
22932 const VkSpecializationInfo* pSpecializationInfo;
22933 uint32_t constantCount;
22934 const VkDataGraphPipelineConstantARM* pConstants;
22935} VkDataGraphPipelineShaderModuleCreateInfoARM;
22936
22937typedef struct VkDataGraphPipelineSessionCreateInfoARM {
22938 VkStructureType sType;
22939 const void* pNext;
22940 VkDataGraphPipelineSessionCreateFlagsARM flags;
22941 VkPipeline dataGraphPipeline;
22942} VkDataGraphPipelineSessionCreateInfoARM;
22943
22944typedef struct VkDataGraphPipelineSessionBindPointRequirementsInfoARM {
22945 VkStructureType sType;
22946 const void* pNext;
22947 VkDataGraphPipelineSessionARM session;
22948} VkDataGraphPipelineSessionBindPointRequirementsInfoARM;
22949
22950typedef struct VkDataGraphPipelineSessionBindPointRequirementARM {
22951 VkStructureType sType;
22952 void* pNext;
22953 VkDataGraphPipelineSessionBindPointARM bindPoint;
22954 VkDataGraphPipelineSessionBindPointTypeARM bindPointType;
22955 uint32_t numObjects;
22956} VkDataGraphPipelineSessionBindPointRequirementARM;
22957
22958typedef struct VkDataGraphPipelineSessionMemoryRequirementsInfoARM {
22959 VkStructureType sType;
22960 const void* pNext;
22961 VkDataGraphPipelineSessionARM session;
22962 VkDataGraphPipelineSessionBindPointARM bindPoint;
22963 uint32_t objectIndex;
22964} VkDataGraphPipelineSessionMemoryRequirementsInfoARM;
22965
22966typedef struct VkBindDataGraphPipelineSessionMemoryInfoARM {
22967 VkStructureType sType;
22968 const void* pNext;
22969 VkDataGraphPipelineSessionARM session;
22970 VkDataGraphPipelineSessionBindPointARM bindPoint;
22971 uint32_t objectIndex;
22972 VkDeviceMemory memory;
22973 VkDeviceSize memoryOffset;
22974} VkBindDataGraphPipelineSessionMemoryInfoARM;
22975
22976typedef struct VkDataGraphPipelineInfoARM {
22977 VkStructureType sType;
22978 const void* pNext;
22979 VkPipeline dataGraphPipeline;
22980} VkDataGraphPipelineInfoARM;
22981
22982typedef struct VkDataGraphPipelinePropertyQueryResultARM {
22983 VkStructureType sType;
22984 void* pNext;
22985 VkDataGraphPipelinePropertyARM property;
22986 VkBool32 isText;
22987 size_t dataSize;
22988 void* pData;
22989} VkDataGraphPipelinePropertyQueryResultARM;
22990
22991typedef struct VkDataGraphPipelineIdentifierCreateInfoARM {
22992 VkStructureType sType;
22993 const void* pNext;
22994 uint32_t identifierSize;
22995 const uint8_t* pIdentifier;
22996} VkDataGraphPipelineIdentifierCreateInfoARM;
22997
22998typedef struct VkDataGraphPipelineDispatchInfoARM {
22999 VkStructureType sType;
23000 void* pNext;
23001 VkDataGraphPipelineDispatchFlagsARM flags;
23002} VkDataGraphPipelineDispatchInfoARM;
23003
23004typedef struct VkPhysicalDeviceDataGraphProcessingEngineARM {
23005 VkPhysicalDeviceDataGraphProcessingEngineTypeARM type;
23006 VkBool32 isForeign;
23007} VkPhysicalDeviceDataGraphProcessingEngineARM;
23008
23009typedef struct VkPhysicalDeviceDataGraphOperationSupportARM {
23010 VkPhysicalDeviceDataGraphOperationTypeARM operationType;
23011 char name[VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM];
23012 uint32_t version;
23013} VkPhysicalDeviceDataGraphOperationSupportARM;
23014
23015typedef struct VkQueueFamilyDataGraphPropertiesARM {
23016 VkStructureType sType;
23017 void* pNext;
23018 VkPhysicalDeviceDataGraphProcessingEngineARM engine;
23019 VkPhysicalDeviceDataGraphOperationSupportARM operation;
23020} VkQueueFamilyDataGraphPropertiesARM;
23021
23022typedef struct VkDataGraphProcessingEngineCreateInfoARM {
23023 VkStructureType sType;
23024 const void* pNext;
23025 uint32_t processingEngineCount;
23026 VkPhysicalDeviceDataGraphProcessingEngineARM* pProcessingEngines;
23027} VkDataGraphProcessingEngineCreateInfoARM;
23028
23029typedef struct VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM {
23030 VkStructureType sType;
23031 const void* pNext;
23032 uint32_t queueFamilyIndex;
23033 VkPhysicalDeviceDataGraphProcessingEngineTypeARM engineType;
23034} VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM;
23035
23036typedef struct VkQueueFamilyDataGraphProcessingEnginePropertiesARM {
23037 VkStructureType sType;
23038 void* pNext;
23039 VkExternalSemaphoreHandleTypeFlags foreignSemaphoreHandleTypes;
23040 VkExternalMemoryHandleTypeFlags foreignMemoryHandleTypes;
23041} VkQueueFamilyDataGraphProcessingEnginePropertiesARM;
23042
23043typedef struct VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {
23044 VkStructureType sType;
23045 const void* pNext;
23046 uint32_t dimension;
23047 uint32_t zeroCount;
23048 uint32_t groupSize;
23049} VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM;
23050
23051typedef VkResult (VKAPI_PTR *PFN_vkCreateDataGraphPipelinesARM)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkDataGraphPipelineCreateInfoARM* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
23052typedef VkResult (VKAPI_PTR *PFN_vkCreateDataGraphPipelineSessionARM)(VkDevice device, const VkDataGraphPipelineSessionCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDataGraphPipelineSessionARM* pSession);
23053typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM)(VkDevice device, const VkDataGraphPipelineSessionBindPointRequirementsInfoARM* pInfo, uint32_t* pBindPointRequirementCount, VkDataGraphPipelineSessionBindPointRequirementARM* pBindPointRequirements);
23054typedef void (VKAPI_PTR *PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM)(VkDevice device, const VkDataGraphPipelineSessionMemoryRequirementsInfoARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
23055typedef VkResult (VKAPI_PTR *PFN_vkBindDataGraphPipelineSessionMemoryARM)(VkDevice device, uint32_t bindInfoCount, const VkBindDataGraphPipelineSessionMemoryInfoARM* pBindInfos);
23056typedef void (VKAPI_PTR *PFN_vkDestroyDataGraphPipelineSessionARM)(VkDevice device, VkDataGraphPipelineSessionARM session, const VkAllocationCallbacks* pAllocator);
23057typedef void (VKAPI_PTR *PFN_vkCmdDispatchDataGraphARM)(VkCommandBuffer commandBuffer, VkDataGraphPipelineSessionARM session, const VkDataGraphPipelineDispatchInfoARM* pInfo);
23058typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelineAvailablePropertiesARM)(VkDevice device, const VkDataGraphPipelineInfoARM* pPipelineInfo, uint32_t* pPropertiesCount, VkDataGraphPipelinePropertyARM* pProperties);
23059typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelinePropertiesARM)(VkDevice device, const VkDataGraphPipelineInfoARM* pPipelineInfo, uint32_t propertiesCount, VkDataGraphPipelinePropertyQueryResultARM* pProperties);
23060typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pQueueFamilyDataGraphPropertyCount, VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties);
23061typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo, VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties);
23062
23063#ifndef VK_NO_PROTOTYPES
23064#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23065VKAPI_ATTR VkResult VKAPI_CALL vkCreateDataGraphPipelinesARM(
23066 VkDevice device,
23067 VkDeferredOperationKHR deferredOperation,
23068 VkPipelineCache pipelineCache,
23069 uint32_t createInfoCount,
23070 const VkDataGraphPipelineCreateInfoARM* pCreateInfos,
23071 const VkAllocationCallbacks* pAllocator,
23072 VkPipeline* pPipelines);
23073#endif
23074
23075#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23076VKAPI_ATTR VkResult VKAPI_CALL vkCreateDataGraphPipelineSessionARM(
23077 VkDevice device,
23078 const VkDataGraphPipelineSessionCreateInfoARM* pCreateInfo,
23079 const VkAllocationCallbacks* pAllocator,
23080 VkDataGraphPipelineSessionARM* pSession);
23081#endif
23082
23083#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23084VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelineSessionBindPointRequirementsARM(
23085 VkDevice device,
23086 const VkDataGraphPipelineSessionBindPointRequirementsInfoARM* pInfo,
23087 uint32_t* pBindPointRequirementCount,
23088 VkDataGraphPipelineSessionBindPointRequirementARM* pBindPointRequirements);
23089#endif
23090
23091#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23092VKAPI_ATTR void VKAPI_CALL vkGetDataGraphPipelineSessionMemoryRequirementsARM(
23093 VkDevice device,
23094 const VkDataGraphPipelineSessionMemoryRequirementsInfoARM* pInfo,
23095 VkMemoryRequirements2* pMemoryRequirements);
23096#endif
23097
23098#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23099VKAPI_ATTR VkResult VKAPI_CALL vkBindDataGraphPipelineSessionMemoryARM(
23100 VkDevice device,
23101 uint32_t bindInfoCount,
23102 const VkBindDataGraphPipelineSessionMemoryInfoARM* pBindInfos);
23103#endif
23104
23105#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23106VKAPI_ATTR void VKAPI_CALL vkDestroyDataGraphPipelineSessionARM(
23107 VkDevice device,
23108 VkDataGraphPipelineSessionARM session,
23109 const VkAllocationCallbacks* pAllocator);
23110#endif
23111
23112#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23113VKAPI_ATTR void VKAPI_CALL vkCmdDispatchDataGraphARM(
23114 VkCommandBuffer commandBuffer,
23115 VkDataGraphPipelineSessionARM session,
23116 const VkDataGraphPipelineDispatchInfoARM* pInfo);
23117#endif
23118
23119#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23120VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelineAvailablePropertiesARM(
23121 VkDevice device,
23122 const VkDataGraphPipelineInfoARM* pPipelineInfo,
23123 uint32_t* pPropertiesCount,
23124 VkDataGraphPipelinePropertyARM* pProperties);
23125#endif
23126
23127#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23128VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelinePropertiesARM(
23129 VkDevice device,
23130 const VkDataGraphPipelineInfoARM* pPipelineInfo,
23131 uint32_t propertiesCount,
23132 VkDataGraphPipelinePropertyQueryResultARM* pProperties);
23133#endif
23134
23135#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23136VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(
23137 VkPhysicalDevice physicalDevice,
23138 uint32_t queueFamilyIndex,
23139 uint32_t* pQueueFamilyDataGraphPropertyCount,
23140 VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties);
23141#endif
23142
23143#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23144VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(
23145 VkPhysicalDevice physicalDevice,
23146 const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo,
23147 VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties);
23148#endif
23149#endif
23150
23151
23152// VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls.
23153#define VK_QCOM_multiview_per_view_render_areas 1
23154#define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1
23155#define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME "VK_QCOM_multiview_per_view_render_areas"
23156typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
23157 VkStructureType sType;
23158 void* pNext;
23159 VkBool32 multiviewPerViewRenderAreas;
23160} VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
23161
23162typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
23163 VkStructureType sType;
23164 const void* pNext;
23165 uint32_t perViewRenderAreaCount;
23166 const VkRect2D* pPerViewRenderAreas;
23167} VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
23168
23169
23170
23171// VK_NV_per_stage_descriptor_set is a preprocessor guard. Do not pass it to API calls.
23172#define VK_NV_per_stage_descriptor_set 1
23173#define VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION 1
23174#define VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME "VK_NV_per_stage_descriptor_set"
23175typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV {
23176 VkStructureType sType;
23177 void* pNext;
23178 VkBool32 perStageDescriptorSet;
23179 VkBool32 dynamicPipelineLayout;
23180} VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
23181
23182
23183
23184// VK_QCOM_image_processing2 is a preprocessor guard. Do not pass it to API calls.
23185#define VK_QCOM_image_processing2 1
23186#define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1
23187#define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2"
23188
23189typedef enum VkBlockMatchWindowCompareModeQCOM {
23190 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0,
23191 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1,
23192 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM = 0x7FFFFFFF
23193} VkBlockMatchWindowCompareModeQCOM;
23194typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM {
23195 VkStructureType sType;
23196 void* pNext;
23197 VkBool32 textureBlockMatch2;
23198} VkPhysicalDeviceImageProcessing2FeaturesQCOM;
23199
23200typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM {
23201 VkStructureType sType;
23202 void* pNext;
23203 VkExtent2D maxBlockMatchWindow;
23204} VkPhysicalDeviceImageProcessing2PropertiesQCOM;
23205
23206typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM {
23207 VkStructureType sType;
23208 const void* pNext;
23209 VkExtent2D windowExtent;
23210 VkBlockMatchWindowCompareModeQCOM windowCompareMode;
23211} VkSamplerBlockMatchWindowCreateInfoQCOM;
23212
23213
23214
23215// VK_QCOM_filter_cubic_weights is a preprocessor guard. Do not pass it to API calls.
23216#define VK_QCOM_filter_cubic_weights 1
23217#define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1
23218#define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights"
23219
23220typedef enum VkCubicFilterWeightsQCOM {
23221 VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0,
23222 VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1,
23223 VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2,
23224 VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3,
23225 VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM = 0x7FFFFFFF
23226} VkCubicFilterWeightsQCOM;
23227typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM {
23228 VkStructureType sType;
23229 void* pNext;
23230 VkBool32 selectableCubicWeights;
23231} VkPhysicalDeviceCubicWeightsFeaturesQCOM;
23232
23233typedef struct VkSamplerCubicWeightsCreateInfoQCOM {
23234 VkStructureType sType;
23235 const void* pNext;
23236 VkCubicFilterWeightsQCOM cubicWeights;
23237} VkSamplerCubicWeightsCreateInfoQCOM;
23238
23239typedef struct VkBlitImageCubicWeightsInfoQCOM {
23240 VkStructureType sType;
23241 const void* pNext;
23242 VkCubicFilterWeightsQCOM cubicWeights;
23243} VkBlitImageCubicWeightsInfoQCOM;
23244
23245
23246
23247// VK_QCOM_ycbcr_degamma is a preprocessor guard. Do not pass it to API calls.
23248#define VK_QCOM_ycbcr_degamma 1
23249#define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1
23250#define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma"
23251typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM {
23252 VkStructureType sType;
23253 void* pNext;
23254 VkBool32 ycbcrDegamma;
23255} VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
23256
23257typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
23258 VkStructureType sType;
23259 void* pNext;
23260 VkBool32 enableYDegamma;
23261 VkBool32 enableCbCrDegamma;
23262} VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
23263
23264
23265
23266// VK_QCOM_filter_cubic_clamp is a preprocessor guard. Do not pass it to API calls.
23267#define VK_QCOM_filter_cubic_clamp 1
23268#define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1
23269#define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp"
23270typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM {
23271 VkStructureType sType;
23272 void* pNext;
23273 VkBool32 cubicRangeClamp;
23274} VkPhysicalDeviceCubicClampFeaturesQCOM;
23275
23276
23277
23278// VK_EXT_attachment_feedback_loop_dynamic_state is a preprocessor guard. Do not pass it to API calls.
23279#define VK_EXT_attachment_feedback_loop_dynamic_state 1
23280#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1
23281#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state"
23282typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
23283 VkStructureType sType;
23284 void* pNext;
23285 VkBool32 attachmentFeedbackLoopDynamicState;
23286} VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
23287
23288typedef void (VKAPI_PTR *PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask);
23289
23290#ifndef VK_NO_PROTOTYPES
23291#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23292VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT(
23293 VkCommandBuffer commandBuffer,
23294 VkImageAspectFlags aspectMask);
23295#endif
23296#endif
23297
23298
23299// VK_MSFT_layered_driver is a preprocessor guard. Do not pass it to API calls.
23300#define VK_MSFT_layered_driver 1
23301#define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1
23302#define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver"
23303
23304typedef enum VkLayeredDriverUnderlyingApiMSFT {
23305 VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0,
23306 VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1,
23307 VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT = 0x7FFFFFFF
23308} VkLayeredDriverUnderlyingApiMSFT;
23309typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT {
23310 VkStructureType sType;
23311 void* pNext;
23312 VkLayeredDriverUnderlyingApiMSFT underlyingAPI;
23313} VkPhysicalDeviceLayeredDriverPropertiesMSFT;
23314
23315
23316
23317// VK_NV_descriptor_pool_overallocation is a preprocessor guard. Do not pass it to API calls.
23318#define VK_NV_descriptor_pool_overallocation 1
23319#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1
23320#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation"
23321typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
23322 VkStructureType sType;
23323 void* pNext;
23324 VkBool32 descriptorPoolOverallocation;
23325} VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
23326
23327
23328
23329// VK_QCOM_tile_memory_heap is a preprocessor guard. Do not pass it to API calls.
23330#define VK_QCOM_tile_memory_heap 1
23331#define VK_QCOM_TILE_MEMORY_HEAP_SPEC_VERSION 1
23332#define VK_QCOM_TILE_MEMORY_HEAP_EXTENSION_NAME "VK_QCOM_tile_memory_heap"
23333typedef struct VkPhysicalDeviceTileMemoryHeapFeaturesQCOM {
23334 VkStructureType sType;
23335 void* pNext;
23336 VkBool32 tileMemoryHeap;
23337} VkPhysicalDeviceTileMemoryHeapFeaturesQCOM;
23338
23339typedef struct VkPhysicalDeviceTileMemoryHeapPropertiesQCOM {
23340 VkStructureType sType;
23341 void* pNext;
23342 VkBool32 queueSubmitBoundary;
23343 VkBool32 tileBufferTransfers;
23344} VkPhysicalDeviceTileMemoryHeapPropertiesQCOM;
23345
23346typedef struct VkTileMemoryRequirementsQCOM {
23347 VkStructureType sType;
23348 void* pNext;
23349 VkDeviceSize size;
23350 VkDeviceSize alignment;
23351} VkTileMemoryRequirementsQCOM;
23352
23353typedef struct VkTileMemoryBindInfoQCOM {
23354 VkStructureType sType;
23355 const void* pNext;
23356 VkDeviceMemory memory;
23357} VkTileMemoryBindInfoQCOM;
23358
23359typedef struct VkTileMemorySizeInfoQCOM {
23360 VkStructureType sType;
23361 const void* pNext;
23362 VkDeviceSize size;
23363} VkTileMemorySizeInfoQCOM;
23364
23365typedef void (VKAPI_PTR *PFN_vkCmdBindTileMemoryQCOM)(VkCommandBuffer commandBuffer, const VkTileMemoryBindInfoQCOM* pTileMemoryBindInfo);
23366
23367#ifndef VK_NO_PROTOTYPES
23368#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23369VKAPI_ATTR void VKAPI_CALL vkCmdBindTileMemoryQCOM(
23370 VkCommandBuffer commandBuffer,
23371 const VkTileMemoryBindInfoQCOM* pTileMemoryBindInfo);
23372#endif
23373#endif
23374
23375
23376// VK_EXT_memory_decompression is a preprocessor guard. Do not pass it to API calls.
23377#define VK_EXT_memory_decompression 1
23378#define VK_EXT_MEMORY_DECOMPRESSION_SPEC_VERSION 1
23379#define VK_EXT_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_EXT_memory_decompression"
23380typedef struct VkDecompressMemoryRegionEXT {
23381 VkDeviceAddress srcAddress;
23382 VkDeviceAddress dstAddress;
23383 VkDeviceSize compressedSize;
23384 VkDeviceSize decompressedSize;
23385} VkDecompressMemoryRegionEXT;
23386
23387typedef struct VkDecompressMemoryInfoEXT {
23388 VkStructureType sType;
23389 const void* pNext;
23390 VkMemoryDecompressionMethodFlagsEXT decompressionMethod;
23391 uint32_t regionCount;
23392 const VkDecompressMemoryRegionEXT* pRegions;
23393} VkDecompressMemoryInfoEXT;
23394
23395typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryEXT)(VkCommandBuffer commandBuffer, const VkDecompressMemoryInfoEXT* pDecompressMemoryInfoEXT);
23396typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountEXT)(VkCommandBuffer commandBuffer, VkMemoryDecompressionMethodFlagsEXT decompressionMethod, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t maxDecompressionCount, uint32_t stride);
23397
23398#ifndef VK_NO_PROTOTYPES
23399#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23400VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryEXT(
23401 VkCommandBuffer commandBuffer,
23402 const VkDecompressMemoryInfoEXT* pDecompressMemoryInfoEXT);
23403#endif
23404
23405#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23406VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountEXT(
23407 VkCommandBuffer commandBuffer,
23408 VkMemoryDecompressionMethodFlagsEXT decompressionMethod,
23409 VkDeviceAddress indirectCommandsAddress,
23410 VkDeviceAddress indirectCommandsCountAddress,
23411 uint32_t maxDecompressionCount,
23412 uint32_t stride);
23413#endif
23414#endif
23415
23416
23417// VK_NV_display_stereo is a preprocessor guard. Do not pass it to API calls.
23418#define VK_NV_display_stereo 1
23419#define VK_NV_DISPLAY_STEREO_SPEC_VERSION 1
23420#define VK_NV_DISPLAY_STEREO_EXTENSION_NAME "VK_NV_display_stereo"
23421
23422typedef enum VkDisplaySurfaceStereoTypeNV {
23423 VK_DISPLAY_SURFACE_STEREO_TYPE_NONE_NV = 0,
23424 VK_DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV = 1,
23425 VK_DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV = 2,
23426 VK_DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV = 3,
23427 VK_DISPLAY_SURFACE_STEREO_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
23428} VkDisplaySurfaceStereoTypeNV;
23429typedef struct VkDisplaySurfaceStereoCreateInfoNV {
23430 VkStructureType sType;
23431 const void* pNext;
23432 VkDisplaySurfaceStereoTypeNV stereoType;
23433} VkDisplaySurfaceStereoCreateInfoNV;
23434
23435typedef struct VkDisplayModeStereoPropertiesNV {
23436 VkStructureType sType;
23437 void* pNext;
23438 VkBool32 hdmi3DSupported;
23439} VkDisplayModeStereoPropertiesNV;
23440
23441
23442
23443// VK_NV_raw_access_chains is a preprocessor guard. Do not pass it to API calls.
23444#define VK_NV_raw_access_chains 1
23445#define VK_NV_RAW_ACCESS_CHAINS_SPEC_VERSION 1
23446#define VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME "VK_NV_raw_access_chains"
23447typedef struct VkPhysicalDeviceRawAccessChainsFeaturesNV {
23448 VkStructureType sType;
23449 void* pNext;
23450 VkBool32 shaderRawAccessChains;
23451} VkPhysicalDeviceRawAccessChainsFeaturesNV;
23452
23453
23454
23455// VK_NV_external_compute_queue is a preprocessor guard. Do not pass it to API calls.
23456#define VK_NV_external_compute_queue 1
23457VK_DEFINE_HANDLE(VkExternalComputeQueueNV)
23458#define VK_NV_EXTERNAL_COMPUTE_QUEUE_SPEC_VERSION 1
23459#define VK_NV_EXTERNAL_COMPUTE_QUEUE_EXTENSION_NAME "VK_NV_external_compute_queue"
23460typedef struct VkExternalComputeQueueDeviceCreateInfoNV {
23461 VkStructureType sType;
23462 const void* pNext;
23463 uint32_t reservedExternalQueues;
23464} VkExternalComputeQueueDeviceCreateInfoNV;
23465
23466typedef struct VkExternalComputeQueueCreateInfoNV {
23467 VkStructureType sType;
23468 const void* pNext;
23469 VkQueue preferredQueue;
23470} VkExternalComputeQueueCreateInfoNV;
23471
23472typedef struct VkExternalComputeQueueDataParamsNV {
23473 VkStructureType sType;
23474 const void* pNext;
23475 uint32_t deviceIndex;
23476} VkExternalComputeQueueDataParamsNV;
23477
23478typedef struct VkPhysicalDeviceExternalComputeQueuePropertiesNV {
23479 VkStructureType sType;
23480 void* pNext;
23481 uint32_t externalDataSize;
23482 uint32_t maxExternalQueues;
23483} VkPhysicalDeviceExternalComputeQueuePropertiesNV;
23484
23485typedef VkResult (VKAPI_PTR *PFN_vkCreateExternalComputeQueueNV)(VkDevice device, const VkExternalComputeQueueCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkExternalComputeQueueNV* pExternalQueue);
23486typedef void (VKAPI_PTR *PFN_vkDestroyExternalComputeQueueNV)(VkDevice device, VkExternalComputeQueueNV externalQueue, const VkAllocationCallbacks* pAllocator);
23487typedef void (VKAPI_PTR *PFN_vkGetExternalComputeQueueDataNV)(VkExternalComputeQueueNV externalQueue, VkExternalComputeQueueDataParamsNV* params, void* pData);
23488
23489#ifndef VK_NO_PROTOTYPES
23490#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23491VKAPI_ATTR VkResult VKAPI_CALL vkCreateExternalComputeQueueNV(
23492 VkDevice device,
23493 const VkExternalComputeQueueCreateInfoNV* pCreateInfo,
23494 const VkAllocationCallbacks* pAllocator,
23495 VkExternalComputeQueueNV* pExternalQueue);
23496#endif
23497
23498#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23499VKAPI_ATTR void VKAPI_CALL vkDestroyExternalComputeQueueNV(
23500 VkDevice device,
23501 VkExternalComputeQueueNV externalQueue,
23502 const VkAllocationCallbacks* pAllocator);
23503#endif
23504
23505#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23506VKAPI_ATTR void VKAPI_CALL vkGetExternalComputeQueueDataNV(
23507 VkExternalComputeQueueNV externalQueue,
23508 VkExternalComputeQueueDataParamsNV* params,
23509 void* pData);
23510#endif
23511#endif
23512
23513
23514// VK_NV_command_buffer_inheritance is a preprocessor guard. Do not pass it to API calls.
23515#define VK_NV_command_buffer_inheritance 1
23516#define VK_NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION 1
23517#define VK_NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME "VK_NV_command_buffer_inheritance"
23518typedef struct VkPhysicalDeviceCommandBufferInheritanceFeaturesNV {
23519 VkStructureType sType;
23520 void* pNext;
23521 VkBool32 commandBufferInheritance;
23522} VkPhysicalDeviceCommandBufferInheritanceFeaturesNV;
23523
23524
23525
23526// VK_NV_shader_atomic_float16_vector is a preprocessor guard. Do not pass it to API calls.
23527#define VK_NV_shader_atomic_float16_vector 1
23528#define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION 1
23529#define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME "VK_NV_shader_atomic_float16_vector"
23530typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
23531 VkStructureType sType;
23532 void* pNext;
23533 VkBool32 shaderFloat16VectorAtomics;
23534} VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV;
23535
23536
23537
23538// VK_EXT_shader_replicated_composites is a preprocessor guard. Do not pass it to API calls.
23539#define VK_EXT_shader_replicated_composites 1
23540#define VK_EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION 1
23541#define VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME "VK_EXT_shader_replicated_composites"
23542typedef struct VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
23543 VkStructureType sType;
23544 void* pNext;
23545 VkBool32 shaderReplicatedComposites;
23546} VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT;
23547
23548
23549
23550// VK_EXT_shader_float8 is a preprocessor guard. Do not pass it to API calls.
23551#define VK_EXT_shader_float8 1
23552#define VK_EXT_SHADER_FLOAT8_SPEC_VERSION 1
23553#define VK_EXT_SHADER_FLOAT8_EXTENSION_NAME "VK_EXT_shader_float8"
23554typedef struct VkPhysicalDeviceShaderFloat8FeaturesEXT {
23555 VkStructureType sType;
23556 void* pNext;
23557 VkBool32 shaderFloat8;
23558 VkBool32 shaderFloat8CooperativeMatrix;
23559} VkPhysicalDeviceShaderFloat8FeaturesEXT;
23560
23561
23562
23563// VK_NV_ray_tracing_validation is a preprocessor guard. Do not pass it to API calls.
23564#define VK_NV_ray_tracing_validation 1
23565#define VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION 1
23566#define VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME "VK_NV_ray_tracing_validation"
23567typedef struct VkPhysicalDeviceRayTracingValidationFeaturesNV {
23568 VkStructureType sType;
23569 void* pNext;
23570 VkBool32 rayTracingValidation;
23571} VkPhysicalDeviceRayTracingValidationFeaturesNV;
23572
23573
23574
23575// VK_NV_cluster_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
23576#define VK_NV_cluster_acceleration_structure 1
23577#define VK_NV_CLUSTER_ACCELERATION_STRUCTURE_SPEC_VERSION 4
23578#define VK_NV_CLUSTER_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_NV_cluster_acceleration_structure"
23579
23580typedef enum VkClusterAccelerationStructureTypeNV {
23581 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_CLUSTERS_BOTTOM_LEVEL_NV = 0,
23582 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_NV = 1,
23583 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_TEMPLATE_NV = 2,
23584 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
23585} VkClusterAccelerationStructureTypeNV;
23586
23587typedef enum VkClusterAccelerationStructureOpTypeNV {
23588 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV = 0,
23589 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_CLUSTERS_BOTTOM_LEVEL_NV = 1,
23590 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_NV = 2,
23591 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_TEMPLATE_NV = 3,
23592 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_INSTANTIATE_TRIANGLE_CLUSTER_NV = 4,
23593 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_GET_CLUSTER_TEMPLATE_INDICES_NV = 5,
23594 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
23595} VkClusterAccelerationStructureOpTypeNV;
23596
23597typedef enum VkClusterAccelerationStructureOpModeNV {
23598 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_IMPLICIT_DESTINATIONS_NV = 0,
23599 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_EXPLICIT_DESTINATIONS_NV = 1,
23600 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_COMPUTE_SIZES_NV = 2,
23601 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_MAX_ENUM_NV = 0x7FFFFFFF
23602} VkClusterAccelerationStructureOpModeNV;
23603
23604typedef enum VkClusterAccelerationStructureAddressResolutionFlagBitsNV {
23605 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_NONE_NV = 0,
23606 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_IMPLICIT_DATA_BIT_NV = 0x00000001,
23607 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SCRATCH_DATA_BIT_NV = 0x00000002,
23608 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_ADDRESS_ARRAY_BIT_NV = 0x00000004,
23609 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_SIZES_ARRAY_BIT_NV = 0x00000008,
23610 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_ARRAY_BIT_NV = 0x00000010,
23611 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_COUNT_BIT_NV = 0x00000020,
23612 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
23613} VkClusterAccelerationStructureAddressResolutionFlagBitsNV;
23614typedef VkFlags VkClusterAccelerationStructureAddressResolutionFlagsNV;
23615
23616typedef enum VkClusterAccelerationStructureClusterFlagBitsNV {
23617 VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_ALLOW_DISABLE_OPACITY_MICROMAPS_NV = 0x00000001,
23618 VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
23619} VkClusterAccelerationStructureClusterFlagBitsNV;
23620typedef VkFlags VkClusterAccelerationStructureClusterFlagsNV;
23621
23622typedef enum VkClusterAccelerationStructureGeometryFlagBitsNV {
23623 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_CULL_DISABLE_BIT_NV = 0x00000001,
23624 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_NO_DUPLICATE_ANYHIT_INVOCATION_BIT_NV = 0x00000002,
23625 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_OPAQUE_BIT_NV = 0x00000004,
23626 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
23627} VkClusterAccelerationStructureGeometryFlagBitsNV;
23628typedef VkFlags VkClusterAccelerationStructureGeometryFlagsNV;
23629
23630typedef enum VkClusterAccelerationStructureIndexFormatFlagBitsNV {
23631 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_8BIT_NV = 0x00000001,
23632 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_16BIT_NV = 0x00000002,
23633 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_32BIT_NV = 0x00000004,
23634 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
23635} VkClusterAccelerationStructureIndexFormatFlagBitsNV;
23636typedef VkFlags VkClusterAccelerationStructureIndexFormatFlagsNV;
23637typedef struct VkPhysicalDeviceClusterAccelerationStructureFeaturesNV {
23638 VkStructureType sType;
23639 void* pNext;
23640 VkBool32 clusterAccelerationStructure;
23641} VkPhysicalDeviceClusterAccelerationStructureFeaturesNV;
23642
23643typedef struct VkPhysicalDeviceClusterAccelerationStructurePropertiesNV {
23644 VkStructureType sType;
23645 void* pNext;
23646 uint32_t maxVerticesPerCluster;
23647 uint32_t maxTrianglesPerCluster;
23648 uint32_t clusterScratchByteAlignment;
23649 uint32_t clusterByteAlignment;
23650 uint32_t clusterTemplateByteAlignment;
23651 uint32_t clusterBottomLevelByteAlignment;
23652 uint32_t clusterTemplateBoundsByteAlignment;
23653 uint32_t maxClusterGeometryIndex;
23654} VkPhysicalDeviceClusterAccelerationStructurePropertiesNV;
23655
23656typedef struct VkClusterAccelerationStructureClustersBottomLevelInputNV {
23657 VkStructureType sType;
23658 void* pNext;
23659 uint32_t maxTotalClusterCount;
23660 uint32_t maxClusterCountPerAccelerationStructure;
23661} VkClusterAccelerationStructureClustersBottomLevelInputNV;
23662
23663typedef struct VkClusterAccelerationStructureTriangleClusterInputNV {
23664 VkStructureType sType;
23665 void* pNext;
23666 VkFormat vertexFormat;
23667 uint32_t maxGeometryIndexValue;
23668 uint32_t maxClusterUniqueGeometryCount;
23669 uint32_t maxClusterTriangleCount;
23670 uint32_t maxClusterVertexCount;
23671 uint32_t maxTotalTriangleCount;
23672 uint32_t maxTotalVertexCount;
23673 uint32_t minPositionTruncateBitCount;
23674} VkClusterAccelerationStructureTriangleClusterInputNV;
23675
23676typedef struct VkClusterAccelerationStructureMoveObjectsInputNV {
23677 VkStructureType sType;
23678 void* pNext;
23679 VkClusterAccelerationStructureTypeNV type;
23680 VkBool32 noMoveOverlap;
23681 VkDeviceSize maxMovedBytes;
23682} VkClusterAccelerationStructureMoveObjectsInputNV;
23683
23684typedef union VkClusterAccelerationStructureOpInputNV {
23685 VkClusterAccelerationStructureClustersBottomLevelInputNV* pClustersBottomLevel;
23686 VkClusterAccelerationStructureTriangleClusterInputNV* pTriangleClusters;
23687 VkClusterAccelerationStructureMoveObjectsInputNV* pMoveObjects;
23688} VkClusterAccelerationStructureOpInputNV;
23689
23690typedef struct VkClusterAccelerationStructureInputInfoNV {
23691 VkStructureType sType;
23692 void* pNext;
23693 uint32_t maxAccelerationStructureCount;
23694 VkBuildAccelerationStructureFlagsKHR flags;
23695 VkClusterAccelerationStructureOpTypeNV opType;
23696 VkClusterAccelerationStructureOpModeNV opMode;
23697 VkClusterAccelerationStructureOpInputNV opInput;
23698} VkClusterAccelerationStructureInputInfoNV;
23699
23700typedef struct VkStridedDeviceAddressRegionKHR {
23701 VkDeviceAddress deviceAddress;
23702 VkDeviceSize stride;
23703 VkDeviceSize size;
23704} VkStridedDeviceAddressRegionKHR;
23705
23706typedef struct VkClusterAccelerationStructureCommandsInfoNV {
23707 VkStructureType sType;
23708 void* pNext;
23709 VkClusterAccelerationStructureInputInfoNV input;
23710 VkDeviceAddress dstImplicitData;
23711 VkDeviceAddress scratchData;
23712 VkStridedDeviceAddressRegionKHR dstAddressesArray;
23713 VkStridedDeviceAddressRegionKHR dstSizesArray;
23714 VkStridedDeviceAddressRegionKHR srcInfosArray;
23715 VkDeviceAddress srcInfosCount;
23716 VkClusterAccelerationStructureAddressResolutionFlagsNV addressResolutionFlags;
23717} VkClusterAccelerationStructureCommandsInfoNV;
23718
23719typedef struct VkStridedDeviceAddressNV {
23720 VkDeviceAddress startAddress;
23721 VkDeviceSize strideInBytes;
23722} VkStridedDeviceAddressNV;
23723
23724typedef struct VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV {
23725 uint32_t geometryIndex:24;
23726 uint32_t reserved:5;
23727 uint32_t geometryFlags:3;
23728} VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV;
23729
23730typedef struct VkClusterAccelerationStructureMoveObjectsInfoNV {
23731 VkDeviceAddress srcAccelerationStructure;
23732} VkClusterAccelerationStructureMoveObjectsInfoNV;
23733
23734typedef struct VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV {
23735 uint32_t clusterReferencesCount;
23736 uint32_t clusterReferencesStride;
23737 VkDeviceAddress clusterReferences;
23738} VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV;
23739
23740typedef struct VkClusterAccelerationStructureBuildTriangleClusterInfoNV {
23741 uint32_t clusterID;
23742 VkClusterAccelerationStructureClusterFlagsNV clusterFlags;
23743 uint32_t triangleCount:9;
23744 uint32_t vertexCount:9;
23745 uint32_t positionTruncateBitCount:6;
23746 uint32_t indexType:4;
23747 uint32_t opacityMicromapIndexType:4;
23748 VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags;
23749 uint16_t indexBufferStride;
23750 uint16_t vertexBufferStride;
23751 uint16_t geometryIndexAndFlagsBufferStride;
23752 uint16_t opacityMicromapIndexBufferStride;
23753 VkDeviceAddress indexBuffer;
23754 VkDeviceAddress vertexBuffer;
23755 VkDeviceAddress geometryIndexAndFlagsBuffer;
23756 VkDeviceAddress opacityMicromapArray;
23757 VkDeviceAddress opacityMicromapIndexBuffer;
23758} VkClusterAccelerationStructureBuildTriangleClusterInfoNV;
23759
23760typedef struct VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV {
23761 uint32_t clusterID;
23762 VkClusterAccelerationStructureClusterFlagsNV clusterFlags;
23763 uint32_t triangleCount:9;
23764 uint32_t vertexCount:9;
23765 uint32_t positionTruncateBitCount:6;
23766 uint32_t indexType:4;
23767 uint32_t opacityMicromapIndexType:4;
23768 VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags;
23769 uint16_t indexBufferStride;
23770 uint16_t vertexBufferStride;
23771 uint16_t geometryIndexAndFlagsBufferStride;
23772 uint16_t opacityMicromapIndexBufferStride;
23773 VkDeviceAddress indexBuffer;
23774 VkDeviceAddress vertexBuffer;
23775 VkDeviceAddress geometryIndexAndFlagsBuffer;
23776 VkDeviceAddress opacityMicromapArray;
23777 VkDeviceAddress opacityMicromapIndexBuffer;
23778 VkDeviceAddress instantiationBoundingBoxLimit;
23779} VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV;
23780
23781typedef struct VkClusterAccelerationStructureInstantiateClusterInfoNV {
23782 uint32_t clusterIdOffset;
23783 uint32_t geometryIndexOffset:24;
23784 uint32_t reserved:8;
23785 VkDeviceAddress clusterTemplateAddress;
23786 VkStridedDeviceAddressNV vertexBuffer;
23787} VkClusterAccelerationStructureInstantiateClusterInfoNV;
23788
23789typedef struct VkClusterAccelerationStructureGetTemplateIndicesInfoNV {
23790 VkDeviceAddress clusterTemplateAddress;
23791} VkClusterAccelerationStructureGetTemplateIndicesInfoNV;
23792
23793typedef struct VkAccelerationStructureBuildSizesInfoKHR {
23794 VkStructureType sType;
23795 void* pNext;
23796 VkDeviceSize accelerationStructureSize;
23797 VkDeviceSize updateScratchSize;
23798 VkDeviceSize buildScratchSize;
23799} VkAccelerationStructureBuildSizesInfoKHR;
23800
23801typedef struct VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV {
23802 VkStructureType sType;
23803 void* pNext;
23804 VkBool32 allowClusterAccelerationStructure;
23805} VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV;
23806
23807typedef void (VKAPI_PTR *PFN_vkGetClusterAccelerationStructureBuildSizesNV)(VkDevice device, const VkClusterAccelerationStructureInputInfoNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
23808typedef void (VKAPI_PTR *PFN_vkCmdBuildClusterAccelerationStructureIndirectNV)(VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos);
23809
23810#ifndef VK_NO_PROTOTYPES
23811#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23812VKAPI_ATTR void VKAPI_CALL vkGetClusterAccelerationStructureBuildSizesNV(
23813 VkDevice device,
23814 const VkClusterAccelerationStructureInputInfoNV* pInfo,
23815 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
23816#endif
23817
23818#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23819VKAPI_ATTR void VKAPI_CALL vkCmdBuildClusterAccelerationStructureIndirectNV(
23820 VkCommandBuffer commandBuffer,
23821 const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos);
23822#endif
23823#endif
23824
23825
23826// VK_NV_partitioned_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
23827#define VK_NV_partitioned_acceleration_structure 1
23828#define VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_SPEC_VERSION 1
23829#define VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_NV_partitioned_acceleration_structure"
23830#define VK_PARTITIONED_ACCELERATION_STRUCTURE_PARTITION_INDEX_GLOBAL_NV (~0U)
23831
23832typedef enum VkPartitionedAccelerationStructureOpTypeNV {
23833 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_INSTANCE_NV = 0,
23834 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_UPDATE_INSTANCE_NV = 1,
23835 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_PARTITION_TRANSLATION_NV = 2,
23836 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
23837} VkPartitionedAccelerationStructureOpTypeNV;
23838
23839typedef enum VkPartitionedAccelerationStructureInstanceFlagBitsNV {
23840 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FACING_CULL_DISABLE_BIT_NV = 0x00000001,
23841 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FLIP_FACING_BIT_NV = 0x00000002,
23842 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_OPAQUE_BIT_NV = 0x00000004,
23843 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
23844 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_ENABLE_EXPLICIT_BOUNDING_BOX_NV = 0x00000010,
23845 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
23846} VkPartitionedAccelerationStructureInstanceFlagBitsNV;
23847typedef VkFlags VkPartitionedAccelerationStructureInstanceFlagsNV;
23848typedef struct VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV {
23849 VkStructureType sType;
23850 void* pNext;
23851 VkBool32 partitionedAccelerationStructure;
23852} VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV;
23853
23854typedef struct VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV {
23855 VkStructureType sType;
23856 void* pNext;
23857 uint32_t maxPartitionCount;
23858} VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV;
23859
23860typedef struct VkPartitionedAccelerationStructureFlagsNV {
23861 VkStructureType sType;
23862 void* pNext;
23863 VkBool32 enablePartitionTranslation;
23864} VkPartitionedAccelerationStructureFlagsNV;
23865
23866typedef struct VkBuildPartitionedAccelerationStructureIndirectCommandNV {
23867 VkPartitionedAccelerationStructureOpTypeNV opType;
23868 uint32_t argCount;
23869 VkStridedDeviceAddressNV argData;
23870} VkBuildPartitionedAccelerationStructureIndirectCommandNV;
23871
23872typedef struct VkPartitionedAccelerationStructureWriteInstanceDataNV {
23873 VkTransformMatrixKHR transform;
23874 float explicitAABB[6];
23875 uint32_t instanceID;
23876 uint32_t instanceMask;
23877 uint32_t instanceContributionToHitGroupIndex;
23878 VkPartitionedAccelerationStructureInstanceFlagsNV instanceFlags;
23879 uint32_t instanceIndex;
23880 uint32_t partitionIndex;
23881 VkDeviceAddress accelerationStructure;
23882} VkPartitionedAccelerationStructureWriteInstanceDataNV;
23883
23884typedef struct VkPartitionedAccelerationStructureUpdateInstanceDataNV {
23885 uint32_t instanceIndex;
23886 uint32_t instanceContributionToHitGroupIndex;
23887 VkDeviceAddress accelerationStructure;
23888} VkPartitionedAccelerationStructureUpdateInstanceDataNV;
23889
23890typedef struct VkPartitionedAccelerationStructureWritePartitionTranslationDataNV {
23891 uint32_t partitionIndex;
23892 float partitionTranslation[3];
23893} VkPartitionedAccelerationStructureWritePartitionTranslationDataNV;
23894
23895typedef struct VkWriteDescriptorSetPartitionedAccelerationStructureNV {
23896 VkStructureType sType;
23897 void* pNext;
23898 uint32_t accelerationStructureCount;
23899 const VkDeviceAddress* pAccelerationStructures;
23900} VkWriteDescriptorSetPartitionedAccelerationStructureNV;
23901
23902typedef struct VkPartitionedAccelerationStructureInstancesInputNV {
23903 VkStructureType sType;
23904 void* pNext;
23905 VkBuildAccelerationStructureFlagsKHR flags;
23906 uint32_t instanceCount;
23907 uint32_t maxInstancePerPartitionCount;
23908 uint32_t partitionCount;
23909 uint32_t maxInstanceInGlobalPartitionCount;
23910} VkPartitionedAccelerationStructureInstancesInputNV;
23911
23912typedef struct VkBuildPartitionedAccelerationStructureInfoNV {
23913 VkStructureType sType;
23914 void* pNext;
23915 VkPartitionedAccelerationStructureInstancesInputNV input;
23916 VkDeviceAddress srcAccelerationStructureData;
23917 VkDeviceAddress dstAccelerationStructureData;
23918 VkDeviceAddress scratchData;
23919 VkDeviceAddress srcInfos;
23920 VkDeviceAddress srcInfosCount;
23921} VkBuildPartitionedAccelerationStructureInfoNV;
23922
23923typedef void (VKAPI_PTR *PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV)(VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
23924typedef void (VKAPI_PTR *PFN_vkCmdBuildPartitionedAccelerationStructuresNV)(VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo);
23925
23926#ifndef VK_NO_PROTOTYPES
23927#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23928VKAPI_ATTR void VKAPI_CALL vkGetPartitionedAccelerationStructuresBuildSizesNV(
23929 VkDevice device,
23930 const VkPartitionedAccelerationStructureInstancesInputNV* pInfo,
23931 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
23932#endif
23933
23934#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23935VKAPI_ATTR void VKAPI_CALL vkCmdBuildPartitionedAccelerationStructuresNV(
23936 VkCommandBuffer commandBuffer,
23937 const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo);
23938#endif
23939#endif
23940
23941
23942// VK_EXT_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
23943#define VK_EXT_device_generated_commands 1
23944VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectExecutionSetEXT)
23945VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutEXT)
23946#define VK_EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
23947#define VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_EXT_device_generated_commands"
23948
23949typedef enum VkIndirectExecutionSetInfoTypeEXT {
23950 VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT = 0,
23951 VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT = 1,
23952 VK_INDIRECT_EXECUTION_SET_INFO_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
23953} VkIndirectExecutionSetInfoTypeEXT;
23954
23955typedef enum VkIndirectCommandsTokenTypeEXT {
23956 VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT = 0,
23957 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT = 1,
23958 VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT = 2,
23959 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT = 3,
23960 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT = 4,
23961 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT = 5,
23962 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT = 6,
23963 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT = 7,
23964 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT = 8,
23965 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT = 9,
23966 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_EXT = 1000135000,
23967 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_SEQUENCE_INDEX_EXT = 1000135001,
23968 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT = 1000202002,
23969 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT = 1000202003,
23970 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT = 1000328000,
23971 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT = 1000328001,
23972 VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT = 1000386004,
23973 VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
23974} VkIndirectCommandsTokenTypeEXT;
23975
23976typedef enum VkIndirectCommandsInputModeFlagBitsEXT {
23977 VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT = 0x00000001,
23978 VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT = 0x00000002,
23979 VK_INDIRECT_COMMANDS_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
23980} VkIndirectCommandsInputModeFlagBitsEXT;
23981typedef VkFlags VkIndirectCommandsInputModeFlagsEXT;
23982
23983typedef enum VkIndirectCommandsLayoutUsageFlagBitsEXT {
23984 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT = 0x00000001,
23985 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT = 0x00000002,
23986 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
23987} VkIndirectCommandsLayoutUsageFlagBitsEXT;
23988typedef VkFlags VkIndirectCommandsLayoutUsageFlagsEXT;
23989typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
23990 VkStructureType sType;
23991 void* pNext;
23992 VkBool32 deviceGeneratedCommands;
23993 VkBool32 dynamicGeneratedPipelineLayout;
23994} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;
23995
23996typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
23997 VkStructureType sType;
23998 void* pNext;
23999 uint32_t maxIndirectPipelineCount;
24000 uint32_t maxIndirectShaderObjectCount;
24001 uint32_t maxIndirectSequenceCount;
24002 uint32_t maxIndirectCommandsTokenCount;
24003 uint32_t maxIndirectCommandsTokenOffset;
24004 uint32_t maxIndirectCommandsIndirectStride;
24005 VkIndirectCommandsInputModeFlagsEXT supportedIndirectCommandsInputModes;
24006 VkShaderStageFlags supportedIndirectCommandsShaderStages;
24007 VkShaderStageFlags supportedIndirectCommandsShaderStagesPipelineBinding;
24008 VkShaderStageFlags supportedIndirectCommandsShaderStagesShaderBinding;
24009 VkBool32 deviceGeneratedCommandsTransformFeedback;
24010 VkBool32 deviceGeneratedCommandsMultiDrawIndirectCount;
24011} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;
24012
24013typedef struct VkGeneratedCommandsMemoryRequirementsInfoEXT {
24014 VkStructureType sType;
24015 const void* pNext;
24016 VkIndirectExecutionSetEXT indirectExecutionSet;
24017 VkIndirectCommandsLayoutEXT indirectCommandsLayout;
24018 uint32_t maxSequenceCount;
24019 uint32_t maxDrawCount;
24020} VkGeneratedCommandsMemoryRequirementsInfoEXT;
24021
24022typedef struct VkIndirectExecutionSetPipelineInfoEXT {
24023 VkStructureType sType;
24024 const void* pNext;
24025 VkPipeline initialPipeline;
24026 uint32_t maxPipelineCount;
24027} VkIndirectExecutionSetPipelineInfoEXT;
24028
24029typedef struct VkIndirectExecutionSetShaderLayoutInfoEXT {
24030 VkStructureType sType;
24031 const void* pNext;
24032 uint32_t setLayoutCount;
24033 const VkDescriptorSetLayout* pSetLayouts;
24034} VkIndirectExecutionSetShaderLayoutInfoEXT;
24035
24036typedef struct VkIndirectExecutionSetShaderInfoEXT {
24037 VkStructureType sType;
24038 const void* pNext;
24039 uint32_t shaderCount;
24040 const VkShaderEXT* pInitialShaders;
24041 const VkIndirectExecutionSetShaderLayoutInfoEXT* pSetLayoutInfos;
24042 uint32_t maxShaderCount;
24043 uint32_t pushConstantRangeCount;
24044 const VkPushConstantRange* pPushConstantRanges;
24045} VkIndirectExecutionSetShaderInfoEXT;
24046
24047typedef union VkIndirectExecutionSetInfoEXT {
24048 const VkIndirectExecutionSetPipelineInfoEXT* pPipelineInfo;
24049 const VkIndirectExecutionSetShaderInfoEXT* pShaderInfo;
24050} VkIndirectExecutionSetInfoEXT;
24051
24052typedef struct VkIndirectExecutionSetCreateInfoEXT {
24053 VkStructureType sType;
24054 const void* pNext;
24055 VkIndirectExecutionSetInfoTypeEXT type;
24056 VkIndirectExecutionSetInfoEXT info;
24057} VkIndirectExecutionSetCreateInfoEXT;
24058
24059typedef struct VkGeneratedCommandsInfoEXT {
24060 VkStructureType sType;
24061 const void* pNext;
24062 VkShaderStageFlags shaderStages;
24063 VkIndirectExecutionSetEXT indirectExecutionSet;
24064 VkIndirectCommandsLayoutEXT indirectCommandsLayout;
24065 VkDeviceAddress indirectAddress;
24066 VkDeviceSize indirectAddressSize;
24067 VkDeviceAddress preprocessAddress;
24068 VkDeviceSize preprocessSize;
24069 uint32_t maxSequenceCount;
24070 VkDeviceAddress sequenceCountAddress;
24071 uint32_t maxDrawCount;
24072} VkGeneratedCommandsInfoEXT;
24073
24074typedef struct VkWriteIndirectExecutionSetPipelineEXT {
24075 VkStructureType sType;
24076 const void* pNext;
24077 uint32_t index;
24078 VkPipeline pipeline;
24079} VkWriteIndirectExecutionSetPipelineEXT;
24080
24081typedef struct VkIndirectCommandsPushConstantTokenEXT {
24082 VkPushConstantRange updateRange;
24083} VkIndirectCommandsPushConstantTokenEXT;
24084
24085typedef struct VkIndirectCommandsVertexBufferTokenEXT {
24086 uint32_t vertexBindingUnit;
24087} VkIndirectCommandsVertexBufferTokenEXT;
24088
24089typedef struct VkIndirectCommandsIndexBufferTokenEXT {
24090 VkIndirectCommandsInputModeFlagBitsEXT mode;
24091} VkIndirectCommandsIndexBufferTokenEXT;
24092
24093typedef struct VkIndirectCommandsExecutionSetTokenEXT {
24094 VkIndirectExecutionSetInfoTypeEXT type;
24095 VkShaderStageFlags shaderStages;
24096} VkIndirectCommandsExecutionSetTokenEXT;
24097
24098typedef union VkIndirectCommandsTokenDataEXT {
24099 const VkIndirectCommandsPushConstantTokenEXT* pPushConstant;
24100 const VkIndirectCommandsVertexBufferTokenEXT* pVertexBuffer;
24101 const VkIndirectCommandsIndexBufferTokenEXT* pIndexBuffer;
24102 const VkIndirectCommandsExecutionSetTokenEXT* pExecutionSet;
24103} VkIndirectCommandsTokenDataEXT;
24104
24105typedef struct VkIndirectCommandsLayoutTokenEXT {
24106 VkStructureType sType;
24107 const void* pNext;
24108 VkIndirectCommandsTokenTypeEXT type;
24109 VkIndirectCommandsTokenDataEXT data;
24110 uint32_t offset;
24111} VkIndirectCommandsLayoutTokenEXT;
24112
24113typedef struct VkIndirectCommandsLayoutCreateInfoEXT {
24114 VkStructureType sType;
24115 const void* pNext;
24116 VkIndirectCommandsLayoutUsageFlagsEXT flags;
24117 VkShaderStageFlags shaderStages;
24118 uint32_t indirectStride;
24119 VkPipelineLayout pipelineLayout;
24120 uint32_t tokenCount;
24121 const VkIndirectCommandsLayoutTokenEXT* pTokens;
24122} VkIndirectCommandsLayoutCreateInfoEXT;
24123
24124typedef struct VkDrawIndirectCountIndirectCommandEXT {
24125 VkDeviceAddress bufferAddress;
24126 uint32_t stride;
24127 uint32_t commandCount;
24128} VkDrawIndirectCountIndirectCommandEXT;
24129
24130typedef struct VkBindVertexBufferIndirectCommandEXT {
24131 VkDeviceAddress bufferAddress;
24132 uint32_t size;
24133 uint32_t stride;
24134} VkBindVertexBufferIndirectCommandEXT;
24135
24136typedef struct VkBindIndexBufferIndirectCommandEXT {
24137 VkDeviceAddress bufferAddress;
24138 uint32_t size;
24139 VkIndexType indexType;
24140} VkBindIndexBufferIndirectCommandEXT;
24141
24142typedef struct VkGeneratedCommandsPipelineInfoEXT {
24143 VkStructureType sType;
24144 void* pNext;
24145 VkPipeline pipeline;
24146} VkGeneratedCommandsPipelineInfoEXT;
24147
24148typedef struct VkGeneratedCommandsShaderInfoEXT {
24149 VkStructureType sType;
24150 void* pNext;
24151 uint32_t shaderCount;
24152 const VkShaderEXT* pShaders;
24153} VkGeneratedCommandsShaderInfoEXT;
24154
24155typedef struct VkWriteIndirectExecutionSetShaderEXT {
24156 VkStructureType sType;
24157 const void* pNext;
24158 uint32_t index;
24159 VkShaderEXT shader;
24160} VkWriteIndirectExecutionSetShaderEXT;
24161
24162typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements);
24163typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo, VkCommandBuffer stateCommandBuffer);
24164typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);
24165typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutEXT)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout);
24166typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutEXT)(VkDevice device, VkIndirectCommandsLayoutEXT indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
24167typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectExecutionSetEXT)(VkDevice device, const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectExecutionSetEXT* pIndirectExecutionSet);
24168typedef void (VKAPI_PTR *PFN_vkDestroyIndirectExecutionSetEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, const VkAllocationCallbacks* pAllocator);
24169typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetPipelineEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
24170typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetShaderEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
24171
24172#ifndef VK_NO_PROTOTYPES
24173#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24174VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsEXT(
24175 VkDevice device,
24176 const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo,
24177 VkMemoryRequirements2* pMemoryRequirements);
24178#endif
24179
24180#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24181VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsEXT(
24182 VkCommandBuffer commandBuffer,
24183 const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo,
24184 VkCommandBuffer stateCommandBuffer);
24185#endif
24186
24187#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24188VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsEXT(
24189 VkCommandBuffer commandBuffer,
24190 VkBool32 isPreprocessed,
24191 const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);
24192#endif
24193
24194#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24195VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutEXT(
24196 VkDevice device,
24197 const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo,
24198 const VkAllocationCallbacks* pAllocator,
24199 VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout);
24200#endif
24201
24202#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24203VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutEXT(
24204 VkDevice device,
24205 VkIndirectCommandsLayoutEXT indirectCommandsLayout,
24206 const VkAllocationCallbacks* pAllocator);
24207#endif
24208
24209#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24210VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectExecutionSetEXT(
24211 VkDevice device,
24212 const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo,
24213 const VkAllocationCallbacks* pAllocator,
24214 VkIndirectExecutionSetEXT* pIndirectExecutionSet);
24215#endif
24216
24217#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24218VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectExecutionSetEXT(
24219 VkDevice device,
24220 VkIndirectExecutionSetEXT indirectExecutionSet,
24221 const VkAllocationCallbacks* pAllocator);
24222#endif
24223
24224#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24225VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetPipelineEXT(
24226 VkDevice device,
24227 VkIndirectExecutionSetEXT indirectExecutionSet,
24228 uint32_t executionSetWriteCount,
24229 const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
24230#endif
24231
24232#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24233VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetShaderEXT(
24234 VkDevice device,
24235 VkIndirectExecutionSetEXT indirectExecutionSet,
24236 uint32_t executionSetWriteCount,
24237 const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
24238#endif
24239#endif
24240
24241
24242// VK_MESA_image_alignment_control is a preprocessor guard. Do not pass it to API calls.
24243#define VK_MESA_image_alignment_control 1
24244#define VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION 1
24245#define VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME "VK_MESA_image_alignment_control"
24246typedef struct VkPhysicalDeviceImageAlignmentControlFeaturesMESA {
24247 VkStructureType sType;
24248 void* pNext;
24249 VkBool32 imageAlignmentControl;
24250} VkPhysicalDeviceImageAlignmentControlFeaturesMESA;
24251
24252typedef struct VkPhysicalDeviceImageAlignmentControlPropertiesMESA {
24253 VkStructureType sType;
24254 void* pNext;
24255 uint32_t supportedImageAlignmentMask;
24256} VkPhysicalDeviceImageAlignmentControlPropertiesMESA;
24257
24258typedef struct VkImageAlignmentControlCreateInfoMESA {
24259 VkStructureType sType;
24260 const void* pNext;
24261 uint32_t maximumRequestedAlignment;
24262} VkImageAlignmentControlCreateInfoMESA;
24263
24264
24265
24266// VK_NV_push_constant_bank is a preprocessor guard. Do not pass it to API calls.
24267#define VK_NV_push_constant_bank 1
24268#define VK_NV_PUSH_CONSTANT_BANK_SPEC_VERSION 1
24269#define VK_NV_PUSH_CONSTANT_BANK_EXTENSION_NAME "VK_NV_push_constant_bank"
24270typedef struct VkPushConstantBankInfoNV {
24271 VkStructureType sType;
24272 const void* pNext;
24273 uint32_t bank;
24274} VkPushConstantBankInfoNV;
24275
24276typedef struct VkPhysicalDevicePushConstantBankFeaturesNV {
24277 VkStructureType sType;
24278 void* pNext;
24279 VkBool32 pushConstantBank;
24280} VkPhysicalDevicePushConstantBankFeaturesNV;
24281
24282typedef struct VkPhysicalDevicePushConstantBankPropertiesNV {
24283 VkStructureType sType;
24284 void* pNext;
24285 uint32_t maxGraphicsPushConstantBanks;
24286 uint32_t maxComputePushConstantBanks;
24287 uint32_t maxGraphicsPushDataBanks;
24288 uint32_t maxComputePushDataBanks;
24289} VkPhysicalDevicePushConstantBankPropertiesNV;
24290
24291
24292
24293// VK_EXT_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
24294#define VK_EXT_ray_tracing_invocation_reorder 1
24295#define VK_EXT_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
24296#define VK_EXT_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_EXT_ray_tracing_invocation_reorder"
24297typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT {
24298 VkStructureType sType;
24299 void* pNext;
24300 VkRayTracingInvocationReorderModeEXT rayTracingInvocationReorderReorderingHint;
24301 uint32_t maxShaderBindingTableRecordIndex;
24302} VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT;
24303
24304typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT {
24305 VkStructureType sType;
24306 void* pNext;
24307 VkBool32 rayTracingInvocationReorder;
24308} VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT;
24309
24310
24311
24312// VK_EXT_depth_clamp_control is a preprocessor guard. Do not pass it to API calls.
24313#define VK_EXT_depth_clamp_control 1
24314#define VK_EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION 1
24315#define VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clamp_control"
24316typedef struct VkPhysicalDeviceDepthClampControlFeaturesEXT {
24317 VkStructureType sType;
24318 void* pNext;
24319 VkBool32 depthClampControl;
24320} VkPhysicalDeviceDepthClampControlFeaturesEXT;
24321
24322typedef struct VkPipelineViewportDepthClampControlCreateInfoEXT {
24323 VkStructureType sType;
24324 const void* pNext;
24325 VkDepthClampModeEXT depthClampMode;
24326 const VkDepthClampRangeEXT* pDepthClampRange;
24327} VkPipelineViewportDepthClampControlCreateInfoEXT;
24328
24329
24330
24331// VK_HUAWEI_hdr_vivid is a preprocessor guard. Do not pass it to API calls.
24332#define VK_HUAWEI_hdr_vivid 1
24333#define VK_HUAWEI_HDR_VIVID_SPEC_VERSION 1
24334#define VK_HUAWEI_HDR_VIVID_EXTENSION_NAME "VK_HUAWEI_hdr_vivid"
24335typedef struct VkPhysicalDeviceHdrVividFeaturesHUAWEI {
24336 VkStructureType sType;
24337 void* pNext;
24338 VkBool32 hdrVivid;
24339} VkPhysicalDeviceHdrVividFeaturesHUAWEI;
24340
24341typedef struct VkHdrVividDynamicMetadataHUAWEI {
24342 VkStructureType sType;
24343 const void* pNext;
24344 size_t dynamicMetadataSize;
24345 const void* pDynamicMetadata;
24346} VkHdrVividDynamicMetadataHUAWEI;
24347
24348
24349
24350// VK_NV_cooperative_matrix2 is a preprocessor guard. Do not pass it to API calls.
24351#define VK_NV_cooperative_matrix2 1
24352#define VK_NV_COOPERATIVE_MATRIX_2_SPEC_VERSION 1
24353#define VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME "VK_NV_cooperative_matrix2"
24354typedef struct VkCooperativeMatrixFlexibleDimensionsPropertiesNV {
24355 VkStructureType sType;
24356 void* pNext;
24357 uint32_t MGranularity;
24358 uint32_t NGranularity;
24359 uint32_t KGranularity;
24360 VkComponentTypeKHR AType;
24361 VkComponentTypeKHR BType;
24362 VkComponentTypeKHR CType;
24363 VkComponentTypeKHR ResultType;
24364 VkBool32 saturatingAccumulation;
24365 VkScopeKHR scope;
24366 uint32_t workgroupInvocations;
24367} VkCooperativeMatrixFlexibleDimensionsPropertiesNV;
24368
24369typedef struct VkPhysicalDeviceCooperativeMatrix2FeaturesNV {
24370 VkStructureType sType;
24371 void* pNext;
24372 VkBool32 cooperativeMatrixWorkgroupScope;
24373 VkBool32 cooperativeMatrixFlexibleDimensions;
24374 VkBool32 cooperativeMatrixReductions;
24375 VkBool32 cooperativeMatrixConversions;
24376 VkBool32 cooperativeMatrixPerElementOperations;
24377 VkBool32 cooperativeMatrixTensorAddressing;
24378 VkBool32 cooperativeMatrixBlockLoads;
24379} VkPhysicalDeviceCooperativeMatrix2FeaturesNV;
24380
24381typedef struct VkPhysicalDeviceCooperativeMatrix2PropertiesNV {
24382 VkStructureType sType;
24383 void* pNext;
24384 uint32_t cooperativeMatrixWorkgroupScopeMaxWorkgroupSize;
24385 uint32_t cooperativeMatrixFlexibleDimensionsMaxDimension;
24386 uint32_t cooperativeMatrixWorkgroupScopeReservedSharedMemory;
24387} VkPhysicalDeviceCooperativeMatrix2PropertiesNV;
24388
24389typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
24390
24391#ifndef VK_NO_PROTOTYPES
24392#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24393VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
24394 VkPhysicalDevice physicalDevice,
24395 uint32_t* pPropertyCount,
24396 VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
24397#endif
24398#endif
24399
24400
24401// VK_ARM_pipeline_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
24402#define VK_ARM_pipeline_opacity_micromap 1
24403#define VK_ARM_PIPELINE_OPACITY_MICROMAP_SPEC_VERSION 1
24404#define VK_ARM_PIPELINE_OPACITY_MICROMAP_EXTENSION_NAME "VK_ARM_pipeline_opacity_micromap"
24405typedef struct VkPhysicalDevicePipelineOpacityMicromapFeaturesARM {
24406 VkStructureType sType;
24407 void* pNext;
24408 VkBool32 pipelineOpacityMicromap;
24409} VkPhysicalDevicePipelineOpacityMicromapFeaturesARM;
24410
24411
24412
24413// VK_ARM_performance_counters_by_region is a preprocessor guard. Do not pass it to API calls.
24414#define VK_ARM_performance_counters_by_region 1
24415#define VK_ARM_PERFORMANCE_COUNTERS_BY_REGION_SPEC_VERSION 1
24416#define VK_ARM_PERFORMANCE_COUNTERS_BY_REGION_EXTENSION_NAME "VK_ARM_performance_counters_by_region"
24417typedef VkFlags VkPerformanceCounterDescriptionFlagsARM;
24418typedef struct VkPhysicalDevicePerformanceCountersByRegionFeaturesARM {
24419 VkStructureType sType;
24420 void* pNext;
24421 VkBool32 performanceCountersByRegion;
24422} VkPhysicalDevicePerformanceCountersByRegionFeaturesARM;
24423
24424typedef struct VkPhysicalDevicePerformanceCountersByRegionPropertiesARM {
24425 VkStructureType sType;
24426 void* pNext;
24427 uint32_t maxPerRegionPerformanceCounters;
24428 VkExtent2D performanceCounterRegionSize;
24429 uint32_t rowStrideAlignment;
24430 uint32_t regionAlignment;
24431 VkBool32 identityTransformOrder;
24432} VkPhysicalDevicePerformanceCountersByRegionPropertiesARM;
24433
24434typedef struct VkPerformanceCounterARM {
24435 VkStructureType sType;
24436 void* pNext;
24437 uint32_t counterID;
24438} VkPerformanceCounterARM;
24439
24440typedef struct VkPerformanceCounterDescriptionARM {
24441 VkStructureType sType;
24442 void* pNext;
24443 VkPerformanceCounterDescriptionFlagsARM flags;
24444 char name[VK_MAX_DESCRIPTION_SIZE];
24445} VkPerformanceCounterDescriptionARM;
24446
24447typedef struct VkRenderPassPerformanceCountersByRegionBeginInfoARM {
24448 VkStructureType sType;
24449 void* pNext;
24450 uint32_t counterAddressCount;
24451 const VkDeviceAddress* pCounterAddresses;
24452 VkBool32 serializeRegions;
24453 uint32_t counterIndexCount;
24454 uint32_t* pCounterIndices;
24455} VkRenderPassPerformanceCountersByRegionBeginInfoARM;
24456
24457typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterARM* pCounters, VkPerformanceCounterDescriptionARM* pCounterDescriptions);
24458
24459#ifndef VK_NO_PROTOTYPES
24460#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24461VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(
24462 VkPhysicalDevice physicalDevice,
24463 uint32_t queueFamilyIndex,
24464 uint32_t* pCounterCount,
24465 VkPerformanceCounterARM* pCounters,
24466 VkPerformanceCounterDescriptionARM* pCounterDescriptions);
24467#endif
24468#endif
24469
24470
24471// VK_EXT_vertex_attribute_robustness is a preprocessor guard. Do not pass it to API calls.
24472#define VK_EXT_vertex_attribute_robustness 1
24473#define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION 1
24474#define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_vertex_attribute_robustness"
24475typedef struct VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
24476 VkStructureType sType;
24477 void* pNext;
24478 VkBool32 vertexAttributeRobustness;
24479} VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT;
24480
24481
24482
24483// VK_ARM_format_pack is a preprocessor guard. Do not pass it to API calls.
24484#define VK_ARM_format_pack 1
24485#define VK_ARM_FORMAT_PACK_SPEC_VERSION 1
24486#define VK_ARM_FORMAT_PACK_EXTENSION_NAME "VK_ARM_format_pack"
24487typedef struct VkPhysicalDeviceFormatPackFeaturesARM {
24488 VkStructureType sType;
24489 void* pNext;
24490 VkBool32 formatPack;
24491} VkPhysicalDeviceFormatPackFeaturesARM;
24492
24493
24494
24495// VK_VALVE_fragment_density_map_layered is a preprocessor guard. Do not pass it to API calls.
24496#define VK_VALVE_fragment_density_map_layered 1
24497#define VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_SPEC_VERSION 1
24498#define VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_EXTENSION_NAME "VK_VALVE_fragment_density_map_layered"
24499typedef struct VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
24500 VkStructureType sType;
24501 void* pNext;
24502 VkBool32 fragmentDensityMapLayered;
24503} VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE;
24504
24505typedef struct VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
24506 VkStructureType sType;
24507 void* pNext;
24508 uint32_t maxFragmentDensityMapLayers;
24509} VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE;
24510
24511typedef struct VkPipelineFragmentDensityMapLayeredCreateInfoVALVE {
24512 VkStructureType sType;
24513 const void* pNext;
24514 uint32_t maxFragmentDensityMapLayers;
24515} VkPipelineFragmentDensityMapLayeredCreateInfoVALVE;
24516
24517
24518
24519// VK_NV_present_metering is a preprocessor guard. Do not pass it to API calls.
24520#define VK_NV_present_metering 1
24521#define VK_NV_PRESENT_METERING_SPEC_VERSION 1
24522#define VK_NV_PRESENT_METERING_EXTENSION_NAME "VK_NV_present_metering"
24523typedef struct VkSetPresentConfigNV {
24524 VkStructureType sType;
24525 const void* pNext;
24526 uint32_t numFramesPerBatch;
24527 uint32_t presentConfigFeedback;
24528} VkSetPresentConfigNV;
24529
24530typedef struct VkPhysicalDevicePresentMeteringFeaturesNV {
24531 VkStructureType sType;
24532 void* pNext;
24533 VkBool32 presentMetering;
24534} VkPhysicalDevicePresentMeteringFeaturesNV;
24535
24536
24537
24538// VK_EXT_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
24539#define VK_EXT_fragment_density_map_offset 1
24540#define VK_EXT_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1
24541#define VK_EXT_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_EXT_fragment_density_map_offset"
24542typedef VkRenderingEndInfoKHR VkRenderingEndInfoEXT;
24543
24544typedef void (VKAPI_PTR *PFN_vkCmdEndRendering2EXT)(VkCommandBuffer commandBuffer, const VkRenderingEndInfoKHR* pRenderingEndInfo);
24545
24546#ifndef VK_NO_PROTOTYPES
24547#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24548VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering2EXT(
24549 VkCommandBuffer commandBuffer,
24550 const VkRenderingEndInfoKHR* pRenderingEndInfo);
24551#endif
24552#endif
24553
24554
24555// VK_EXT_zero_initialize_device_memory is a preprocessor guard. Do not pass it to API calls.
24556#define VK_EXT_zero_initialize_device_memory 1
24557#define VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_SPEC_VERSION 1
24558#define VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_EXTENSION_NAME "VK_EXT_zero_initialize_device_memory"
24559typedef struct VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {
24560 VkStructureType sType;
24561 void* pNext;
24562 VkBool32 zeroInitializeDeviceMemory;
24563} VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT;
24564
24565
24566
24567// VK_EXT_shader_64bit_indexing is a preprocessor guard. Do not pass it to API calls.
24568#define VK_EXT_shader_64bit_indexing 1
24569#define VK_EXT_SHADER_64BIT_INDEXING_SPEC_VERSION 1
24570#define VK_EXT_SHADER_64BIT_INDEXING_EXTENSION_NAME "VK_EXT_shader_64bit_indexing"
24571typedef struct VkPhysicalDeviceShader64BitIndexingFeaturesEXT {
24572 VkStructureType sType;
24573 void* pNext;
24574 VkBool32 shader64BitIndexing;
24575} VkPhysicalDeviceShader64BitIndexingFeaturesEXT;
24576
24577
24578
24579// VK_EXT_custom_resolve is a preprocessor guard. Do not pass it to API calls.
24580#define VK_EXT_custom_resolve 1
24581#define VK_EXT_CUSTOM_RESOLVE_SPEC_VERSION 1
24582#define VK_EXT_CUSTOM_RESOLVE_EXTENSION_NAME "VK_EXT_custom_resolve"
24583typedef struct VkPhysicalDeviceCustomResolveFeaturesEXT {
24584 VkStructureType sType;
24585 void* pNext;
24586 VkBool32 customResolve;
24587} VkPhysicalDeviceCustomResolveFeaturesEXT;
24588
24589typedef struct VkBeginCustomResolveInfoEXT {
24590 VkStructureType sType;
24591 void* pNext;
24592} VkBeginCustomResolveInfoEXT;
24593
24594typedef struct VkCustomResolveCreateInfoEXT {
24595 VkStructureType sType;
24596 const void* pNext;
24597 VkBool32 customResolve;
24598 uint32_t colorAttachmentCount;
24599 const VkFormat* pColorAttachmentFormats;
24600 VkFormat depthAttachmentFormat;
24601 VkFormat stencilAttachmentFormat;
24602} VkCustomResolveCreateInfoEXT;
24603
24604typedef void (VKAPI_PTR *PFN_vkCmdBeginCustomResolveEXT)(VkCommandBuffer commandBuffer, const VkBeginCustomResolveInfoEXT* pBeginCustomResolveInfo);
24605
24606#ifndef VK_NO_PROTOTYPES
24607#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24608VKAPI_ATTR void VKAPI_CALL vkCmdBeginCustomResolveEXT(
24609 VkCommandBuffer commandBuffer,
24610 const VkBeginCustomResolveInfoEXT* pBeginCustomResolveInfo);
24611#endif
24612#endif
24613
24614
24615// VK_QCOM_data_graph_model is a preprocessor guard. Do not pass it to API calls.
24616#define VK_QCOM_data_graph_model 1
24617#define VK_DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM 3U
24618#define VK_QCOM_DATA_GRAPH_MODEL_SPEC_VERSION 1
24619#define VK_QCOM_DATA_GRAPH_MODEL_EXTENSION_NAME "VK_QCOM_data_graph_model"
24620
24621typedef enum VkDataGraphModelCacheTypeQCOM {
24622 VK_DATA_GRAPH_MODEL_CACHE_TYPE_GENERIC_BINARY_QCOM = 0,
24623 VK_DATA_GRAPH_MODEL_CACHE_TYPE_MAX_ENUM_QCOM = 0x7FFFFFFF
24624} VkDataGraphModelCacheTypeQCOM;
24625typedef struct VkPipelineCacheHeaderVersionDataGraphQCOM {
24626 uint32_t headerSize;
24627 VkPipelineCacheHeaderVersion headerVersion;
24628 VkDataGraphModelCacheTypeQCOM cacheType;
24629 uint32_t cacheVersion;
24630 uint32_t toolchainVersion[VK_DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM];
24631} VkPipelineCacheHeaderVersionDataGraphQCOM;
24632
24633typedef struct VkDataGraphPipelineBuiltinModelCreateInfoQCOM {
24634 VkStructureType sType;
24635 const void* pNext;
24636 const VkPhysicalDeviceDataGraphOperationSupportARM* pOperation;
24637} VkDataGraphPipelineBuiltinModelCreateInfoQCOM;
24638
24639typedef struct VkPhysicalDeviceDataGraphModelFeaturesQCOM {
24640 VkStructureType sType;
24641 void* pNext;
24642 VkBool32 dataGraphModel;
24643} VkPhysicalDeviceDataGraphModelFeaturesQCOM;
24644
24645
24646
24647// VK_EXT_shader_long_vector is a preprocessor guard. Do not pass it to API calls.
24648#define VK_EXT_shader_long_vector 1
24649#define VK_EXT_SHADER_LONG_VECTOR_SPEC_VERSION 1
24650#define VK_EXT_SHADER_LONG_VECTOR_EXTENSION_NAME "VK_EXT_shader_long_vector"
24651typedef struct VkPhysicalDeviceShaderLongVectorFeaturesEXT {
24652 VkStructureType sType;
24653 void* pNext;
24654 VkBool32 longVector;
24655} VkPhysicalDeviceShaderLongVectorFeaturesEXT;
24656
24657typedef struct VkPhysicalDeviceShaderLongVectorPropertiesEXT {
24658 VkStructureType sType;
24659 void* pNext;
24660 uint32_t maxVectorComponents;
24661} VkPhysicalDeviceShaderLongVectorPropertiesEXT;
24662
24663
24664
24665// VK_SEC_pipeline_cache_incremental_mode is a preprocessor guard. Do not pass it to API calls.
24666#define VK_SEC_pipeline_cache_incremental_mode 1
24667#define VK_SEC_PIPELINE_CACHE_INCREMENTAL_MODE_SPEC_VERSION 1
24668#define VK_SEC_PIPELINE_CACHE_INCREMENTAL_MODE_EXTENSION_NAME "VK_SEC_pipeline_cache_incremental_mode"
24669typedef struct VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {
24670 VkStructureType sType;
24671 void* pNext;
24672 VkBool32 pipelineCacheIncrementalMode;
24673} VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC;
24674
24675
24676
24677// VK_EXT_shader_uniform_buffer_unsized_array is a preprocessor guard. Do not pass it to API calls.
24678#define VK_EXT_shader_uniform_buffer_unsized_array 1
24679#define VK_EXT_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_SPEC_VERSION 1
24680#define VK_EXT_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_EXTENSION_NAME "VK_EXT_shader_uniform_buffer_unsized_array"
24681typedef struct VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {
24682 VkStructureType sType;
24683 void* pNext;
24684 VkBool32 shaderUniformBufferUnsizedArray;
24685} VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT;
24686
24687
24688
24689// VK_NV_compute_occupancy_priority is a preprocessor guard. Do not pass it to API calls.
24690#define VK_NV_compute_occupancy_priority 1
24691#define VK_NV_COMPUTE_OCCUPANCY_PRIORITY_SPEC_VERSION 1
24692#define VK_NV_COMPUTE_OCCUPANCY_PRIORITY_EXTENSION_NAME "VK_NV_compute_occupancy_priority"
24693#define VK_COMPUTE_OCCUPANCY_PRIORITY_LOW_NV 0.25f
24694#define VK_COMPUTE_OCCUPANCY_PRIORITY_NORMAL_NV 0.50f
24695#define VK_COMPUTE_OCCUPANCY_PRIORITY_HIGH_NV 0.75f
24696typedef struct VkComputeOccupancyPriorityParametersNV {
24697 VkStructureType sType;
24698 const void* pNext;
24699 float occupancyPriority;
24700 float occupancyThrottling;
24701} VkComputeOccupancyPriorityParametersNV;
24702
24703typedef struct VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV {
24704 VkStructureType sType;
24705 void* pNext;
24706 VkBool32 computeOccupancyPriority;
24707} VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV;
24708
24709typedef void (VKAPI_PTR *PFN_vkCmdSetComputeOccupancyPriorityNV)(VkCommandBuffer commandBuffer, const VkComputeOccupancyPriorityParametersNV* pParameters);
24710
24711#ifndef VK_NO_PROTOTYPES
24712#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24713VKAPI_ATTR void VKAPI_CALL vkCmdSetComputeOccupancyPriorityNV(
24714 VkCommandBuffer commandBuffer,
24715 const VkComputeOccupancyPriorityParametersNV* pParameters);
24716#endif
24717#endif
24718
24719
24720// VK_EXT_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
24721#define VK_EXT_shader_subgroup_partitioned 1
24722#define VK_EXT_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
24723#define VK_EXT_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_EXT_shader_subgroup_partitioned"
24724typedef struct VkPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {
24725 VkStructureType sType;
24726 void* pNext;
24727 VkBool32 shaderSubgroupPartitioned;
24728} VkPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT;
24729
24730
24731
24732// VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
24733#define VK_KHR_acceleration_structure 1
24734#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
24735#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
24736
24737typedef enum VkBuildAccelerationStructureModeKHR {
24738 VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
24739 VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
24740 VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
24741} VkBuildAccelerationStructureModeKHR;
24742
24743typedef enum VkAccelerationStructureCreateFlagBitsKHR {
24744 VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
24745 VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
24746 VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004,
24747 VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
24748} VkAccelerationStructureCreateFlagBitsKHR;
24749typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
24750typedef struct VkAccelerationStructureBuildRangeInfoKHR {
24751 uint32_t primitiveCount;
24752 uint32_t primitiveOffset;
24753 uint32_t firstVertex;
24754 uint32_t transformOffset;
24755} VkAccelerationStructureBuildRangeInfoKHR;
24756
24757typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
24758 VkStructureType sType;
24759 const void* pNext;
24760 VkFormat vertexFormat;
24761 VkDeviceOrHostAddressConstKHR vertexData;
24762 VkDeviceSize vertexStride;
24763 uint32_t maxVertex;
24764 VkIndexType indexType;
24765 VkDeviceOrHostAddressConstKHR indexData;
24766 VkDeviceOrHostAddressConstKHR transformData;
24767} VkAccelerationStructureGeometryTrianglesDataKHR;
24768
24769typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
24770 VkStructureType sType;
24771 const void* pNext;
24772 VkDeviceOrHostAddressConstKHR data;
24773 VkDeviceSize stride;
24774} VkAccelerationStructureGeometryAabbsDataKHR;
24775
24776typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
24777 VkStructureType sType;
24778 const void* pNext;
24779 VkBool32 arrayOfPointers;
24780 VkDeviceOrHostAddressConstKHR data;
24781} VkAccelerationStructureGeometryInstancesDataKHR;
24782
24783typedef union VkAccelerationStructureGeometryDataKHR {
24784 VkAccelerationStructureGeometryTrianglesDataKHR triangles;
24785 VkAccelerationStructureGeometryAabbsDataKHR aabbs;
24786 VkAccelerationStructureGeometryInstancesDataKHR instances;
24787} VkAccelerationStructureGeometryDataKHR;
24788
24789typedef struct VkAccelerationStructureGeometryKHR {
24790 VkStructureType sType;
24791 const void* pNext;
24792 VkGeometryTypeKHR geometryType;
24793 VkAccelerationStructureGeometryDataKHR geometry;
24794 VkGeometryFlagsKHR flags;
24795} VkAccelerationStructureGeometryKHR;
24796
24797typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
24798 VkStructureType sType;
24799 const void* pNext;
24800 VkAccelerationStructureTypeKHR type;
24801 VkBuildAccelerationStructureFlagsKHR flags;
24802 VkBuildAccelerationStructureModeKHR mode;
24803 VkAccelerationStructureKHR srcAccelerationStructure;
24804 VkAccelerationStructureKHR dstAccelerationStructure;
24805 uint32_t geometryCount;
24806 const VkAccelerationStructureGeometryKHR* pGeometries;
24807 const VkAccelerationStructureGeometryKHR* const* ppGeometries;
24808 VkDeviceOrHostAddressKHR scratchData;
24809} VkAccelerationStructureBuildGeometryInfoKHR;
24810
24811typedef struct VkAccelerationStructureCreateInfoKHR {
24812 VkStructureType sType;
24813 const void* pNext;
24814 VkAccelerationStructureCreateFlagsKHR createFlags;
24815 VkBuffer buffer;
24816 VkDeviceSize offset;
24817 VkDeviceSize size;
24818 VkAccelerationStructureTypeKHR type;
24819 VkDeviceAddress deviceAddress;
24820} VkAccelerationStructureCreateInfoKHR;
24821
24822typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
24823 VkStructureType sType;
24824 const void* pNext;
24825 uint32_t accelerationStructureCount;
24826 const VkAccelerationStructureKHR* pAccelerationStructures;
24827} VkWriteDescriptorSetAccelerationStructureKHR;
24828
24829typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
24830 VkStructureType sType;
24831 void* pNext;
24832 VkBool32 accelerationStructure;
24833 VkBool32 accelerationStructureCaptureReplay;
24834 VkBool32 accelerationStructureIndirectBuild;
24835 VkBool32 accelerationStructureHostCommands;
24836 VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind;
24837} VkPhysicalDeviceAccelerationStructureFeaturesKHR;
24838
24839typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
24840 VkStructureType sType;
24841 void* pNext;
24842 uint64_t maxGeometryCount;
24843 uint64_t maxInstanceCount;
24844 uint64_t maxPrimitiveCount;
24845 uint32_t maxPerStageDescriptorAccelerationStructures;
24846 uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
24847 uint32_t maxDescriptorSetAccelerationStructures;
24848 uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures;
24849 uint32_t minAccelerationStructureScratchOffsetAlignment;
24850} VkPhysicalDeviceAccelerationStructurePropertiesKHR;
24851
24852typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
24853 VkStructureType sType;
24854 const void* pNext;
24855 VkAccelerationStructureKHR accelerationStructure;
24856} VkAccelerationStructureDeviceAddressInfoKHR;
24857
24858typedef struct VkAccelerationStructureVersionInfoKHR {
24859 VkStructureType sType;
24860 const void* pNext;
24861 const uint8_t* pVersionData;
24862} VkAccelerationStructureVersionInfoKHR;
24863
24864typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
24865 VkStructureType sType;
24866 const void* pNext;
24867 VkAccelerationStructureKHR src;
24868 VkDeviceOrHostAddressKHR dst;
24869 VkCopyAccelerationStructureModeKHR mode;
24870} VkCopyAccelerationStructureToMemoryInfoKHR;
24871
24872typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
24873 VkStructureType sType;
24874 const void* pNext;
24875 VkDeviceOrHostAddressConstKHR src;
24876 VkAccelerationStructureKHR dst;
24877 VkCopyAccelerationStructureModeKHR mode;
24878} VkCopyMemoryToAccelerationStructureInfoKHR;
24879
24880typedef struct VkCopyAccelerationStructureInfoKHR {
24881 VkStructureType sType;
24882 const void* pNext;
24883 VkAccelerationStructureKHR src;
24884 VkAccelerationStructureKHR dst;
24885 VkCopyAccelerationStructureModeKHR mode;
24886} VkCopyAccelerationStructureInfoKHR;
24887
24888typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure);
24889typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
24890typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
24891typedef 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);
24892typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
24893typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
24894typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
24895typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
24896typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
24897typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
24898typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
24899typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
24900typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
24901typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
24902typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
24903typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
24904
24905#ifndef VK_NO_PROTOTYPES
24906#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24907VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
24908 VkDevice device,
24909 const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
24910 const VkAllocationCallbacks* pAllocator,
24911 VkAccelerationStructureKHR* pAccelerationStructure);
24912#endif
24913
24914#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24915VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
24916 VkDevice device,
24917 VkAccelerationStructureKHR accelerationStructure,
24918 const VkAllocationCallbacks* pAllocator);
24919#endif
24920
24921#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24922VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
24923 VkCommandBuffer commandBuffer,
24924 uint32_t infoCount,
24925 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
24926 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
24927#endif
24928
24929#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24930VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
24931 VkCommandBuffer commandBuffer,
24932 uint32_t infoCount,
24933 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
24934 const VkDeviceAddress* pIndirectDeviceAddresses,
24935 const uint32_t* pIndirectStrides,
24936 const uint32_t* const* ppMaxPrimitiveCounts);
24937#endif
24938
24939#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24940VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
24941 VkDevice device,
24942 VkDeferredOperationKHR deferredOperation,
24943 uint32_t infoCount,
24944 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
24945 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
24946#endif
24947
24948#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24949VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
24950 VkDevice device,
24951 VkDeferredOperationKHR deferredOperation,
24952 const VkCopyAccelerationStructureInfoKHR* pInfo);
24953#endif
24954
24955#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24956VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
24957 VkDevice device,
24958 VkDeferredOperationKHR deferredOperation,
24959 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
24960#endif
24961
24962#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24963VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
24964 VkDevice device,
24965 VkDeferredOperationKHR deferredOperation,
24966 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
24967#endif
24968
24969#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24970VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
24971 VkDevice device,
24972 uint32_t accelerationStructureCount,
24973 const VkAccelerationStructureKHR* pAccelerationStructures,
24974 VkQueryType queryType,
24975 size_t dataSize,
24976 void* pData,
24977 size_t stride);
24978#endif
24979
24980#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24981VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
24982 VkCommandBuffer commandBuffer,
24983 const VkCopyAccelerationStructureInfoKHR* pInfo);
24984#endif
24985
24986#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24987VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
24988 VkCommandBuffer commandBuffer,
24989 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
24990#endif
24991
24992#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24993VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
24994 VkCommandBuffer commandBuffer,
24995 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
24996#endif
24997
24998#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24999VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
25000 VkDevice device,
25001 const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
25002#endif
25003
25004#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25005VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
25006 VkCommandBuffer commandBuffer,
25007 uint32_t accelerationStructureCount,
25008 const VkAccelerationStructureKHR* pAccelerationStructures,
25009 VkQueryType queryType,
25010 VkQueryPool queryPool,
25011 uint32_t firstQuery);
25012#endif
25013
25014#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25015VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
25016 VkDevice device,
25017 const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
25018 VkAccelerationStructureCompatibilityKHR* pCompatibility);
25019#endif
25020
25021#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25022VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
25023 VkDevice device,
25024 VkAccelerationStructureBuildTypeKHR buildType,
25025 const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
25026 const uint32_t* pMaxPrimitiveCounts,
25027 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
25028#endif
25029#endif
25030
25031
25032// VK_KHR_ray_tracing_pipeline is a preprocessor guard. Do not pass it to API calls.
25033#define VK_KHR_ray_tracing_pipeline 1
25034#define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
25035#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
25036
25037typedef enum VkShaderGroupShaderKHR {
25038 VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0,
25039 VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1,
25040 VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2,
25041 VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
25042 VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF
25043} VkShaderGroupShaderKHR;
25044typedef struct VkRayTracingShaderGroupCreateInfoKHR {
25045 VkStructureType sType;
25046 const void* pNext;
25047 VkRayTracingShaderGroupTypeKHR type;
25048 uint32_t generalShader;
25049 uint32_t closestHitShader;
25050 uint32_t anyHitShader;
25051 uint32_t intersectionShader;
25052 const void* pShaderGroupCaptureReplayHandle;
25053} VkRayTracingShaderGroupCreateInfoKHR;
25054
25055typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
25056 VkStructureType sType;
25057 const void* pNext;
25058 uint32_t maxPipelineRayPayloadSize;
25059 uint32_t maxPipelineRayHitAttributeSize;
25060} VkRayTracingPipelineInterfaceCreateInfoKHR;
25061
25062typedef struct VkRayTracingPipelineCreateInfoKHR {
25063 VkStructureType sType;
25064 const void* pNext;
25065 VkPipelineCreateFlags flags;
25066 uint32_t stageCount;
25067 const VkPipelineShaderStageCreateInfo* pStages;
25068 uint32_t groupCount;
25069 const VkRayTracingShaderGroupCreateInfoKHR* pGroups;
25070 uint32_t maxPipelineRayRecursionDepth;
25071 const VkPipelineLibraryCreateInfoKHR* pLibraryInfo;
25072 const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface;
25073 const VkPipelineDynamicStateCreateInfo* pDynamicState;
25074 VkPipelineLayout layout;
25075 VkPipeline basePipelineHandle;
25076 int32_t basePipelineIndex;
25077} VkRayTracingPipelineCreateInfoKHR;
25078
25079typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
25080 VkStructureType sType;
25081 void* pNext;
25082 VkBool32 rayTracingPipeline;
25083 VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay;
25084 VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
25085 VkBool32 rayTracingPipelineTraceRaysIndirect;
25086 VkBool32 rayTraversalPrimitiveCulling;
25087} VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
25088
25089typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
25090 VkStructureType sType;
25091 void* pNext;
25092 uint32_t shaderGroupHandleSize;
25093 uint32_t maxRayRecursionDepth;
25094 uint32_t maxShaderGroupStride;
25095 uint32_t shaderGroupBaseAlignment;
25096 uint32_t shaderGroupHandleCaptureReplaySize;
25097 uint32_t maxRayDispatchInvocationCount;
25098 uint32_t shaderGroupHandleAlignment;
25099 uint32_t maxRayHitAttributeSize;
25100} VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
25101
25102typedef struct VkTraceRaysIndirectCommandKHR {
25103 uint32_t width;
25104 uint32_t height;
25105 uint32_t depth;
25106} VkTraceRaysIndirectCommandKHR;
25107
25108typedef 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);
25109typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
25110typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
25111typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
25112typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
25113typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
25114
25115#ifndef VK_NO_PROTOTYPES
25116#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25117VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
25118 VkCommandBuffer commandBuffer,
25119 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
25120 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
25121 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
25122 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
25123 uint32_t width,
25124 uint32_t height,
25125 uint32_t depth);
25126#endif
25127
25128#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25129VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
25130 VkDevice device,
25131 VkDeferredOperationKHR deferredOperation,
25132 VkPipelineCache pipelineCache,
25133 uint32_t createInfoCount,
25134 const VkRayTracingPipelineCreateInfoKHR* pCreateInfos,
25135 const VkAllocationCallbacks* pAllocator,
25136 VkPipeline* pPipelines);
25137#endif
25138
25139#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25140VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
25141 VkDevice device,
25142 VkPipeline pipeline,
25143 uint32_t firstGroup,
25144 uint32_t groupCount,
25145 size_t dataSize,
25146 void* pData);
25147#endif
25148
25149#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25150VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
25151 VkCommandBuffer commandBuffer,
25152 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
25153 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
25154 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
25155 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
25156 VkDeviceAddress indirectDeviceAddress);
25157#endif
25158
25159#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25160VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
25161 VkDevice device,
25162 VkPipeline pipeline,
25163 uint32_t group,
25164 VkShaderGroupShaderKHR groupShader);
25165#endif
25166
25167#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25168VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
25169 VkCommandBuffer commandBuffer,
25170 uint32_t pipelineStackSize);
25171#endif
25172#endif
25173
25174
25175// VK_KHR_ray_query is a preprocessor guard. Do not pass it to API calls.
25176#define VK_KHR_ray_query 1
25177#define VK_KHR_RAY_QUERY_SPEC_VERSION 1
25178#define VK_KHR_RAY_QUERY_EXTENSION_NAME "VK_KHR_ray_query"
25179typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
25180 VkStructureType sType;
25181 void* pNext;
25182 VkBool32 rayQuery;
25183} VkPhysicalDeviceRayQueryFeaturesKHR;
25184
25185
25186
25187// VK_EXT_mesh_shader is a preprocessor guard. Do not pass it to API calls.
25188#define VK_EXT_mesh_shader 1
25189#define VK_EXT_MESH_SHADER_SPEC_VERSION 1
25190#define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader"
25191typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
25192 VkStructureType sType;
25193 void* pNext;
25194 VkBool32 taskShader;
25195 VkBool32 meshShader;
25196 VkBool32 multiviewMeshShader;
25197 VkBool32 primitiveFragmentShadingRateMeshShader;
25198 VkBool32 meshShaderQueries;
25199} VkPhysicalDeviceMeshShaderFeaturesEXT;
25200
25201typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT {
25202 VkStructureType sType;
25203 void* pNext;
25204 uint32_t maxTaskWorkGroupTotalCount;
25205 uint32_t maxTaskWorkGroupCount[3];
25206 uint32_t maxTaskWorkGroupInvocations;
25207 uint32_t maxTaskWorkGroupSize[3];
25208 uint32_t maxTaskPayloadSize;
25209 uint32_t maxTaskSharedMemorySize;
25210 uint32_t maxTaskPayloadAndSharedMemorySize;
25211 uint32_t maxMeshWorkGroupTotalCount;
25212 uint32_t maxMeshWorkGroupCount[3];
25213 uint32_t maxMeshWorkGroupInvocations;
25214 uint32_t maxMeshWorkGroupSize[3];
25215 uint32_t maxMeshSharedMemorySize;
25216 uint32_t maxMeshPayloadAndSharedMemorySize;
25217 uint32_t maxMeshOutputMemorySize;
25218 uint32_t maxMeshPayloadAndOutputMemorySize;
25219 uint32_t maxMeshOutputComponents;
25220 uint32_t maxMeshOutputVertices;
25221 uint32_t maxMeshOutputPrimitives;
25222 uint32_t maxMeshOutputLayers;
25223 uint32_t maxMeshMultiviewViewCount;
25224 uint32_t meshOutputPerVertexGranularity;
25225 uint32_t meshOutputPerPrimitiveGranularity;
25226 uint32_t maxPreferredTaskWorkGroupInvocations;
25227 uint32_t maxPreferredMeshWorkGroupInvocations;
25228 VkBool32 prefersLocalInvocationVertexOutput;
25229 VkBool32 prefersLocalInvocationPrimitiveOutput;
25230 VkBool32 prefersCompactVertexOutput;
25231 VkBool32 prefersCompactPrimitiveOutput;
25232} VkPhysicalDeviceMeshShaderPropertiesEXT;
25233
25234typedef struct VkDrawMeshTasksIndirectCommandEXT {
25235 uint32_t groupCountX;
25236 uint32_t groupCountY;
25237 uint32_t groupCountZ;
25238} VkDrawMeshTasksIndirectCommandEXT;
25239
25240typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
25241typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
25242typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
25243
25244#ifndef VK_NO_PROTOTYPES
25245#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25246VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT(
25247 VkCommandBuffer commandBuffer,
25248 uint32_t groupCountX,
25249 uint32_t groupCountY,
25250 uint32_t groupCountZ);
25251#endif
25252
25253#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25254VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT(
25255 VkCommandBuffer commandBuffer,
25256 VkBuffer buffer,
25257 VkDeviceSize offset,
25258 uint32_t drawCount,
25259 uint32_t stride);
25260#endif
25261
25262#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25263VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT(
25264 VkCommandBuffer commandBuffer,
25265 VkBuffer buffer,
25266 VkDeviceSize offset,
25267 VkBuffer countBuffer,
25268 VkDeviceSize countBufferOffset,
25269 uint32_t maxDrawCount,
25270 uint32_t stride);
25271#endif
25272#endif
25273
25274#ifdef __cplusplus
25275}
25276#endif
25277
25278#endif
25279