1#ifndef VULKAN_CORE_H_
2#define VULKAN_CORE_H_ 1
3
4/*
5** Copyright 2015-2024 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// DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead.
66//#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0
67
68// Vulkan 1.0 version number
69#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
70
71// Version of this file
72#define VK_HEADER_VERSION 282
73
74// Complete version of this file
75#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 3, VK_HEADER_VERSION)
76
77// DEPRECATED: This define is deprecated. VK_MAKE_API_VERSION should be used instead.
78#define VK_MAKE_VERSION(major, minor, patch) \
79 ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
80
81// DEPRECATED: This define is deprecated. VK_API_VERSION_MAJOR should be used instead.
82#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22U)
83
84// DEPRECATED: This define is deprecated. VK_API_VERSION_MINOR should be used instead.
85#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
86
87// DEPRECATED: This define is deprecated. VK_API_VERSION_PATCH should be used instead.
88#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
89
90#define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29U)
91#define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU)
92#define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
93#define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
94typedef uint32_t VkBool32;
95typedef uint64_t VkDeviceAddress;
96typedef uint64_t VkDeviceSize;
97typedef uint32_t VkFlags;
98typedef uint32_t VkSampleMask;
99VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
100VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
101VK_DEFINE_HANDLE(VkInstance)
102VK_DEFINE_HANDLE(VkPhysicalDevice)
103VK_DEFINE_HANDLE(VkDevice)
104VK_DEFINE_HANDLE(VkQueue)
105VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
106VK_DEFINE_HANDLE(VkCommandBuffer)
107VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
108VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
109VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
110VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
111VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
112VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
113VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
114VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
115VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
116VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
117VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
118VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
119VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
120VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
121VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
122VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
123VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
124#define VK_ATTACHMENT_UNUSED (~0U)
125#define VK_FALSE 0U
126#define VK_LOD_CLAMP_NONE 1000.0F
127#define VK_QUEUE_FAMILY_IGNORED (~0U)
128#define VK_REMAINING_ARRAY_LAYERS (~0U)
129#define VK_REMAINING_MIP_LEVELS (~0U)
130#define VK_SUBPASS_EXTERNAL (~0U)
131#define VK_TRUE 1U
132#define VK_WHOLE_SIZE (~0ULL)
133#define VK_MAX_MEMORY_TYPES 32U
134#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U
135#define VK_UUID_SIZE 16U
136#define VK_MAX_EXTENSION_NAME_SIZE 256U
137#define VK_MAX_DESCRIPTION_SIZE 256U
138#define VK_MAX_MEMORY_HEAPS 16U
139
140typedef enum VkResult {
141 VK_SUCCESS = 0,
142 VK_NOT_READY = 1,
143 VK_TIMEOUT = 2,
144 VK_EVENT_SET = 3,
145 VK_EVENT_RESET = 4,
146 VK_INCOMPLETE = 5,
147 VK_ERROR_OUT_OF_HOST_MEMORY = -1,
148 VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
149 VK_ERROR_INITIALIZATION_FAILED = -3,
150 VK_ERROR_DEVICE_LOST = -4,
151 VK_ERROR_MEMORY_MAP_FAILED = -5,
152 VK_ERROR_LAYER_NOT_PRESENT = -6,
153 VK_ERROR_EXTENSION_NOT_PRESENT = -7,
154 VK_ERROR_FEATURE_NOT_PRESENT = -8,
155 VK_ERROR_INCOMPATIBLE_DRIVER = -9,
156 VK_ERROR_TOO_MANY_OBJECTS = -10,
157 VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
158 VK_ERROR_FRAGMENTED_POOL = -12,
159 VK_ERROR_UNKNOWN = -13,
160 VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
161 VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
162 VK_ERROR_FRAGMENTATION = -1000161000,
163 VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
164 VK_PIPELINE_COMPILE_REQUIRED = 1000297000,
165 VK_ERROR_SURFACE_LOST_KHR = -1000000000,
166 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
167 VK_SUBOPTIMAL_KHR = 1000001003,
168 VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
169 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
170 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
171 VK_ERROR_INVALID_SHADER_NV = -1000012000,
172 VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000,
173 VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001,
174 VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002,
175 VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003,
176 VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004,
177 VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005,
178 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
179 VK_ERROR_NOT_PERMITTED_KHR = -1000174001,
180 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
181 VK_THREAD_IDLE_KHR = 1000268000,
182 VK_THREAD_DONE_KHR = 1000268001,
183 VK_OPERATION_DEFERRED_KHR = 1000268002,
184 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
185 VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR = -1000299000,
186 VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000,
187 VK_INCOMPATIBLE_SHADER_BINARY_EXT = 1000482000,
188 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
189 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
190 VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
191 VK_ERROR_NOT_PERMITTED_EXT = VK_ERROR_NOT_PERMITTED_KHR,
192 VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
193 VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
194 VK_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
195 VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
196 VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT = VK_INCOMPATIBLE_SHADER_BINARY_EXT,
197 VK_RESULT_MAX_ENUM = 0x7FFFFFFF
198} VkResult;
199
200typedef enum VkStructureType {
201 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
202 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
203 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
204 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
205 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
206 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
207 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
208 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
209 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
210 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
211 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
212 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
213 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
214 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
215 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
216 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
217 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
218 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
219 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
220 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
221 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
222 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
223 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
224 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
225 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
226 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
227 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
228 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
229 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
230 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
231 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
232 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
233 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
234 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
235 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
236 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
237 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
238 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
239 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
240 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
241 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
242 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
243 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
244 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
245 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
246 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
247 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
248 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
249 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
250 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
251 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
252 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
253 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
254 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
255 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
256 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
257 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
258 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
259 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
260 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
261 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
262 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
263 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
264 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
265 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
266 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
267 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
268 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
269 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
270 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
271 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
272 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
273 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
274 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
275 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
276 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
277 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
278 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
279 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
280 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
281 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
282 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
283 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
284 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
285 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
286 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
287 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
288 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
289 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
290 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
291 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
292 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
293 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
294 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
295 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
296 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
297 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
298 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
299 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
300 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
301 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
302 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
303 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
304 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
305 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
306 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
307 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
308 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
309 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
310 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
311 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
312 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
313 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
314 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
315 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
316 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
317 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
318 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
319 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
320 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
321 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
322 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
323 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
324 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
325 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
326 VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
327 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
328 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
329 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
330 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
331 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
332 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
333 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
334 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
335 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
336 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
337 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
338 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
339 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
340 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
341 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
342 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
343 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
344 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
345 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
346 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
347 VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
348 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
349 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
350 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
351 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
352 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
353 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
354 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
355 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
356 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
357 VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
358 VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
359 VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
360 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
361 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
362 VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
363 VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
364 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
365 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53,
366 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54,
367 VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000,
368 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000,
369 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000,
370 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000,
371 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000,
372 VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001,
373 VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002,
374 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000,
375 VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000,
376 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001,
377 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002,
378 VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003,
379 VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004,
380 VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005,
381 VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006,
382 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007,
383 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000,
384 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000,
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_BLIT_IMAGE_INFO_2 = 1000337004,
390 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005,
391 VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006,
392 VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007,
393 VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008,
394 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009,
395 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010,
396 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000,
397 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001,
398 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002,
399 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000,
400 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001,
401 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002,
402 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003,
403 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000,
404 VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000,
405 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001,
406 VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002,
407 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003,
408 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004,
409 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000,
410 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001,
411 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001,
412 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000,
413 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000,
414 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001,
415 VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002,
416 VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003,
417 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
418 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
419 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
420 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
421 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
422 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
423 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
424 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
425 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
426 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
427 VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
428 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
429 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
430 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
431 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
432 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
433 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
434 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
435 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
436 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
437 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
438 VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000,
439 VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001,
440 VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002,
441 VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003,
442 VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004,
443 VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005,
444 VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006,
445 VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007,
446 VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008,
447 VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009,
448 VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010,
449 VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011,
450 VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012,
451 VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013,
452 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014,
453 VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015,
454 VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016,
455 VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000,
456 VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001,
457 VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002,
458 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
459 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
460 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
461 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
462 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
463 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
464 VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000,
465 VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001,
466 VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002,
467 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
468 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
469 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR = 1000038000,
470 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000038001,
471 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000038002,
472 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR = 1000038003,
473 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR = 1000038004,
474 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR = 1000038005,
475 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR = 1000038006,
476 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR = 1000038007,
477 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR = 1000038008,
478 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR = 1000038009,
479 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR = 1000038010,
480 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR = 1000038011,
481 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR = 1000038012,
482 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000038013,
483 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR = 1000039000,
484 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000039001,
485 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000039002,
486 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR = 1000039003,
487 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR = 1000039004,
488 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR = 1000039005,
489 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR = 1000039006,
490 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR = 1000039007,
491 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR = 1000039009,
492 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR = 1000039010,
493 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR = 1000039011,
494 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR = 1000039012,
495 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR = 1000039013,
496 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000039014,
497 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000,
498 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001,
499 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003,
500 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004,
501 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005,
502 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006,
503 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
504 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
505 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
506 VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
507 VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
508 VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
509 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
510 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
511 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
512 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
513 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
514 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
515 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
516 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
517 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
518 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
519 VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = 1000068000,
520 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = 1000068001,
521 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = 1000068002,
522 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
523 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
524 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
525 VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
526 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
527 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
528 VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
529 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
530 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
531 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
532 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
533 VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
534 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
535 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
536 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
537 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
538 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
539 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
540 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
541 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
542 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
543 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
544 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
545 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
546 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
547 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
548 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
549 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
550 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
551 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
552 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
553 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
554 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
555 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
556 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
557 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG = 1000110000,
558 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
559 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
560 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
561 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
562 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
563 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
564 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
565 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
566 VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
567 VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
568 VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
569 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
570 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
571 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
572 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
573 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
574 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
575 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
576 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
577 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
578 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
579 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
580 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
581 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
582 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
583 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
584 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
585 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
586 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
587 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
588 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
589 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
590 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
591 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
592 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006,
593#ifdef VK_ENABLE_BETA_EXTENSIONS
594 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = 1000134000,
595#endif
596#ifdef VK_ENABLE_BETA_EXTENSIONS
597 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = 1000134001,
598#endif
599#ifdef VK_ENABLE_BETA_EXTENSIONS
600 VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = 1000134002,
601#endif
602#ifdef VK_ENABLE_BETA_EXTENSIONS
603 VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = 1000134003,
604#endif
605#ifdef VK_ENABLE_BETA_EXTENSIONS
606 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = 1000134004,
607#endif
608 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
609 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
610 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
611 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
612 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
613 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
614 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
615 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
616 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
617 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007,
618 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
619 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
620 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
621 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
622 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
623 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
624 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009,
625 VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
626 VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
627 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
628 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013,
629 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014,
630 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
631 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020,
632 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
633 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
634 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
635 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
636 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
637 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013,
638 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
639 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
640 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
641 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
642 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
643 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
644 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
645 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
646 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006,
647 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
648 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
649#ifdef VK_ENABLE_BETA_EXTENSIONS
650 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
651#endif
652#ifdef VK_ENABLE_BETA_EXTENSIONS
653 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
654#endif
655 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
656 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
657 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
658 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
659 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
660 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
661 VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
662 VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
663 VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
664 VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
665 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
666 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
667 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
668 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
669 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
670 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
671 VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
672 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
673 VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
674 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
675 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
676 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
677 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
678 VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
679 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
680 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000,
681 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001,
682 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002,
683 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003,
684 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004,
685 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005,
686 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000,
687 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000,
688 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001,
689 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
690 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
691 VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
692 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000,
693 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
694 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
695 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
696 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
697 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
698 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
699 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
700 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
701 VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
702 VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
703 VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
704 VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
705 VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
706 VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
707 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
708 VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
709 VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
710 VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
711 VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
712 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
713 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
714 VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
715 VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
716 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
717 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
718 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
719 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
720 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
721 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
722 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = 1000232000,
723 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR = 1000232001,
724 VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR = 1000232002,
725 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
726 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = 1000235000,
727 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
728 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
729 VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
730 VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
731 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
732 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
733 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
734 VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
735 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
736 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
737 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
738 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
739 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
740 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
741 VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
742 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
743 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
744 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000,
745 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001,
746 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002,
747 VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
748 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
749 VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
750 VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
751 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
752 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
753 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
754 VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
755 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
756 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
757 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
758 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
759 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = 1000270000,
760 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = 1000270001,
761 VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = 1000270002,
762 VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = 1000270003,
763 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = 1000270004,
764 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = 1000270005,
765 VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = 1000270006,
766 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = 1000270007,
767 VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = 1000270008,
768 VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = 1000270009,
769 VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = 1000271000,
770 VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = 1000271001,
771 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT = 1000272000,
772 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT = 1000272001,
773 VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT = 1000272002,
774 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
775 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = 1000274000,
776 VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = 1000274001,
777 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = 1000274002,
778 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = 1000275000,
779 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = 1000275001,
780 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = 1000275002,
781 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003,
782 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004,
783 VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005,
784 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
785 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
786 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
787 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
788 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
789 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
790 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
791 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
792 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
793 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
794 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
795 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
796 VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
797 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = 1000283000,
798 VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = 1000283001,
799 VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = 1000283002,
800 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
801 VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
802 VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
803 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000,
804 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001,
805 VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
806 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
807 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
808 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
809 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000,
810 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001,
811 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002,
812 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
813 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
814 VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
815 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
816 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
817 VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
818 VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004,
819 VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR = 1000299005,
820 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299006,
821 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR = 1000299007,
822 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299008,
823 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR = 1000299009,
824 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000299010,
825 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
826 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
827 VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = 1000307000,
828 VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = 1000307001,
829 VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = 1000307002,
830 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = 1000307003,
831 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = 1000307004,
832 VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = 1000310000,
833 VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000,
834 VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001,
835 VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002,
836 VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003,
837 VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004,
838 VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005,
839 VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006,
840 VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007,
841 VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008,
842 VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009,
843 VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010,
844 VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011,
845 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008,
846 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009,
847 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000,
848 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001,
849 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002,
850 VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003,
851 VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004,
852 VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005,
853 VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006,
854 VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007,
855 VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008,
856 VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010,
857 VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011,
858 VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012,
859 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009,
860 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000,
861 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001,
862 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002,
863 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000,
864 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000,
865 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000,
866 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000,
867 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000,
868 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001,
869 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002,
870 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
871 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
872 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002,
873 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000,
874 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001,
875 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000,
876 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
877 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
878 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000,
879 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000,
880 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000,
881 VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
882 VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004,
883 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000,
884 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
885 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000,
886 VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001,
887 VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002,
888 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000,
889 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
890 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000,
891 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
892 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
893 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
894 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000,
895 VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001,
896 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000,
897 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001,
898 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
899 VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
900 VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
901 VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
902 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
903 VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
904 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000,
905 VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001,
906 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002,
907 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003,
908 VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004,
909 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005,
910 VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006,
911 VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007,
912 VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008,
913 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009,
914 VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
915 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
916 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
917 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
918 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
919 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
920 VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000,
921 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
922 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000,
923 VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001,
924 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000,
925 VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001,
926 VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002,
927 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
928 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
929 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
930 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
931 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000,
932 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000,
933 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000,
934 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001,
935 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
936 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
937 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000,
938 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = 1000395000,
939 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = 1000395001,
940 VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000,
941 VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001,
942 VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002,
943 VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003,
944 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004,
945 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005,
946 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006,
947 VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007,
948 VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008,
949 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009,
950#ifdef VK_ENABLE_BETA_EXTENSIONS
951 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = 1000397000,
952#endif
953#ifdef VK_ENABLE_BETA_EXTENSIONS
954 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = 1000397001,
955#endif
956#ifdef VK_ENABLE_BETA_EXTENSIONS
957 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = 1000397002,
958#endif
959 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000,
960 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001,
961 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = 1000404002,
962 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
963 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
964 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
965 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000,
966 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = 1000416000,
967 VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = 1000417000,
968 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = 1000417001,
969 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = 1000417002,
970 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000,
971 VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001,
972 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
973 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
974 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
975 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000,
976 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
977 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000,
978 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001,
979 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = 1000424002,
980 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = 1000424003,
981 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = 1000424004,
982 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000,
983 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001,
984 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002,
985 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000,
986 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001,
987 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000,
988 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001,
989 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000,
990 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001,
991 VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002,
992 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
993 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = 1000434000,
994 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
995 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000,
996 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001,
997 VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002,
998 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000,
999 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001,
1000 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000,
1001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000,
1002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001,
1003 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
1004 VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001,
1005 VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002,
1006 VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003,
1007 VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000,
1008 VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001,
1009 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000,
1010 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001,
1011 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002,
1012 VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003,
1013 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000,
1014 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000,
1015 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001,
1016 VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002,
1017 VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003,
1018 VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004,
1019 VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005,
1020 VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010,
1021 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000,
1022 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000,
1023 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000,
1024 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001,
1025 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002,
1026 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = 1000470000,
1027 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = 1000470001,
1028 VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = 1000470003,
1029 VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = 1000470004,
1030 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = 1000338002,
1031 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = 1000338003,
1032 VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = 1000470005,
1033 VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = 1000470006,
1034 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = 1000481000,
1035 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = 1000482000,
1036 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = 1000482001,
1037 VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002,
1038 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000,
1039 VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001,
1040 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000,
1041 VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001,
1042 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000,
1043 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000,
1044 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001,
1045 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000,
1046 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
1047 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
1048 VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
1049 VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = 1000496000,
1050 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
1051 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
1052 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000,
1053 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000,
1054 VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000,
1055 VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001,
1056 VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002,
1057 VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003,
1058 VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004,
1059 VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005,
1060 VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006,
1061 VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007,
1062 VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008,
1063 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000,
1064 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001,
1065 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002,
1066 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000,
1067 VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
1068 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR = 1000512000,
1069 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR = 1000512001,
1070 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR = 1000512003,
1071 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000512004,
1072 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR = 1000512005,
1073 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR = 1000515000,
1074 VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR = 1000515001,
1075 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = 1000516000,
1076 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000,
1077 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001,
1078 VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002,
1079 VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000,
1080 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001,
1081 VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002,
1082 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000,
1083 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001,
1084 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000,
1085 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000,
1086 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = 1000525000,
1087 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = 1000190001,
1088 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = 1000190002,
1089 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR = 1000528000,
1090 VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000,
1091 VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001,
1092 VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002,
1093 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = 1000529003,
1094 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004,
1095 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000,
1096 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR = 1000265000,
1097 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR = 1000259000,
1098 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR = 1000259001,
1099 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR = 1000259002,
1100 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = 1000184000,
1101 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR = 1000544000,
1102 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = 1000545000,
1103 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = 1000545001,
1104 VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = 1000545002,
1105 VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = 1000545003,
1106 VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = 1000545004,
1107 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = 1000545005,
1108 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = 1000545006,
1109 VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = 1000545007,
1110 VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = 1000545008,
1111 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000,
1112 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV = 1000555000,
1113 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
1114 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
1115 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1116 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
1117 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
1118 VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO,
1119 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
1120 VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
1121 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
1122 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
1123 VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
1124 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
1125 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
1126 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
1127 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
1128 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
1129 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
1130 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
1131 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
1132 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
1133 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
1134 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
1135 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
1136 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
1137 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
1138 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
1139 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
1140 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
1141 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
1142 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
1143 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
1144 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
1145 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
1146 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
1147 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
1148 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
1149 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
1150 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
1151 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
1152 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
1153 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
1154 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
1155 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
1156 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
1157 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1158 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1159 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
1160 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
1161 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
1162 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
1163 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
1164 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
1165 VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
1166 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
1167 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
1168 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
1169 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
1170 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
1171 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
1172 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
1173 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
1174 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
1175 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
1176 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
1177 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
1178 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
1179 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
1180 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1181 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
1182 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
1183 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
1184 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
1185 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
1186 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
1187 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
1188 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
1189 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
1190 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
1191 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
1192 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
1193 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
1194 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
1195 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
1196 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
1197 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
1198 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
1199 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
1200 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
1201 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
1202 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
1203 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
1204 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
1205 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
1206 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
1207 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
1208 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
1209 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
1210 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
1211 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR,
1212 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
1213 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
1214 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
1215 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR,
1216 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR,
1217 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR,
1218 VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
1219 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
1220 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
1221 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
1222 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
1223 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
1224 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
1225 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
1226 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
1227 VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
1228 VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
1229 VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
1230 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
1231 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
1232 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
1233 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
1234 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
1235 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1236 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
1237 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
1238 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
1239 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
1240 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
1241 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1242 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
1243 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
1244 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
1245 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
1246 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1247 VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
1248 VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
1249 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
1250 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR,
1251 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR,
1252 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR,
1253 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
1254 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR,
1255 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
1256 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
1257 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
1258 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
1259 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
1260 VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
1261 VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
1262 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
1263 VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
1264 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
1265 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
1266 VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
1267 VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
1268 VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
1269 VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
1270 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
1271 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
1272 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
1273 VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
1274 VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
1275 VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
1276 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
1277 VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
1278 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
1279 VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
1280 VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
1281 VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
1282 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
1283 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
1284 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR,
1285 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR,
1286 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
1287 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
1288 VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
1289 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
1290 VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
1291 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR,
1292 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR,
1293 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
1294 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
1295 VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
1296 VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
1297 VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1298 VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
1299} VkStructureType;
1300
1301typedef enum VkPipelineCacheHeaderVersion {
1302 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1303 VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
1304} VkPipelineCacheHeaderVersion;
1305
1306typedef enum VkImageLayout {
1307 VK_IMAGE_LAYOUT_UNDEFINED = 0,
1308 VK_IMAGE_LAYOUT_GENERAL = 1,
1309 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
1310 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
1311 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
1312 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
1313 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
1314 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
1315 VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
1316 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
1317 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
1318 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
1319 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
1320 VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
1321 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
1322 VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
1323 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
1324 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
1325 VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
1326 VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
1327 VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
1328 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
1329 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
1330 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
1331 VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR = 1000232000,
1332 VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
1333 VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
1334 VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
1335 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000,
1336 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
1337 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
1338 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
1339 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
1340 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
1341 VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
1342 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
1343 VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
1344 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
1345 VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
1346} VkImageLayout;
1347
1348typedef enum VkObjectType {
1349 VK_OBJECT_TYPE_UNKNOWN = 0,
1350 VK_OBJECT_TYPE_INSTANCE = 1,
1351 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1352 VK_OBJECT_TYPE_DEVICE = 3,
1353 VK_OBJECT_TYPE_QUEUE = 4,
1354 VK_OBJECT_TYPE_SEMAPHORE = 5,
1355 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1356 VK_OBJECT_TYPE_FENCE = 7,
1357 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1358 VK_OBJECT_TYPE_BUFFER = 9,
1359 VK_OBJECT_TYPE_IMAGE = 10,
1360 VK_OBJECT_TYPE_EVENT = 11,
1361 VK_OBJECT_TYPE_QUERY_POOL = 12,
1362 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1363 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1364 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1365 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1366 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1367 VK_OBJECT_TYPE_RENDER_PASS = 18,
1368 VK_OBJECT_TYPE_PIPELINE = 19,
1369 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1370 VK_OBJECT_TYPE_SAMPLER = 21,
1371 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1372 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1373 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1374 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1375 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1376 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1377 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
1378 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1379 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1380 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1381 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1382 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1383 VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
1384 VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
1385 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
1386 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
1387 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1388 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
1389 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
1390 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1391 VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
1392 VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
1393 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
1394 VK_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000,
1395 VK_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001,
1396 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000,
1397 VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000,
1398 VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000,
1399 VK_OBJECT_TYPE_SHADER_EXT = 1000482000,
1400 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1401 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1402 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
1403 VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
1404} VkObjectType;
1405
1406typedef enum VkVendorId {
1407 VK_VENDOR_ID_VIV = 0x10001,
1408 VK_VENDOR_ID_VSI = 0x10002,
1409 VK_VENDOR_ID_KAZAN = 0x10003,
1410 VK_VENDOR_ID_CODEPLAY = 0x10004,
1411 VK_VENDOR_ID_MESA = 0x10005,
1412 VK_VENDOR_ID_POCL = 0x10006,
1413 VK_VENDOR_ID_MOBILEYE = 0x10007,
1414 VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
1415} VkVendorId;
1416
1417typedef enum VkSystemAllocationScope {
1418 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
1419 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
1420 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
1421 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
1422 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
1423 VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
1424} VkSystemAllocationScope;
1425
1426typedef enum VkInternalAllocationType {
1427 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
1428 VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
1429} VkInternalAllocationType;
1430
1431typedef enum VkFormat {
1432 VK_FORMAT_UNDEFINED = 0,
1433 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1434 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1435 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1436 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1437 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1438 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1439 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1440 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1441 VK_FORMAT_R8_UNORM = 9,
1442 VK_FORMAT_R8_SNORM = 10,
1443 VK_FORMAT_R8_USCALED = 11,
1444 VK_FORMAT_R8_SSCALED = 12,
1445 VK_FORMAT_R8_UINT = 13,
1446 VK_FORMAT_R8_SINT = 14,
1447 VK_FORMAT_R8_SRGB = 15,
1448 VK_FORMAT_R8G8_UNORM = 16,
1449 VK_FORMAT_R8G8_SNORM = 17,
1450 VK_FORMAT_R8G8_USCALED = 18,
1451 VK_FORMAT_R8G8_SSCALED = 19,
1452 VK_FORMAT_R8G8_UINT = 20,
1453 VK_FORMAT_R8G8_SINT = 21,
1454 VK_FORMAT_R8G8_SRGB = 22,
1455 VK_FORMAT_R8G8B8_UNORM = 23,
1456 VK_FORMAT_R8G8B8_SNORM = 24,
1457 VK_FORMAT_R8G8B8_USCALED = 25,
1458 VK_FORMAT_R8G8B8_SSCALED = 26,
1459 VK_FORMAT_R8G8B8_UINT = 27,
1460 VK_FORMAT_R8G8B8_SINT = 28,
1461 VK_FORMAT_R8G8B8_SRGB = 29,
1462 VK_FORMAT_B8G8R8_UNORM = 30,
1463 VK_FORMAT_B8G8R8_SNORM = 31,
1464 VK_FORMAT_B8G8R8_USCALED = 32,
1465 VK_FORMAT_B8G8R8_SSCALED = 33,
1466 VK_FORMAT_B8G8R8_UINT = 34,
1467 VK_FORMAT_B8G8R8_SINT = 35,
1468 VK_FORMAT_B8G8R8_SRGB = 36,
1469 VK_FORMAT_R8G8B8A8_UNORM = 37,
1470 VK_FORMAT_R8G8B8A8_SNORM = 38,
1471 VK_FORMAT_R8G8B8A8_USCALED = 39,
1472 VK_FORMAT_R8G8B8A8_SSCALED = 40,
1473 VK_FORMAT_R8G8B8A8_UINT = 41,
1474 VK_FORMAT_R8G8B8A8_SINT = 42,
1475 VK_FORMAT_R8G8B8A8_SRGB = 43,
1476 VK_FORMAT_B8G8R8A8_UNORM = 44,
1477 VK_FORMAT_B8G8R8A8_SNORM = 45,
1478 VK_FORMAT_B8G8R8A8_USCALED = 46,
1479 VK_FORMAT_B8G8R8A8_SSCALED = 47,
1480 VK_FORMAT_B8G8R8A8_UINT = 48,
1481 VK_FORMAT_B8G8R8A8_SINT = 49,
1482 VK_FORMAT_B8G8R8A8_SRGB = 50,
1483 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1484 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1485 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1486 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1487 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1488 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1489 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1490 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1491 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1492 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1493 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1494 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1495 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1496 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1497 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1498 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1499 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1500 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1501 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1502 VK_FORMAT_R16_UNORM = 70,
1503 VK_FORMAT_R16_SNORM = 71,
1504 VK_FORMAT_R16_USCALED = 72,
1505 VK_FORMAT_R16_SSCALED = 73,
1506 VK_FORMAT_R16_UINT = 74,
1507 VK_FORMAT_R16_SINT = 75,
1508 VK_FORMAT_R16_SFLOAT = 76,
1509 VK_FORMAT_R16G16_UNORM = 77,
1510 VK_FORMAT_R16G16_SNORM = 78,
1511 VK_FORMAT_R16G16_USCALED = 79,
1512 VK_FORMAT_R16G16_SSCALED = 80,
1513 VK_FORMAT_R16G16_UINT = 81,
1514 VK_FORMAT_R16G16_SINT = 82,
1515 VK_FORMAT_R16G16_SFLOAT = 83,
1516 VK_FORMAT_R16G16B16_UNORM = 84,
1517 VK_FORMAT_R16G16B16_SNORM = 85,
1518 VK_FORMAT_R16G16B16_USCALED = 86,
1519 VK_FORMAT_R16G16B16_SSCALED = 87,
1520 VK_FORMAT_R16G16B16_UINT = 88,
1521 VK_FORMAT_R16G16B16_SINT = 89,
1522 VK_FORMAT_R16G16B16_SFLOAT = 90,
1523 VK_FORMAT_R16G16B16A16_UNORM = 91,
1524 VK_FORMAT_R16G16B16A16_SNORM = 92,
1525 VK_FORMAT_R16G16B16A16_USCALED = 93,
1526 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1527 VK_FORMAT_R16G16B16A16_UINT = 95,
1528 VK_FORMAT_R16G16B16A16_SINT = 96,
1529 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1530 VK_FORMAT_R32_UINT = 98,
1531 VK_FORMAT_R32_SINT = 99,
1532 VK_FORMAT_R32_SFLOAT = 100,
1533 VK_FORMAT_R32G32_UINT = 101,
1534 VK_FORMAT_R32G32_SINT = 102,
1535 VK_FORMAT_R32G32_SFLOAT = 103,
1536 VK_FORMAT_R32G32B32_UINT = 104,
1537 VK_FORMAT_R32G32B32_SINT = 105,
1538 VK_FORMAT_R32G32B32_SFLOAT = 106,
1539 VK_FORMAT_R32G32B32A32_UINT = 107,
1540 VK_FORMAT_R32G32B32A32_SINT = 108,
1541 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1542 VK_FORMAT_R64_UINT = 110,
1543 VK_FORMAT_R64_SINT = 111,
1544 VK_FORMAT_R64_SFLOAT = 112,
1545 VK_FORMAT_R64G64_UINT = 113,
1546 VK_FORMAT_R64G64_SINT = 114,
1547 VK_FORMAT_R64G64_SFLOAT = 115,
1548 VK_FORMAT_R64G64B64_UINT = 116,
1549 VK_FORMAT_R64G64B64_SINT = 117,
1550 VK_FORMAT_R64G64B64_SFLOAT = 118,
1551 VK_FORMAT_R64G64B64A64_UINT = 119,
1552 VK_FORMAT_R64G64B64A64_SINT = 120,
1553 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1554 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1555 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1556 VK_FORMAT_D16_UNORM = 124,
1557 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1558 VK_FORMAT_D32_SFLOAT = 126,
1559 VK_FORMAT_S8_UINT = 127,
1560 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1561 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1562 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1563 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1564 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1565 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1566 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1567 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1568 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1569 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1570 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1571 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1572 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1573 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1574 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1575 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1576 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1577 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1578 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1579 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1580 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1581 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1582 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1583 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1584 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1585 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1586 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1587 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1588 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1589 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1590 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1591 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1592 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1593 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1594 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1595 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1596 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1597 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1598 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1599 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1600 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1601 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1602 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1603 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1604 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1605 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1606 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1607 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1608 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1609 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1610 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1611 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1612 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1613 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1614 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1615 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1616 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
1617 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1618 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1619 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1620 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1621 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1622 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1623 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1624 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1625 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1626 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1627 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1628 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1629 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1630 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1631 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1632 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1633 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1634 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1635 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1636 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1637 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1638 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1639 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1640 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1641 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1642 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1643 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1644 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1645 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1646 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1647 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1648 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1649 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1650 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1651 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
1652 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
1653 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
1654 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
1655 VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
1656 VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
1657 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
1658 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
1659 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
1660 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
1661 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
1662 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
1663 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
1664 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
1665 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
1666 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
1667 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
1668 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
1669 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
1670 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
1671 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1672 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1673 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1674 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1675 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1676 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1677 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1678 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
1679 VK_FORMAT_R16G16_SFIXED5_NV = 1000464000,
1680 VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = 1000470000,
1681 VK_FORMAT_A8_UNORM_KHR = 1000470001,
1682 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
1683 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
1684 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
1685 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
1686 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
1687 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
1688 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
1689 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
1690 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
1691 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
1692 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
1693 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
1694 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
1695 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
1696 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
1697 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
1698 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
1699 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
1700 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
1701 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
1702 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
1703 VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
1704 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
1705 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
1706 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
1707 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
1708 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
1709 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
1710 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
1711 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
1712 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
1713 VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
1714 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
1715 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
1716 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
1717 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
1718 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
1719 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
1720 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
1721 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
1722 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
1723 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
1724 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
1725 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
1726 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
1727 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
1728 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
1729 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
1730 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
1731 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
1732 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
1733 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
1734 VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
1735 VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
1736 VK_FORMAT_R16G16_S10_5_NV = VK_FORMAT_R16G16_SFIXED5_NV,
1737 VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
1738} VkFormat;
1739
1740typedef enum VkImageTiling {
1741 VK_IMAGE_TILING_OPTIMAL = 0,
1742 VK_IMAGE_TILING_LINEAR = 1,
1743 VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
1744 VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
1745} VkImageTiling;
1746
1747typedef enum VkImageType {
1748 VK_IMAGE_TYPE_1D = 0,
1749 VK_IMAGE_TYPE_2D = 1,
1750 VK_IMAGE_TYPE_3D = 2,
1751 VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
1752} VkImageType;
1753
1754typedef enum VkPhysicalDeviceType {
1755 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
1756 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
1757 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
1758 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
1759 VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
1760 VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
1761} VkPhysicalDeviceType;
1762
1763typedef enum VkQueryType {
1764 VK_QUERY_TYPE_OCCLUSION = 0,
1765 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
1766 VK_QUERY_TYPE_TIMESTAMP = 2,
1767 VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
1768 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
1769 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
1770 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
1771 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
1772 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
1773 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
1774 VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000,
1775 VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000,
1776 VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000,
1777 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000,
1778 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001,
1779 VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000,
1780 VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001,
1781 VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
1782} VkQueryType;
1783
1784typedef enum VkSharingMode {
1785 VK_SHARING_MODE_EXCLUSIVE = 0,
1786 VK_SHARING_MODE_CONCURRENT = 1,
1787 VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
1788} VkSharingMode;
1789
1790typedef enum VkComponentSwizzle {
1791 VK_COMPONENT_SWIZZLE_IDENTITY = 0,
1792 VK_COMPONENT_SWIZZLE_ZERO = 1,
1793 VK_COMPONENT_SWIZZLE_ONE = 2,
1794 VK_COMPONENT_SWIZZLE_R = 3,
1795 VK_COMPONENT_SWIZZLE_G = 4,
1796 VK_COMPONENT_SWIZZLE_B = 5,
1797 VK_COMPONENT_SWIZZLE_A = 6,
1798 VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
1799} VkComponentSwizzle;
1800
1801typedef enum VkImageViewType {
1802 VK_IMAGE_VIEW_TYPE_1D = 0,
1803 VK_IMAGE_VIEW_TYPE_2D = 1,
1804 VK_IMAGE_VIEW_TYPE_3D = 2,
1805 VK_IMAGE_VIEW_TYPE_CUBE = 3,
1806 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
1807 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
1808 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
1809 VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
1810} VkImageViewType;
1811
1812typedef enum VkBlendFactor {
1813 VK_BLEND_FACTOR_ZERO = 0,
1814 VK_BLEND_FACTOR_ONE = 1,
1815 VK_BLEND_FACTOR_SRC_COLOR = 2,
1816 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
1817 VK_BLEND_FACTOR_DST_COLOR = 4,
1818 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
1819 VK_BLEND_FACTOR_SRC_ALPHA = 6,
1820 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
1821 VK_BLEND_FACTOR_DST_ALPHA = 8,
1822 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
1823 VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
1824 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
1825 VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
1826 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
1827 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
1828 VK_BLEND_FACTOR_SRC1_COLOR = 15,
1829 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
1830 VK_BLEND_FACTOR_SRC1_ALPHA = 17,
1831 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
1832 VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
1833} VkBlendFactor;
1834
1835typedef enum VkBlendOp {
1836 VK_BLEND_OP_ADD = 0,
1837 VK_BLEND_OP_SUBTRACT = 1,
1838 VK_BLEND_OP_REVERSE_SUBTRACT = 2,
1839 VK_BLEND_OP_MIN = 3,
1840 VK_BLEND_OP_MAX = 4,
1841 VK_BLEND_OP_ZERO_EXT = 1000148000,
1842 VK_BLEND_OP_SRC_EXT = 1000148001,
1843 VK_BLEND_OP_DST_EXT = 1000148002,
1844 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
1845 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
1846 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
1847 VK_BLEND_OP_DST_IN_EXT = 1000148006,
1848 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
1849 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
1850 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
1851 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
1852 VK_BLEND_OP_XOR_EXT = 1000148011,
1853 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
1854 VK_BLEND_OP_SCREEN_EXT = 1000148013,
1855 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
1856 VK_BLEND_OP_DARKEN_EXT = 1000148015,
1857 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
1858 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
1859 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
1860 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
1861 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
1862 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
1863 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
1864 VK_BLEND_OP_INVERT_EXT = 1000148023,
1865 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
1866 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
1867 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
1868 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
1869 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
1870 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
1871 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
1872 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
1873 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
1874 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
1875 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
1876 VK_BLEND_OP_PLUS_EXT = 1000148035,
1877 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
1878 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
1879 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
1880 VK_BLEND_OP_MINUS_EXT = 1000148039,
1881 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
1882 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
1883 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
1884 VK_BLEND_OP_RED_EXT = 1000148043,
1885 VK_BLEND_OP_GREEN_EXT = 1000148044,
1886 VK_BLEND_OP_BLUE_EXT = 1000148045,
1887 VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
1888} VkBlendOp;
1889
1890typedef enum VkCompareOp {
1891 VK_COMPARE_OP_NEVER = 0,
1892 VK_COMPARE_OP_LESS = 1,
1893 VK_COMPARE_OP_EQUAL = 2,
1894 VK_COMPARE_OP_LESS_OR_EQUAL = 3,
1895 VK_COMPARE_OP_GREATER = 4,
1896 VK_COMPARE_OP_NOT_EQUAL = 5,
1897 VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
1898 VK_COMPARE_OP_ALWAYS = 7,
1899 VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
1900} VkCompareOp;
1901
1902typedef enum VkDynamicState {
1903 VK_DYNAMIC_STATE_VIEWPORT = 0,
1904 VK_DYNAMIC_STATE_SCISSOR = 1,
1905 VK_DYNAMIC_STATE_LINE_WIDTH = 2,
1906 VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
1907 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
1908 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
1909 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
1910 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
1911 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
1912 VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
1913 VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
1914 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
1915 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
1916 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
1917 VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
1918 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
1919 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
1920 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
1921 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
1922 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
1923 VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
1924 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
1925 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
1926 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
1927 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1928 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
1929 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001,
1930 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002,
1931 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
1932 VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
1933 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
1934 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
1935 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000,
1936 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
1937 VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
1938 VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000,
1939 VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000,
1940 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003,
1941 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000,
1942 VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003,
1943 VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004,
1944 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005,
1945 VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006,
1946 VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007,
1947 VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008,
1948 VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009,
1949 VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010,
1950 VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011,
1951 VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012,
1952 VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002,
1953 VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013,
1954 VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014,
1955 VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015,
1956 VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016,
1957 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017,
1958 VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018,
1959 VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019,
1960 VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020,
1961 VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021,
1962 VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022,
1963 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023,
1964 VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024,
1965 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025,
1966 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026,
1967 VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027,
1968 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028,
1969 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029,
1970 VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030,
1971 VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031,
1972 VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
1973 VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000,
1974 VK_DYNAMIC_STATE_LINE_STIPPLE_KHR = 1000259000,
1975 VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = VK_DYNAMIC_STATE_LINE_STIPPLE_KHR,
1976 VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
1977 VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
1978 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
1979 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
1980 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
1981 VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
1982 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
1983 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
1984 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
1985 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
1986 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
1987 VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP,
1988 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
1989 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
1990 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
1991 VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
1992} VkDynamicState;
1993
1994typedef enum VkFrontFace {
1995 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
1996 VK_FRONT_FACE_CLOCKWISE = 1,
1997 VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
1998} VkFrontFace;
1999
2000typedef enum VkVertexInputRate {
2001 VK_VERTEX_INPUT_RATE_VERTEX = 0,
2002 VK_VERTEX_INPUT_RATE_INSTANCE = 1,
2003 VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
2004} VkVertexInputRate;
2005
2006typedef enum VkPrimitiveTopology {
2007 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
2008 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
2009 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
2010 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
2011 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
2012 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
2013 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
2014 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
2015 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
2016 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
2017 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
2018 VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
2019} VkPrimitiveTopology;
2020
2021typedef enum VkPolygonMode {
2022 VK_POLYGON_MODE_FILL = 0,
2023 VK_POLYGON_MODE_LINE = 1,
2024 VK_POLYGON_MODE_POINT = 2,
2025 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
2026 VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
2027} VkPolygonMode;
2028
2029typedef enum VkStencilOp {
2030 VK_STENCIL_OP_KEEP = 0,
2031 VK_STENCIL_OP_ZERO = 1,
2032 VK_STENCIL_OP_REPLACE = 2,
2033 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
2034 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
2035 VK_STENCIL_OP_INVERT = 5,
2036 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
2037 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
2038 VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
2039} VkStencilOp;
2040
2041typedef enum VkLogicOp {
2042 VK_LOGIC_OP_CLEAR = 0,
2043 VK_LOGIC_OP_AND = 1,
2044 VK_LOGIC_OP_AND_REVERSE = 2,
2045 VK_LOGIC_OP_COPY = 3,
2046 VK_LOGIC_OP_AND_INVERTED = 4,
2047 VK_LOGIC_OP_NO_OP = 5,
2048 VK_LOGIC_OP_XOR = 6,
2049 VK_LOGIC_OP_OR = 7,
2050 VK_LOGIC_OP_NOR = 8,
2051 VK_LOGIC_OP_EQUIVALENT = 9,
2052 VK_LOGIC_OP_INVERT = 10,
2053 VK_LOGIC_OP_OR_REVERSE = 11,
2054 VK_LOGIC_OP_COPY_INVERTED = 12,
2055 VK_LOGIC_OP_OR_INVERTED = 13,
2056 VK_LOGIC_OP_NAND = 14,
2057 VK_LOGIC_OP_SET = 15,
2058 VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
2059} VkLogicOp;
2060
2061typedef enum VkBorderColor {
2062 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
2063 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
2064 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
2065 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
2066 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
2067 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
2068 VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
2069 VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
2070 VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
2071} VkBorderColor;
2072
2073typedef enum VkFilter {
2074 VK_FILTER_NEAREST = 0,
2075 VK_FILTER_LINEAR = 1,
2076 VK_FILTER_CUBIC_EXT = 1000015000,
2077 VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT,
2078 VK_FILTER_MAX_ENUM = 0x7FFFFFFF
2079} VkFilter;
2080
2081typedef enum VkSamplerAddressMode {
2082 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
2083 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
2084 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
2085 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
2086 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
2087 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
2088 VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
2089} VkSamplerAddressMode;
2090
2091typedef enum VkSamplerMipmapMode {
2092 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
2093 VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
2094 VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
2095} VkSamplerMipmapMode;
2096
2097typedef enum VkDescriptorType {
2098 VK_DESCRIPTOR_TYPE_SAMPLER = 0,
2099 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
2100 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
2101 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
2102 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
2103 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
2104 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
2105 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
2106 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
2107 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
2108 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
2109 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
2110 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
2111 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
2112 VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
2113 VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001,
2114 VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000,
2115 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
2116 VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
2117 VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
2118} VkDescriptorType;
2119
2120typedef enum VkAttachmentLoadOp {
2121 VK_ATTACHMENT_LOAD_OP_LOAD = 0,
2122 VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
2123 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
2124 VK_ATTACHMENT_LOAD_OP_NONE_KHR = 1000400000,
2125 VK_ATTACHMENT_LOAD_OP_NONE_EXT = VK_ATTACHMENT_LOAD_OP_NONE_KHR,
2126 VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
2127} VkAttachmentLoadOp;
2128
2129typedef enum VkAttachmentStoreOp {
2130 VK_ATTACHMENT_STORE_OP_STORE = 0,
2131 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
2132 VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
2133 VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE,
2134 VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE,
2135 VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE,
2136 VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
2137} VkAttachmentStoreOp;
2138
2139typedef enum VkPipelineBindPoint {
2140 VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
2141 VK_PIPELINE_BIND_POINT_COMPUTE = 1,
2142#ifdef VK_ENABLE_BETA_EXTENSIONS
2143 VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000,
2144#endif
2145 VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
2146 VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
2147 VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
2148 VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
2149} VkPipelineBindPoint;
2150
2151typedef enum VkCommandBufferLevel {
2152 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
2153 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
2154 VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
2155} VkCommandBufferLevel;
2156
2157typedef enum VkIndexType {
2158 VK_INDEX_TYPE_UINT16 = 0,
2159 VK_INDEX_TYPE_UINT32 = 1,
2160 VK_INDEX_TYPE_NONE_KHR = 1000165000,
2161 VK_INDEX_TYPE_UINT8_KHR = 1000265000,
2162 VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
2163 VK_INDEX_TYPE_UINT8_EXT = VK_INDEX_TYPE_UINT8_KHR,
2164 VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
2165} VkIndexType;
2166
2167typedef enum VkSubpassContents {
2168 VK_SUBPASS_CONTENTS_INLINE = 0,
2169 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
2170 VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = 1000451000,
2171 VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
2172} VkSubpassContents;
2173
2174typedef enum VkAccessFlagBits {
2175 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2176 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2177 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2178 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2179 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2180 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2181 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2182 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2183 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2184 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2185 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2186 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2187 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2188 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2189 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2190 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2191 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
2192 VK_ACCESS_NONE = 0,
2193 VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
2194 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
2195 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
2196 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
2197 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
2198 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
2199 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
2200 VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
2201 VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
2202 VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000,
2203 VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000,
2204 VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
2205 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
2206 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
2207 VK_ACCESS_NONE_KHR = VK_ACCESS_NONE,
2208 VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2209} VkAccessFlagBits;
2210typedef VkFlags VkAccessFlags;
2211
2212typedef enum VkImageAspectFlagBits {
2213 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2214 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2215 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2216 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
2217 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2218 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2219 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2220 VK_IMAGE_ASPECT_NONE = 0,
2221 VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2222 VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2223 VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2224 VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
2225 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
2226 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
2227 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
2228 VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE,
2229 VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2230} VkImageAspectFlagBits;
2231typedef VkFlags VkImageAspectFlags;
2232
2233typedef enum VkFormatFeatureFlagBits {
2234 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
2235 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
2236 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
2237 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
2238 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
2239 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
2240 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
2241 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
2242 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
2243 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
2244 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
2245 VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
2246 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
2247 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2248 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2249 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2250 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2251 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2252 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2253 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2254 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2255 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2256 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
2257 VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
2258 VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
2259 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
2260 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000,
2261 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
2262 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
2263 VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
2264 VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
2265 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
2266 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
2267 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
2268 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
2269 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
2270 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
2271 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
2272 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
2273 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,
2274 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
2275 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
2276 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2277} VkFormatFeatureFlagBits;
2278typedef VkFlags VkFormatFeatureFlags;
2279
2280typedef enum VkImageCreateFlagBits {
2281 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2282 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2283 VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2284 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
2285 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
2286 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2287 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
2288 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
2289 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2290 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
2291 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
2292 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
2293 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
2294 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
2295 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
2296 VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00010000,
2297 VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000,
2298 VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000,
2299 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0x00008000,
2300 VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000,
2301 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
2302 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
2303 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
2304 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
2305 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
2306 VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
2307 VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2308} VkImageCreateFlagBits;
2309typedef VkFlags VkImageCreateFlags;
2310
2311typedef enum VkSampleCountFlagBits {
2312 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2313 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2314 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2315 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2316 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2317 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2318 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2319 VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2320} VkSampleCountFlagBits;
2321typedef VkFlags VkSampleCountFlags;
2322
2323typedef enum VkImageUsageFlagBits {
2324 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2325 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
2326 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
2327 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
2328 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
2329 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
2330 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
2331 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
2332 VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
2333 VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
2334 VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
2335 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
2336 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
2337 VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = 0x00400000,
2338 VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
2339 VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
2340 VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
2341 VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000,
2342 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
2343 VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000,
2344 VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000,
2345 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2346 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2347} VkImageUsageFlagBits;
2348typedef VkFlags VkImageUsageFlags;
2349
2350typedef enum VkInstanceCreateFlagBits {
2351 VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001,
2352 VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2353} VkInstanceCreateFlagBits;
2354typedef VkFlags VkInstanceCreateFlags;
2355
2356typedef enum VkMemoryHeapFlagBits {
2357 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
2358 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2359 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
2360 VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2361} VkMemoryHeapFlagBits;
2362typedef VkFlags VkMemoryHeapFlags;
2363
2364typedef enum VkMemoryPropertyFlagBits {
2365 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2366 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2367 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2368 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2369 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
2370 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
2371 VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
2372 VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
2373 VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
2374 VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2375} VkMemoryPropertyFlagBits;
2376typedef VkFlags VkMemoryPropertyFlags;
2377
2378typedef enum VkQueueFlagBits {
2379 VK_QUEUE_GRAPHICS_BIT = 0x00000001,
2380 VK_QUEUE_COMPUTE_BIT = 0x00000002,
2381 VK_QUEUE_TRANSFER_BIT = 0x00000004,
2382 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
2383 VK_QUEUE_PROTECTED_BIT = 0x00000010,
2384 VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
2385 VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
2386 VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100,
2387 VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2388} VkQueueFlagBits;
2389typedef VkFlags VkQueueFlags;
2390typedef VkFlags VkDeviceCreateFlags;
2391
2392typedef enum VkDeviceQueueCreateFlagBits {
2393 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2394 VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2395} VkDeviceQueueCreateFlagBits;
2396typedef VkFlags VkDeviceQueueCreateFlags;
2397
2398typedef enum VkPipelineStageFlagBits {
2399 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
2400 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
2401 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
2402 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
2403 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
2404 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
2405 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
2406 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
2407 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
2408 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
2409 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
2410 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
2411 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
2412 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2413 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
2414 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
2415 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
2416 VK_PIPELINE_STAGE_NONE = 0,
2417 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
2418 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
2419 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
2420 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
2421 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
2422 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
2423 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000,
2424 VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000,
2425 VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000,
2426 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2427 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
2428 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
2429 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
2430 VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
2431 VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
2432 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2433} VkPipelineStageFlagBits;
2434typedef VkFlags VkPipelineStageFlags;
2435
2436typedef enum VkMemoryMapFlagBits {
2437 VK_MEMORY_MAP_PLACED_BIT_EXT = 0x00000001,
2438 VK_MEMORY_MAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2439} VkMemoryMapFlagBits;
2440typedef VkFlags VkMemoryMapFlags;
2441
2442typedef enum VkSparseMemoryBindFlagBits {
2443 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2444 VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2445} VkSparseMemoryBindFlagBits;
2446typedef VkFlags VkSparseMemoryBindFlags;
2447
2448typedef enum VkSparseImageFormatFlagBits {
2449 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
2450 VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
2451 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
2452 VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2453} VkSparseImageFormatFlagBits;
2454typedef VkFlags VkSparseImageFormatFlags;
2455
2456typedef enum VkFenceCreateFlagBits {
2457 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2458 VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2459} VkFenceCreateFlagBits;
2460typedef VkFlags VkFenceCreateFlags;
2461typedef VkFlags VkSemaphoreCreateFlags;
2462
2463typedef enum VkEventCreateFlagBits {
2464 VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001,
2465 VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
2466 VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2467} VkEventCreateFlagBits;
2468typedef VkFlags VkEventCreateFlags;
2469
2470typedef enum VkQueryPipelineStatisticFlagBits {
2471 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
2472 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
2473 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
2474 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
2475 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
2476 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
2477 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
2478 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
2479 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
2480 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
2481 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
2482 VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800,
2483 VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000,
2484 VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000,
2485 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2486} VkQueryPipelineStatisticFlagBits;
2487typedef VkFlags VkQueryPipelineStatisticFlags;
2488typedef VkFlags VkQueryPoolCreateFlags;
2489
2490typedef enum VkQueryResultFlagBits {
2491 VK_QUERY_RESULT_64_BIT = 0x00000001,
2492 VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
2493 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
2494 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
2495 VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
2496 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2497} VkQueryResultFlagBits;
2498typedef VkFlags VkQueryResultFlags;
2499
2500typedef enum VkBufferCreateFlagBits {
2501 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2502 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2503 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2504 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
2505 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
2506 VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020,
2507 VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00000040,
2508 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2509 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2510 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2511} VkBufferCreateFlagBits;
2512typedef VkFlags VkBufferCreateFlags;
2513
2514typedef enum VkBufferUsageFlagBits {
2515 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2516 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
2517 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
2518 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
2519 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
2520 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
2521 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
2522 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
2523 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
2524 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
2525 VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
2526 VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
2527 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
2528 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
2529 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
2530#ifdef VK_ENABLE_BETA_EXTENSIONS
2531 VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000,
2532#endif
2533 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
2534 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
2535 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
2536 VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
2537 VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
2538 VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000,
2539 VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000,
2540 VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000,
2541 VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000,
2542 VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000,
2543 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
2544 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2545 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2546 VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2547} VkBufferUsageFlagBits;
2548typedef VkFlags VkBufferUsageFlags;
2549typedef VkFlags VkBufferViewCreateFlags;
2550
2551typedef enum VkImageViewCreateFlagBits {
2552 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
2553 VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004,
2554 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
2555 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2556} VkImageViewCreateFlagBits;
2557typedef VkFlags VkImageViewCreateFlags;
2558typedef VkFlags VkShaderModuleCreateFlags;
2559
2560typedef enum VkPipelineCacheCreateFlagBits {
2561 VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001,
2562 VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
2563 VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2564} VkPipelineCacheCreateFlagBits;
2565typedef VkFlags VkPipelineCacheCreateFlags;
2566
2567typedef enum VkColorComponentFlagBits {
2568 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2569 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2570 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2571 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
2572 VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2573} VkColorComponentFlagBits;
2574typedef VkFlags VkColorComponentFlags;
2575
2576typedef enum VkPipelineCreateFlagBits {
2577 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2578 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2579 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
2580 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2581 VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
2582 VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100,
2583 VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200,
2584 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000,
2585 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000,
2586 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
2587 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
2588 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
2589 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
2590 VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
2591 VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
2592 VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000,
2593 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
2594 VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
2595 VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
2596 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
2597 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
2598 VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000,
2599 VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000,
2600 VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400,
2601 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000,
2602 VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000,
2603 VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000,
2604 VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000,
2605#ifdef VK_ENABLE_BETA_EXTENSIONS
2606 VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000,
2607#endif
2608 VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000,
2609 VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000,
2610 VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
2611 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2612 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
2613 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
2614 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
2615 VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
2616 VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
2617 VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2618} VkPipelineCreateFlagBits;
2619typedef VkFlags VkPipelineCreateFlags;
2620
2621typedef enum VkPipelineShaderStageCreateFlagBits {
2622 VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001,
2623 VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002,
2624 VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
2625 VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
2626 VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2627} VkPipelineShaderStageCreateFlagBits;
2628typedef VkFlags VkPipelineShaderStageCreateFlags;
2629
2630typedef enum VkShaderStageFlagBits {
2631 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
2632 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2633 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
2634 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2635 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2636 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
2637 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
2638 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
2639 VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
2640 VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
2641 VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
2642 VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
2643 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
2644 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
2645 VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040,
2646 VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080,
2647 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
2648 VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000,
2649 VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
2650 VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
2651 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
2652 VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
2653 VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
2654 VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
2655 VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT,
2656 VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT,
2657 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2658} VkShaderStageFlagBits;
2659
2660typedef enum VkCullModeFlagBits {
2661 VK_CULL_MODE_NONE = 0,
2662 VK_CULL_MODE_FRONT_BIT = 0x00000001,
2663 VK_CULL_MODE_BACK_BIT = 0x00000002,
2664 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
2665 VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2666} VkCullModeFlagBits;
2667typedef VkFlags VkCullModeFlags;
2668typedef VkFlags VkPipelineVertexInputStateCreateFlags;
2669typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
2670typedef VkFlags VkPipelineTessellationStateCreateFlags;
2671typedef VkFlags VkPipelineViewportStateCreateFlags;
2672typedef VkFlags VkPipelineRasterizationStateCreateFlags;
2673typedef VkFlags VkPipelineMultisampleStateCreateFlags;
2674
2675typedef enum VkPipelineDepthStencilStateCreateFlagBits {
2676 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001,
2677 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002,
2678 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,
2679 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,
2680 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2681} VkPipelineDepthStencilStateCreateFlagBits;
2682typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
2683
2684typedef enum VkPipelineColorBlendStateCreateFlagBits {
2685 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001,
2686 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
2687 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2688} VkPipelineColorBlendStateCreateFlagBits;
2689typedef VkFlags VkPipelineColorBlendStateCreateFlags;
2690typedef VkFlags VkPipelineDynamicStateCreateFlags;
2691
2692typedef enum VkPipelineLayoutCreateFlagBits {
2693 VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002,
2694 VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2695} VkPipelineLayoutCreateFlagBits;
2696typedef VkFlags VkPipelineLayoutCreateFlags;
2697typedef VkFlags VkShaderStageFlags;
2698
2699typedef enum VkSamplerCreateFlagBits {
2700 VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
2701 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
2702 VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
2703 VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0x00000004,
2704 VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0x00000010,
2705 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2706} VkSamplerCreateFlagBits;
2707typedef VkFlags VkSamplerCreateFlags;
2708
2709typedef enum VkDescriptorPoolCreateFlagBits {
2710 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
2711 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
2712 VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004,
2713 VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008,
2714 VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010,
2715 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
2716 VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
2717 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2718} VkDescriptorPoolCreateFlagBits;
2719typedef VkFlags VkDescriptorPoolCreateFlags;
2720typedef VkFlags VkDescriptorPoolResetFlags;
2721
2722typedef enum VkDescriptorSetLayoutCreateFlagBits {
2723 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
2724 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
2725 VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010,
2726 VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020,
2727 VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00000080,
2728 VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004,
2729 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV = 0x00000040,
2730 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
2731 VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
2732 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2733} VkDescriptorSetLayoutCreateFlagBits;
2734typedef VkFlags VkDescriptorSetLayoutCreateFlags;
2735
2736typedef enum VkAttachmentDescriptionFlagBits {
2737 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
2738 VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2739} VkAttachmentDescriptionFlagBits;
2740typedef VkFlags VkAttachmentDescriptionFlags;
2741
2742typedef enum VkDependencyFlagBits {
2743 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
2744 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2745 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
2746 VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008,
2747 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
2748 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
2749 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2750} VkDependencyFlagBits;
2751typedef VkFlags VkDependencyFlags;
2752
2753typedef enum VkFramebufferCreateFlagBits {
2754 VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
2755 VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
2756 VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2757} VkFramebufferCreateFlagBits;
2758typedef VkFlags VkFramebufferCreateFlags;
2759
2760typedef enum VkRenderPassCreateFlagBits {
2761 VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
2762 VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2763} VkRenderPassCreateFlagBits;
2764typedef VkFlags VkRenderPassCreateFlags;
2765
2766typedef enum VkSubpassDescriptionFlagBits {
2767 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2768 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
2769 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004,
2770 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008,
2771 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010,
2772 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020,
2773 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040,
2774 VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080,
2775 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
2776 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
2777 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
2778 VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2779} VkSubpassDescriptionFlagBits;
2780typedef VkFlags VkSubpassDescriptionFlags;
2781
2782typedef enum VkCommandPoolCreateFlagBits {
2783 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
2784 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
2785 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
2786 VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2787} VkCommandPoolCreateFlagBits;
2788typedef VkFlags VkCommandPoolCreateFlags;
2789
2790typedef enum VkCommandPoolResetFlagBits {
2791 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2792 VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2793} VkCommandPoolResetFlagBits;
2794typedef VkFlags VkCommandPoolResetFlags;
2795
2796typedef enum VkCommandBufferUsageFlagBits {
2797 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2798 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2799 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
2800 VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2801} VkCommandBufferUsageFlagBits;
2802typedef VkFlags VkCommandBufferUsageFlags;
2803
2804typedef enum VkQueryControlFlagBits {
2805 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
2806 VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2807} VkQueryControlFlagBits;
2808typedef VkFlags VkQueryControlFlags;
2809
2810typedef enum VkCommandBufferResetFlagBits {
2811 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2812 VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2813} VkCommandBufferResetFlagBits;
2814typedef VkFlags VkCommandBufferResetFlags;
2815
2816typedef enum VkStencilFaceFlagBits {
2817 VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
2818 VK_STENCIL_FACE_BACK_BIT = 0x00000002,
2819 VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
2820 VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
2821 VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2822} VkStencilFaceFlagBits;
2823typedef VkFlags VkStencilFaceFlags;
2824typedef struct VkExtent2D {
2825 uint32_t width;
2826 uint32_t height;
2827} VkExtent2D;
2828
2829typedef struct VkExtent3D {
2830 uint32_t width;
2831 uint32_t height;
2832 uint32_t depth;
2833} VkExtent3D;
2834
2835typedef struct VkOffset2D {
2836 int32_t x;
2837 int32_t y;
2838} VkOffset2D;
2839
2840typedef struct VkOffset3D {
2841 int32_t x;
2842 int32_t y;
2843 int32_t z;
2844} VkOffset3D;
2845
2846typedef struct VkRect2D {
2847 VkOffset2D offset;
2848 VkExtent2D extent;
2849} VkRect2D;
2850
2851typedef struct VkBaseInStructure {
2852 VkStructureType sType;
2853 const struct VkBaseInStructure* pNext;
2854} VkBaseInStructure;
2855
2856typedef struct VkBaseOutStructure {
2857 VkStructureType sType;
2858 struct VkBaseOutStructure* pNext;
2859} VkBaseOutStructure;
2860
2861typedef struct VkBufferMemoryBarrier {
2862 VkStructureType sType;
2863 const void* pNext;
2864 VkAccessFlags srcAccessMask;
2865 VkAccessFlags dstAccessMask;
2866 uint32_t srcQueueFamilyIndex;
2867 uint32_t dstQueueFamilyIndex;
2868 VkBuffer buffer;
2869 VkDeviceSize offset;
2870 VkDeviceSize size;
2871} VkBufferMemoryBarrier;
2872
2873typedef struct VkDispatchIndirectCommand {
2874 uint32_t x;
2875 uint32_t y;
2876 uint32_t z;
2877} VkDispatchIndirectCommand;
2878
2879typedef struct VkDrawIndexedIndirectCommand {
2880 uint32_t indexCount;
2881 uint32_t instanceCount;
2882 uint32_t firstIndex;
2883 int32_t vertexOffset;
2884 uint32_t firstInstance;
2885} VkDrawIndexedIndirectCommand;
2886
2887typedef struct VkDrawIndirectCommand {
2888 uint32_t vertexCount;
2889 uint32_t instanceCount;
2890 uint32_t firstVertex;
2891 uint32_t firstInstance;
2892} VkDrawIndirectCommand;
2893
2894typedef struct VkImageSubresourceRange {
2895 VkImageAspectFlags aspectMask;
2896 uint32_t baseMipLevel;
2897 uint32_t levelCount;
2898 uint32_t baseArrayLayer;
2899 uint32_t layerCount;
2900} VkImageSubresourceRange;
2901
2902typedef struct VkImageMemoryBarrier {
2903 VkStructureType sType;
2904 const void* pNext;
2905 VkAccessFlags srcAccessMask;
2906 VkAccessFlags dstAccessMask;
2907 VkImageLayout oldLayout;
2908 VkImageLayout newLayout;
2909 uint32_t srcQueueFamilyIndex;
2910 uint32_t dstQueueFamilyIndex;
2911 VkImage image;
2912 VkImageSubresourceRange subresourceRange;
2913} VkImageMemoryBarrier;
2914
2915typedef struct VkMemoryBarrier {
2916 VkStructureType sType;
2917 const void* pNext;
2918 VkAccessFlags srcAccessMask;
2919 VkAccessFlags dstAccessMask;
2920} VkMemoryBarrier;
2921
2922typedef struct VkPipelineCacheHeaderVersionOne {
2923 uint32_t headerSize;
2924 VkPipelineCacheHeaderVersion headerVersion;
2925 uint32_t vendorID;
2926 uint32_t deviceID;
2927 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
2928} VkPipelineCacheHeaderVersionOne;
2929
2930typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
2931 void* pUserData,
2932 size_t size,
2933 size_t alignment,
2934 VkSystemAllocationScope allocationScope);
2935
2936typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
2937 void* pUserData,
2938 void* pMemory);
2939
2940typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
2941 void* pUserData,
2942 size_t size,
2943 VkInternalAllocationType allocationType,
2944 VkSystemAllocationScope allocationScope);
2945
2946typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
2947 void* pUserData,
2948 size_t size,
2949 VkInternalAllocationType allocationType,
2950 VkSystemAllocationScope allocationScope);
2951
2952typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
2953 void* pUserData,
2954 void* pOriginal,
2955 size_t size,
2956 size_t alignment,
2957 VkSystemAllocationScope allocationScope);
2958
2959typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
2960typedef struct VkAllocationCallbacks {
2961 void* pUserData;
2962 PFN_vkAllocationFunction pfnAllocation;
2963 PFN_vkReallocationFunction pfnReallocation;
2964 PFN_vkFreeFunction pfnFree;
2965 PFN_vkInternalAllocationNotification pfnInternalAllocation;
2966 PFN_vkInternalFreeNotification pfnInternalFree;
2967} VkAllocationCallbacks;
2968
2969typedef struct VkApplicationInfo {
2970 VkStructureType sType;
2971 const void* pNext;
2972 const char* pApplicationName;
2973 uint32_t applicationVersion;
2974 const char* pEngineName;
2975 uint32_t engineVersion;
2976 uint32_t apiVersion;
2977} VkApplicationInfo;
2978
2979typedef struct VkFormatProperties {
2980 VkFormatFeatureFlags linearTilingFeatures;
2981 VkFormatFeatureFlags optimalTilingFeatures;
2982 VkFormatFeatureFlags bufferFeatures;
2983} VkFormatProperties;
2984
2985typedef struct VkImageFormatProperties {
2986 VkExtent3D maxExtent;
2987 uint32_t maxMipLevels;
2988 uint32_t maxArrayLayers;
2989 VkSampleCountFlags sampleCounts;
2990 VkDeviceSize maxResourceSize;
2991} VkImageFormatProperties;
2992
2993typedef struct VkInstanceCreateInfo {
2994 VkStructureType sType;
2995 const void* pNext;
2996 VkInstanceCreateFlags flags;
2997 const VkApplicationInfo* pApplicationInfo;
2998 uint32_t enabledLayerCount;
2999 const char* const* ppEnabledLayerNames;
3000 uint32_t enabledExtensionCount;
3001 const char* const* ppEnabledExtensionNames;
3002} VkInstanceCreateInfo;
3003
3004typedef struct VkMemoryHeap {
3005 VkDeviceSize size;
3006 VkMemoryHeapFlags flags;
3007} VkMemoryHeap;
3008
3009typedef struct VkMemoryType {
3010 VkMemoryPropertyFlags propertyFlags;
3011 uint32_t heapIndex;
3012} VkMemoryType;
3013
3014typedef struct VkPhysicalDeviceFeatures {
3015 VkBool32 robustBufferAccess;
3016 VkBool32 fullDrawIndexUint32;
3017 VkBool32 imageCubeArray;
3018 VkBool32 independentBlend;
3019 VkBool32 geometryShader;
3020 VkBool32 tessellationShader;
3021 VkBool32 sampleRateShading;
3022 VkBool32 dualSrcBlend;
3023 VkBool32 logicOp;
3024 VkBool32 multiDrawIndirect;
3025 VkBool32 drawIndirectFirstInstance;
3026 VkBool32 depthClamp;
3027 VkBool32 depthBiasClamp;
3028 VkBool32 fillModeNonSolid;
3029 VkBool32 depthBounds;
3030 VkBool32 wideLines;
3031 VkBool32 largePoints;
3032 VkBool32 alphaToOne;
3033 VkBool32 multiViewport;
3034 VkBool32 samplerAnisotropy;
3035 VkBool32 textureCompressionETC2;
3036 VkBool32 textureCompressionASTC_LDR;
3037 VkBool32 textureCompressionBC;
3038 VkBool32 occlusionQueryPrecise;
3039 VkBool32 pipelineStatisticsQuery;
3040 VkBool32 vertexPipelineStoresAndAtomics;
3041 VkBool32 fragmentStoresAndAtomics;
3042 VkBool32 shaderTessellationAndGeometryPointSize;
3043 VkBool32 shaderImageGatherExtended;
3044 VkBool32 shaderStorageImageExtendedFormats;
3045 VkBool32 shaderStorageImageMultisample;
3046 VkBool32 shaderStorageImageReadWithoutFormat;
3047 VkBool32 shaderStorageImageWriteWithoutFormat;
3048 VkBool32 shaderUniformBufferArrayDynamicIndexing;
3049 VkBool32 shaderSampledImageArrayDynamicIndexing;
3050 VkBool32 shaderStorageBufferArrayDynamicIndexing;
3051 VkBool32 shaderStorageImageArrayDynamicIndexing;
3052 VkBool32 shaderClipDistance;
3053 VkBool32 shaderCullDistance;
3054 VkBool32 shaderFloat64;
3055 VkBool32 shaderInt64;
3056 VkBool32 shaderInt16;
3057 VkBool32 shaderResourceResidency;
3058 VkBool32 shaderResourceMinLod;
3059 VkBool32 sparseBinding;
3060 VkBool32 sparseResidencyBuffer;
3061 VkBool32 sparseResidencyImage2D;
3062 VkBool32 sparseResidencyImage3D;
3063 VkBool32 sparseResidency2Samples;
3064 VkBool32 sparseResidency4Samples;
3065 VkBool32 sparseResidency8Samples;
3066 VkBool32 sparseResidency16Samples;
3067 VkBool32 sparseResidencyAliased;
3068 VkBool32 variableMultisampleRate;
3069 VkBool32 inheritedQueries;
3070} VkPhysicalDeviceFeatures;
3071
3072typedef struct VkPhysicalDeviceLimits {
3073 uint32_t maxImageDimension1D;
3074 uint32_t maxImageDimension2D;
3075 uint32_t maxImageDimension3D;
3076 uint32_t maxImageDimensionCube;
3077 uint32_t maxImageArrayLayers;
3078 uint32_t maxTexelBufferElements;
3079 uint32_t maxUniformBufferRange;
3080 uint32_t maxStorageBufferRange;
3081 uint32_t maxPushConstantsSize;
3082 uint32_t maxMemoryAllocationCount;
3083 uint32_t maxSamplerAllocationCount;
3084 VkDeviceSize bufferImageGranularity;
3085 VkDeviceSize sparseAddressSpaceSize;
3086 uint32_t maxBoundDescriptorSets;
3087 uint32_t maxPerStageDescriptorSamplers;
3088 uint32_t maxPerStageDescriptorUniformBuffers;
3089 uint32_t maxPerStageDescriptorStorageBuffers;
3090 uint32_t maxPerStageDescriptorSampledImages;
3091 uint32_t maxPerStageDescriptorStorageImages;
3092 uint32_t maxPerStageDescriptorInputAttachments;
3093 uint32_t maxPerStageResources;
3094 uint32_t maxDescriptorSetSamplers;
3095 uint32_t maxDescriptorSetUniformBuffers;
3096 uint32_t maxDescriptorSetUniformBuffersDynamic;
3097 uint32_t maxDescriptorSetStorageBuffers;
3098 uint32_t maxDescriptorSetStorageBuffersDynamic;
3099 uint32_t maxDescriptorSetSampledImages;
3100 uint32_t maxDescriptorSetStorageImages;
3101 uint32_t maxDescriptorSetInputAttachments;
3102 uint32_t maxVertexInputAttributes;
3103 uint32_t maxVertexInputBindings;
3104 uint32_t maxVertexInputAttributeOffset;
3105 uint32_t maxVertexInputBindingStride;
3106 uint32_t maxVertexOutputComponents;
3107 uint32_t maxTessellationGenerationLevel;
3108 uint32_t maxTessellationPatchSize;
3109 uint32_t maxTessellationControlPerVertexInputComponents;
3110 uint32_t maxTessellationControlPerVertexOutputComponents;
3111 uint32_t maxTessellationControlPerPatchOutputComponents;
3112 uint32_t maxTessellationControlTotalOutputComponents;
3113 uint32_t maxTessellationEvaluationInputComponents;
3114 uint32_t maxTessellationEvaluationOutputComponents;
3115 uint32_t maxGeometryShaderInvocations;
3116 uint32_t maxGeometryInputComponents;
3117 uint32_t maxGeometryOutputComponents;
3118 uint32_t maxGeometryOutputVertices;
3119 uint32_t maxGeometryTotalOutputComponents;
3120 uint32_t maxFragmentInputComponents;
3121 uint32_t maxFragmentOutputAttachments;
3122 uint32_t maxFragmentDualSrcAttachments;
3123 uint32_t maxFragmentCombinedOutputResources;
3124 uint32_t maxComputeSharedMemorySize;
3125 uint32_t maxComputeWorkGroupCount[3];
3126 uint32_t maxComputeWorkGroupInvocations;
3127 uint32_t maxComputeWorkGroupSize[3];
3128 uint32_t subPixelPrecisionBits;
3129 uint32_t subTexelPrecisionBits;
3130 uint32_t mipmapPrecisionBits;
3131 uint32_t maxDrawIndexedIndexValue;
3132 uint32_t maxDrawIndirectCount;
3133 float maxSamplerLodBias;
3134 float maxSamplerAnisotropy;
3135 uint32_t maxViewports;
3136 uint32_t maxViewportDimensions[2];
3137 float viewportBoundsRange[2];
3138 uint32_t viewportSubPixelBits;
3139 size_t minMemoryMapAlignment;
3140 VkDeviceSize minTexelBufferOffsetAlignment;
3141 VkDeviceSize minUniformBufferOffsetAlignment;
3142 VkDeviceSize minStorageBufferOffsetAlignment;
3143 int32_t minTexelOffset;
3144 uint32_t maxTexelOffset;
3145 int32_t minTexelGatherOffset;
3146 uint32_t maxTexelGatherOffset;
3147 float minInterpolationOffset;
3148 float maxInterpolationOffset;
3149 uint32_t subPixelInterpolationOffsetBits;
3150 uint32_t maxFramebufferWidth;
3151 uint32_t maxFramebufferHeight;
3152 uint32_t maxFramebufferLayers;
3153 VkSampleCountFlags framebufferColorSampleCounts;
3154 VkSampleCountFlags framebufferDepthSampleCounts;
3155 VkSampleCountFlags framebufferStencilSampleCounts;
3156 VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
3157 uint32_t maxColorAttachments;
3158 VkSampleCountFlags sampledImageColorSampleCounts;
3159 VkSampleCountFlags sampledImageIntegerSampleCounts;
3160 VkSampleCountFlags sampledImageDepthSampleCounts;
3161 VkSampleCountFlags sampledImageStencilSampleCounts;
3162 VkSampleCountFlags storageImageSampleCounts;
3163 uint32_t maxSampleMaskWords;
3164 VkBool32 timestampComputeAndGraphics;
3165 float timestampPeriod;
3166 uint32_t maxClipDistances;
3167 uint32_t maxCullDistances;
3168 uint32_t maxCombinedClipAndCullDistances;
3169 uint32_t discreteQueuePriorities;
3170 float pointSizeRange[2];
3171 float lineWidthRange[2];
3172 float pointSizeGranularity;
3173 float lineWidthGranularity;
3174 VkBool32 strictLines;
3175 VkBool32 standardSampleLocations;
3176 VkDeviceSize optimalBufferCopyOffsetAlignment;
3177 VkDeviceSize optimalBufferCopyRowPitchAlignment;
3178 VkDeviceSize nonCoherentAtomSize;
3179} VkPhysicalDeviceLimits;
3180
3181typedef struct VkPhysicalDeviceMemoryProperties {
3182 uint32_t memoryTypeCount;
3183 VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
3184 uint32_t memoryHeapCount;
3185 VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
3186} VkPhysicalDeviceMemoryProperties;
3187
3188typedef struct VkPhysicalDeviceSparseProperties {
3189 VkBool32 residencyStandard2DBlockShape;
3190 VkBool32 residencyStandard2DMultisampleBlockShape;
3191 VkBool32 residencyStandard3DBlockShape;
3192 VkBool32 residencyAlignedMipSize;
3193 VkBool32 residencyNonResidentStrict;
3194} VkPhysicalDeviceSparseProperties;
3195
3196typedef struct VkPhysicalDeviceProperties {
3197 uint32_t apiVersion;
3198 uint32_t driverVersion;
3199 uint32_t vendorID;
3200 uint32_t deviceID;
3201 VkPhysicalDeviceType deviceType;
3202 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
3203 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
3204 VkPhysicalDeviceLimits limits;
3205 VkPhysicalDeviceSparseProperties sparseProperties;
3206} VkPhysicalDeviceProperties;
3207
3208typedef struct VkQueueFamilyProperties {
3209 VkQueueFlags queueFlags;
3210 uint32_t queueCount;
3211 uint32_t timestampValidBits;
3212 VkExtent3D minImageTransferGranularity;
3213} VkQueueFamilyProperties;
3214
3215typedef struct VkDeviceQueueCreateInfo {
3216 VkStructureType sType;
3217 const void* pNext;
3218 VkDeviceQueueCreateFlags flags;
3219 uint32_t queueFamilyIndex;
3220 uint32_t queueCount;
3221 const float* pQueuePriorities;
3222} VkDeviceQueueCreateInfo;
3223
3224typedef struct VkDeviceCreateInfo {
3225 VkStructureType sType;
3226 const void* pNext;
3227 VkDeviceCreateFlags flags;
3228 uint32_t queueCreateInfoCount;
3229 const VkDeviceQueueCreateInfo* pQueueCreateInfos;
3230 uint32_t enabledLayerCount;
3231 const char* const* ppEnabledLayerNames;
3232 uint32_t enabledExtensionCount;
3233 const char* const* ppEnabledExtensionNames;
3234 const VkPhysicalDeviceFeatures* pEnabledFeatures;
3235} VkDeviceCreateInfo;
3236
3237typedef struct VkExtensionProperties {
3238 char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
3239 uint32_t specVersion;
3240} VkExtensionProperties;
3241
3242typedef struct VkLayerProperties {
3243 char layerName[VK_MAX_EXTENSION_NAME_SIZE];
3244 uint32_t specVersion;
3245 uint32_t implementationVersion;
3246 char description[VK_MAX_DESCRIPTION_SIZE];
3247} VkLayerProperties;
3248
3249typedef struct VkSubmitInfo {
3250 VkStructureType sType;
3251 const void* pNext;
3252 uint32_t waitSemaphoreCount;
3253 const VkSemaphore* pWaitSemaphores;
3254 const VkPipelineStageFlags* pWaitDstStageMask;
3255 uint32_t commandBufferCount;
3256 const VkCommandBuffer* pCommandBuffers;
3257 uint32_t signalSemaphoreCount;
3258 const VkSemaphore* pSignalSemaphores;
3259} VkSubmitInfo;
3260
3261typedef struct VkMappedMemoryRange {
3262 VkStructureType sType;
3263 const void* pNext;
3264 VkDeviceMemory memory;
3265 VkDeviceSize offset;
3266 VkDeviceSize size;
3267} VkMappedMemoryRange;
3268
3269typedef struct VkMemoryAllocateInfo {
3270 VkStructureType sType;
3271 const void* pNext;
3272 VkDeviceSize allocationSize;
3273 uint32_t memoryTypeIndex;
3274} VkMemoryAllocateInfo;
3275
3276typedef struct VkMemoryRequirements {
3277 VkDeviceSize size;
3278 VkDeviceSize alignment;
3279 uint32_t memoryTypeBits;
3280} VkMemoryRequirements;
3281
3282typedef struct VkSparseMemoryBind {
3283 VkDeviceSize resourceOffset;
3284 VkDeviceSize size;
3285 VkDeviceMemory memory;
3286 VkDeviceSize memoryOffset;
3287 VkSparseMemoryBindFlags flags;
3288} VkSparseMemoryBind;
3289
3290typedef struct VkSparseBufferMemoryBindInfo {
3291 VkBuffer buffer;
3292 uint32_t bindCount;
3293 const VkSparseMemoryBind* pBinds;
3294} VkSparseBufferMemoryBindInfo;
3295
3296typedef struct VkSparseImageOpaqueMemoryBindInfo {
3297 VkImage image;
3298 uint32_t bindCount;
3299 const VkSparseMemoryBind* pBinds;
3300} VkSparseImageOpaqueMemoryBindInfo;
3301
3302typedef struct VkImageSubresource {
3303 VkImageAspectFlags aspectMask;
3304 uint32_t mipLevel;
3305 uint32_t arrayLayer;
3306} VkImageSubresource;
3307
3308typedef struct VkSparseImageMemoryBind {
3309 VkImageSubresource subresource;
3310 VkOffset3D offset;
3311 VkExtent3D extent;
3312 VkDeviceMemory memory;
3313 VkDeviceSize memoryOffset;
3314 VkSparseMemoryBindFlags flags;
3315} VkSparseImageMemoryBind;
3316
3317typedef struct VkSparseImageMemoryBindInfo {
3318 VkImage image;
3319 uint32_t bindCount;
3320 const VkSparseImageMemoryBind* pBinds;
3321} VkSparseImageMemoryBindInfo;
3322
3323typedef struct VkBindSparseInfo {
3324 VkStructureType sType;
3325 const void* pNext;
3326 uint32_t waitSemaphoreCount;
3327 const VkSemaphore* pWaitSemaphores;
3328 uint32_t bufferBindCount;
3329 const VkSparseBufferMemoryBindInfo* pBufferBinds;
3330 uint32_t imageOpaqueBindCount;
3331 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
3332 uint32_t imageBindCount;
3333 const VkSparseImageMemoryBindInfo* pImageBinds;
3334 uint32_t signalSemaphoreCount;
3335 const VkSemaphore* pSignalSemaphores;
3336} VkBindSparseInfo;
3337
3338typedef struct VkSparseImageFormatProperties {
3339 VkImageAspectFlags aspectMask;
3340 VkExtent3D imageGranularity;
3341 VkSparseImageFormatFlags flags;
3342} VkSparseImageFormatProperties;
3343
3344typedef struct VkSparseImageMemoryRequirements {
3345 VkSparseImageFormatProperties formatProperties;
3346 uint32_t imageMipTailFirstLod;
3347 VkDeviceSize imageMipTailSize;
3348 VkDeviceSize imageMipTailOffset;
3349 VkDeviceSize imageMipTailStride;
3350} VkSparseImageMemoryRequirements;
3351
3352typedef struct VkFenceCreateInfo {
3353 VkStructureType sType;
3354 const void* pNext;
3355 VkFenceCreateFlags flags;
3356} VkFenceCreateInfo;
3357
3358typedef struct VkSemaphoreCreateInfo {
3359 VkStructureType sType;
3360 const void* pNext;
3361 VkSemaphoreCreateFlags flags;
3362} VkSemaphoreCreateInfo;
3363
3364typedef struct VkEventCreateInfo {
3365 VkStructureType sType;
3366 const void* pNext;
3367 VkEventCreateFlags flags;
3368} VkEventCreateInfo;
3369
3370typedef struct VkQueryPoolCreateInfo {
3371 VkStructureType sType;
3372 const void* pNext;
3373 VkQueryPoolCreateFlags flags;
3374 VkQueryType queryType;
3375 uint32_t queryCount;
3376 VkQueryPipelineStatisticFlags pipelineStatistics;
3377} VkQueryPoolCreateInfo;
3378
3379typedef struct VkBufferCreateInfo {
3380 VkStructureType sType;
3381 const void* pNext;
3382 VkBufferCreateFlags flags;
3383 VkDeviceSize size;
3384 VkBufferUsageFlags usage;
3385 VkSharingMode sharingMode;
3386 uint32_t queueFamilyIndexCount;
3387 const uint32_t* pQueueFamilyIndices;
3388} VkBufferCreateInfo;
3389
3390typedef struct VkBufferViewCreateInfo {
3391 VkStructureType sType;
3392 const void* pNext;
3393 VkBufferViewCreateFlags flags;
3394 VkBuffer buffer;
3395 VkFormat format;
3396 VkDeviceSize offset;
3397 VkDeviceSize range;
3398} VkBufferViewCreateInfo;
3399
3400typedef struct VkImageCreateInfo {
3401 VkStructureType sType;
3402 const void* pNext;
3403 VkImageCreateFlags flags;
3404 VkImageType imageType;
3405 VkFormat format;
3406 VkExtent3D extent;
3407 uint32_t mipLevels;
3408 uint32_t arrayLayers;
3409 VkSampleCountFlagBits samples;
3410 VkImageTiling tiling;
3411 VkImageUsageFlags usage;
3412 VkSharingMode sharingMode;
3413 uint32_t queueFamilyIndexCount;
3414 const uint32_t* pQueueFamilyIndices;
3415 VkImageLayout initialLayout;
3416} VkImageCreateInfo;
3417
3418typedef struct VkSubresourceLayout {
3419 VkDeviceSize offset;
3420 VkDeviceSize size;
3421 VkDeviceSize rowPitch;
3422 VkDeviceSize arrayPitch;
3423 VkDeviceSize depthPitch;
3424} VkSubresourceLayout;
3425
3426typedef struct VkComponentMapping {
3427 VkComponentSwizzle r;
3428 VkComponentSwizzle g;
3429 VkComponentSwizzle b;
3430 VkComponentSwizzle a;
3431} VkComponentMapping;
3432
3433typedef struct VkImageViewCreateInfo {
3434 VkStructureType sType;
3435 const void* pNext;
3436 VkImageViewCreateFlags flags;
3437 VkImage image;
3438 VkImageViewType viewType;
3439 VkFormat format;
3440 VkComponentMapping components;
3441 VkImageSubresourceRange subresourceRange;
3442} VkImageViewCreateInfo;
3443
3444typedef struct VkShaderModuleCreateInfo {
3445 VkStructureType sType;
3446 const void* pNext;
3447 VkShaderModuleCreateFlags flags;
3448 size_t codeSize;
3449 const uint32_t* pCode;
3450} VkShaderModuleCreateInfo;
3451
3452typedef struct VkPipelineCacheCreateInfo {
3453 VkStructureType sType;
3454 const void* pNext;
3455 VkPipelineCacheCreateFlags flags;
3456 size_t initialDataSize;
3457 const void* pInitialData;
3458} VkPipelineCacheCreateInfo;
3459
3460typedef struct VkSpecializationMapEntry {
3461 uint32_t constantID;
3462 uint32_t offset;
3463 size_t size;
3464} VkSpecializationMapEntry;
3465
3466typedef struct VkSpecializationInfo {
3467 uint32_t mapEntryCount;
3468 const VkSpecializationMapEntry* pMapEntries;
3469 size_t dataSize;
3470 const void* pData;
3471} VkSpecializationInfo;
3472
3473typedef struct VkPipelineShaderStageCreateInfo {
3474 VkStructureType sType;
3475 const void* pNext;
3476 VkPipelineShaderStageCreateFlags flags;
3477 VkShaderStageFlagBits stage;
3478 VkShaderModule module;
3479 const char* pName;
3480 const VkSpecializationInfo* pSpecializationInfo;
3481} VkPipelineShaderStageCreateInfo;
3482
3483typedef struct VkComputePipelineCreateInfo {
3484 VkStructureType sType;
3485 const void* pNext;
3486 VkPipelineCreateFlags flags;
3487 VkPipelineShaderStageCreateInfo stage;
3488 VkPipelineLayout layout;
3489 VkPipeline basePipelineHandle;
3490 int32_t basePipelineIndex;
3491} VkComputePipelineCreateInfo;
3492
3493typedef struct VkVertexInputBindingDescription {
3494 uint32_t binding;
3495 uint32_t stride;
3496 VkVertexInputRate inputRate;
3497} VkVertexInputBindingDescription;
3498
3499typedef struct VkVertexInputAttributeDescription {
3500 uint32_t location;
3501 uint32_t binding;
3502 VkFormat format;
3503 uint32_t offset;
3504} VkVertexInputAttributeDescription;
3505
3506typedef struct VkPipelineVertexInputStateCreateInfo {
3507 VkStructureType sType;
3508 const void* pNext;
3509 VkPipelineVertexInputStateCreateFlags flags;
3510 uint32_t vertexBindingDescriptionCount;
3511 const VkVertexInputBindingDescription* pVertexBindingDescriptions;
3512 uint32_t vertexAttributeDescriptionCount;
3513 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
3514} VkPipelineVertexInputStateCreateInfo;
3515
3516typedef struct VkPipelineInputAssemblyStateCreateInfo {
3517 VkStructureType sType;
3518 const void* pNext;
3519 VkPipelineInputAssemblyStateCreateFlags flags;
3520 VkPrimitiveTopology topology;
3521 VkBool32 primitiveRestartEnable;
3522} VkPipelineInputAssemblyStateCreateInfo;
3523
3524typedef struct VkPipelineTessellationStateCreateInfo {
3525 VkStructureType sType;
3526 const void* pNext;
3527 VkPipelineTessellationStateCreateFlags flags;
3528 uint32_t patchControlPoints;
3529} VkPipelineTessellationStateCreateInfo;
3530
3531typedef struct VkViewport {
3532 float x;
3533 float y;
3534 float width;
3535 float height;
3536 float minDepth;
3537 float maxDepth;
3538} VkViewport;
3539
3540typedef struct VkPipelineViewportStateCreateInfo {
3541 VkStructureType sType;
3542 const void* pNext;
3543 VkPipelineViewportStateCreateFlags flags;
3544 uint32_t viewportCount;
3545 const VkViewport* pViewports;
3546 uint32_t scissorCount;
3547 const VkRect2D* pScissors;
3548} VkPipelineViewportStateCreateInfo;
3549
3550typedef struct VkPipelineRasterizationStateCreateInfo {
3551 VkStructureType sType;
3552 const void* pNext;
3553 VkPipelineRasterizationStateCreateFlags flags;
3554 VkBool32 depthClampEnable;
3555 VkBool32 rasterizerDiscardEnable;
3556 VkPolygonMode polygonMode;
3557 VkCullModeFlags cullMode;
3558 VkFrontFace frontFace;
3559 VkBool32 depthBiasEnable;
3560 float depthBiasConstantFactor;
3561 float depthBiasClamp;
3562 float depthBiasSlopeFactor;
3563 float lineWidth;
3564} VkPipelineRasterizationStateCreateInfo;
3565
3566typedef struct VkPipelineMultisampleStateCreateInfo {
3567 VkStructureType sType;
3568 const void* pNext;
3569 VkPipelineMultisampleStateCreateFlags flags;
3570 VkSampleCountFlagBits rasterizationSamples;
3571 VkBool32 sampleShadingEnable;
3572 float minSampleShading;
3573 const VkSampleMask* pSampleMask;
3574 VkBool32 alphaToCoverageEnable;
3575 VkBool32 alphaToOneEnable;
3576} VkPipelineMultisampleStateCreateInfo;
3577
3578typedef struct VkStencilOpState {
3579 VkStencilOp failOp;
3580 VkStencilOp passOp;
3581 VkStencilOp depthFailOp;
3582 VkCompareOp compareOp;
3583 uint32_t compareMask;
3584 uint32_t writeMask;
3585 uint32_t reference;
3586} VkStencilOpState;
3587
3588typedef struct VkPipelineDepthStencilStateCreateInfo {
3589 VkStructureType sType;
3590 const void* pNext;
3591 VkPipelineDepthStencilStateCreateFlags flags;
3592 VkBool32 depthTestEnable;
3593 VkBool32 depthWriteEnable;
3594 VkCompareOp depthCompareOp;
3595 VkBool32 depthBoundsTestEnable;
3596 VkBool32 stencilTestEnable;
3597 VkStencilOpState front;
3598 VkStencilOpState back;
3599 float minDepthBounds;
3600 float maxDepthBounds;
3601} VkPipelineDepthStencilStateCreateInfo;
3602
3603typedef struct VkPipelineColorBlendAttachmentState {
3604 VkBool32 blendEnable;
3605 VkBlendFactor srcColorBlendFactor;
3606 VkBlendFactor dstColorBlendFactor;
3607 VkBlendOp colorBlendOp;
3608 VkBlendFactor srcAlphaBlendFactor;
3609 VkBlendFactor dstAlphaBlendFactor;
3610 VkBlendOp alphaBlendOp;
3611 VkColorComponentFlags colorWriteMask;
3612} VkPipelineColorBlendAttachmentState;
3613
3614typedef struct VkPipelineColorBlendStateCreateInfo {
3615 VkStructureType sType;
3616 const void* pNext;
3617 VkPipelineColorBlendStateCreateFlags flags;
3618 VkBool32 logicOpEnable;
3619 VkLogicOp logicOp;
3620 uint32_t attachmentCount;
3621 const VkPipelineColorBlendAttachmentState* pAttachments;
3622 float blendConstants[4];
3623} VkPipelineColorBlendStateCreateInfo;
3624
3625typedef struct VkPipelineDynamicStateCreateInfo {
3626 VkStructureType sType;
3627 const void* pNext;
3628 VkPipelineDynamicStateCreateFlags flags;
3629 uint32_t dynamicStateCount;
3630 const VkDynamicState* pDynamicStates;
3631} VkPipelineDynamicStateCreateInfo;
3632
3633typedef struct VkGraphicsPipelineCreateInfo {
3634 VkStructureType sType;
3635 const void* pNext;
3636 VkPipelineCreateFlags flags;
3637 uint32_t stageCount;
3638 const VkPipelineShaderStageCreateInfo* pStages;
3639 const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
3640 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
3641 const VkPipelineTessellationStateCreateInfo* pTessellationState;
3642 const VkPipelineViewportStateCreateInfo* pViewportState;
3643 const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
3644 const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
3645 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
3646 const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
3647 const VkPipelineDynamicStateCreateInfo* pDynamicState;
3648 VkPipelineLayout layout;
3649 VkRenderPass renderPass;
3650 uint32_t subpass;
3651 VkPipeline basePipelineHandle;
3652 int32_t basePipelineIndex;
3653} VkGraphicsPipelineCreateInfo;
3654
3655typedef struct VkPushConstantRange {
3656 VkShaderStageFlags stageFlags;
3657 uint32_t offset;
3658 uint32_t size;
3659} VkPushConstantRange;
3660
3661typedef struct VkPipelineLayoutCreateInfo {
3662 VkStructureType sType;
3663 const void* pNext;
3664 VkPipelineLayoutCreateFlags flags;
3665 uint32_t setLayoutCount;
3666 const VkDescriptorSetLayout* pSetLayouts;
3667 uint32_t pushConstantRangeCount;
3668 const VkPushConstantRange* pPushConstantRanges;
3669} VkPipelineLayoutCreateInfo;
3670
3671typedef struct VkSamplerCreateInfo {
3672 VkStructureType sType;
3673 const void* pNext;
3674 VkSamplerCreateFlags flags;
3675 VkFilter magFilter;
3676 VkFilter minFilter;
3677 VkSamplerMipmapMode mipmapMode;
3678 VkSamplerAddressMode addressModeU;
3679 VkSamplerAddressMode addressModeV;
3680 VkSamplerAddressMode addressModeW;
3681 float mipLodBias;
3682 VkBool32 anisotropyEnable;
3683 float maxAnisotropy;
3684 VkBool32 compareEnable;
3685 VkCompareOp compareOp;
3686 float minLod;
3687 float maxLod;
3688 VkBorderColor borderColor;
3689 VkBool32 unnormalizedCoordinates;
3690} VkSamplerCreateInfo;
3691
3692typedef struct VkCopyDescriptorSet {
3693 VkStructureType sType;
3694 const void* pNext;
3695 VkDescriptorSet srcSet;
3696 uint32_t srcBinding;
3697 uint32_t srcArrayElement;
3698 VkDescriptorSet dstSet;
3699 uint32_t dstBinding;
3700 uint32_t dstArrayElement;
3701 uint32_t descriptorCount;
3702} VkCopyDescriptorSet;
3703
3704typedef struct VkDescriptorBufferInfo {
3705 VkBuffer buffer;
3706 VkDeviceSize offset;
3707 VkDeviceSize range;
3708} VkDescriptorBufferInfo;
3709
3710typedef struct VkDescriptorImageInfo {
3711 VkSampler sampler;
3712 VkImageView imageView;
3713 VkImageLayout imageLayout;
3714} VkDescriptorImageInfo;
3715
3716typedef struct VkDescriptorPoolSize {
3717 VkDescriptorType type;
3718 uint32_t descriptorCount;
3719} VkDescriptorPoolSize;
3720
3721typedef struct VkDescriptorPoolCreateInfo {
3722 VkStructureType sType;
3723 const void* pNext;
3724 VkDescriptorPoolCreateFlags flags;
3725 uint32_t maxSets;
3726 uint32_t poolSizeCount;
3727 const VkDescriptorPoolSize* pPoolSizes;
3728} VkDescriptorPoolCreateInfo;
3729
3730typedef struct VkDescriptorSetAllocateInfo {
3731 VkStructureType sType;
3732 const void* pNext;
3733 VkDescriptorPool descriptorPool;
3734 uint32_t descriptorSetCount;
3735 const VkDescriptorSetLayout* pSetLayouts;
3736} VkDescriptorSetAllocateInfo;
3737
3738typedef struct VkDescriptorSetLayoutBinding {
3739 uint32_t binding;
3740 VkDescriptorType descriptorType;
3741 uint32_t descriptorCount;
3742 VkShaderStageFlags stageFlags;
3743 const VkSampler* pImmutableSamplers;
3744} VkDescriptorSetLayoutBinding;
3745
3746typedef struct VkDescriptorSetLayoutCreateInfo {
3747 VkStructureType sType;
3748 const void* pNext;
3749 VkDescriptorSetLayoutCreateFlags flags;
3750 uint32_t bindingCount;
3751 const VkDescriptorSetLayoutBinding* pBindings;
3752} VkDescriptorSetLayoutCreateInfo;
3753
3754typedef struct VkWriteDescriptorSet {
3755 VkStructureType sType;
3756 const void* pNext;
3757 VkDescriptorSet dstSet;
3758 uint32_t dstBinding;
3759 uint32_t dstArrayElement;
3760 uint32_t descriptorCount;
3761 VkDescriptorType descriptorType;
3762 const VkDescriptorImageInfo* pImageInfo;
3763 const VkDescriptorBufferInfo* pBufferInfo;
3764 const VkBufferView* pTexelBufferView;
3765} VkWriteDescriptorSet;
3766
3767typedef struct VkAttachmentDescription {
3768 VkAttachmentDescriptionFlags flags;
3769 VkFormat format;
3770 VkSampleCountFlagBits samples;
3771 VkAttachmentLoadOp loadOp;
3772 VkAttachmentStoreOp storeOp;
3773 VkAttachmentLoadOp stencilLoadOp;
3774 VkAttachmentStoreOp stencilStoreOp;
3775 VkImageLayout initialLayout;
3776 VkImageLayout finalLayout;
3777} VkAttachmentDescription;
3778
3779typedef struct VkAttachmentReference {
3780 uint32_t attachment;
3781 VkImageLayout layout;
3782} VkAttachmentReference;
3783
3784typedef struct VkFramebufferCreateInfo {
3785 VkStructureType sType;
3786 const void* pNext;
3787 VkFramebufferCreateFlags flags;
3788 VkRenderPass renderPass;
3789 uint32_t attachmentCount;
3790 const VkImageView* pAttachments;
3791 uint32_t width;
3792 uint32_t height;
3793 uint32_t layers;
3794} VkFramebufferCreateInfo;
3795
3796typedef struct VkSubpassDescription {
3797 VkSubpassDescriptionFlags flags;
3798 VkPipelineBindPoint pipelineBindPoint;
3799 uint32_t inputAttachmentCount;
3800 const VkAttachmentReference* pInputAttachments;
3801 uint32_t colorAttachmentCount;
3802 const VkAttachmentReference* pColorAttachments;
3803 const VkAttachmentReference* pResolveAttachments;
3804 const VkAttachmentReference* pDepthStencilAttachment;
3805 uint32_t preserveAttachmentCount;
3806 const uint32_t* pPreserveAttachments;
3807} VkSubpassDescription;
3808
3809typedef struct VkSubpassDependency {
3810 uint32_t srcSubpass;
3811 uint32_t dstSubpass;
3812 VkPipelineStageFlags srcStageMask;
3813 VkPipelineStageFlags dstStageMask;
3814 VkAccessFlags srcAccessMask;
3815 VkAccessFlags dstAccessMask;
3816 VkDependencyFlags dependencyFlags;
3817} VkSubpassDependency;
3818
3819typedef struct VkRenderPassCreateInfo {
3820 VkStructureType sType;
3821 const void* pNext;
3822 VkRenderPassCreateFlags flags;
3823 uint32_t attachmentCount;
3824 const VkAttachmentDescription* pAttachments;
3825 uint32_t subpassCount;
3826 const VkSubpassDescription* pSubpasses;
3827 uint32_t dependencyCount;
3828 const VkSubpassDependency* pDependencies;
3829} VkRenderPassCreateInfo;
3830
3831typedef struct VkCommandPoolCreateInfo {
3832 VkStructureType sType;
3833 const void* pNext;
3834 VkCommandPoolCreateFlags flags;
3835 uint32_t queueFamilyIndex;
3836} VkCommandPoolCreateInfo;
3837
3838typedef struct VkCommandBufferAllocateInfo {
3839 VkStructureType sType;
3840 const void* pNext;
3841 VkCommandPool commandPool;
3842 VkCommandBufferLevel level;
3843 uint32_t commandBufferCount;
3844} VkCommandBufferAllocateInfo;
3845
3846typedef struct VkCommandBufferInheritanceInfo {
3847 VkStructureType sType;
3848 const void* pNext;
3849 VkRenderPass renderPass;
3850 uint32_t subpass;
3851 VkFramebuffer framebuffer;
3852 VkBool32 occlusionQueryEnable;
3853 VkQueryControlFlags queryFlags;
3854 VkQueryPipelineStatisticFlags pipelineStatistics;
3855} VkCommandBufferInheritanceInfo;
3856
3857typedef struct VkCommandBufferBeginInfo {
3858 VkStructureType sType;
3859 const void* pNext;
3860 VkCommandBufferUsageFlags flags;
3861 const VkCommandBufferInheritanceInfo* pInheritanceInfo;
3862} VkCommandBufferBeginInfo;
3863
3864typedef struct VkBufferCopy {
3865 VkDeviceSize srcOffset;
3866 VkDeviceSize dstOffset;
3867 VkDeviceSize size;
3868} VkBufferCopy;
3869
3870typedef struct VkImageSubresourceLayers {
3871 VkImageAspectFlags aspectMask;
3872 uint32_t mipLevel;
3873 uint32_t baseArrayLayer;
3874 uint32_t layerCount;
3875} VkImageSubresourceLayers;
3876
3877typedef struct VkBufferImageCopy {
3878 VkDeviceSize bufferOffset;
3879 uint32_t bufferRowLength;
3880 uint32_t bufferImageHeight;
3881 VkImageSubresourceLayers imageSubresource;
3882 VkOffset3D imageOffset;
3883 VkExtent3D imageExtent;
3884} VkBufferImageCopy;
3885
3886typedef union VkClearColorValue {
3887 float float32[4];
3888 int32_t int32[4];
3889 uint32_t uint32[4];
3890} VkClearColorValue;
3891
3892typedef struct VkClearDepthStencilValue {
3893 float depth;
3894 uint32_t stencil;
3895} VkClearDepthStencilValue;
3896
3897typedef union VkClearValue {
3898 VkClearColorValue color;
3899 VkClearDepthStencilValue depthStencil;
3900} VkClearValue;
3901
3902typedef struct VkClearAttachment {
3903 VkImageAspectFlags aspectMask;
3904 uint32_t colorAttachment;
3905 VkClearValue clearValue;
3906} VkClearAttachment;
3907
3908typedef struct VkClearRect {
3909 VkRect2D rect;
3910 uint32_t baseArrayLayer;
3911 uint32_t layerCount;
3912} VkClearRect;
3913
3914typedef struct VkImageBlit {
3915 VkImageSubresourceLayers srcSubresource;
3916 VkOffset3D srcOffsets[2];
3917 VkImageSubresourceLayers dstSubresource;
3918 VkOffset3D dstOffsets[2];
3919} VkImageBlit;
3920
3921typedef struct VkImageCopy {
3922 VkImageSubresourceLayers srcSubresource;
3923 VkOffset3D srcOffset;
3924 VkImageSubresourceLayers dstSubresource;
3925 VkOffset3D dstOffset;
3926 VkExtent3D extent;
3927} VkImageCopy;
3928
3929typedef struct VkImageResolve {
3930 VkImageSubresourceLayers srcSubresource;
3931 VkOffset3D srcOffset;
3932 VkImageSubresourceLayers dstSubresource;
3933 VkOffset3D dstOffset;
3934 VkExtent3D extent;
3935} VkImageResolve;
3936
3937typedef struct VkRenderPassBeginInfo {
3938 VkStructureType sType;
3939 const void* pNext;
3940 VkRenderPass renderPass;
3941 VkFramebuffer framebuffer;
3942 VkRect2D renderArea;
3943 uint32_t clearValueCount;
3944 const VkClearValue* pClearValues;
3945} VkRenderPassBeginInfo;
3946
3947typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
3948typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
3949typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
3950typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
3951typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
3952typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
3953typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
3954typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
3955typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
3956typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
3957typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
3958typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
3959typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
3960typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
3961typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
3962typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
3963typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
3964typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
3965typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
3966typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
3967typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
3968typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
3969typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
3970typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
3971typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
3972typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
3973typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
3974typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
3975typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
3976typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
3977typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
3978typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
3979typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
3980typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
3981typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
3982typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
3983typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
3984typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
3985typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
3986typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
3987typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
3988typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
3989typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
3990typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
3991typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
3992typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
3993typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
3994typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
3995typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
3996typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
3997typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
3998typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
3999typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
4000typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
4001typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
4002typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
4003typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
4004typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
4005typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
4006typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
4007typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
4008typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
4009typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
4010typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
4011typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
4012typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4013typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4014typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
4015typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
4016typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
4017typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
4018typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
4019typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
4020typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
4021typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
4022typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
4023typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
4024typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
4025typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
4026typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
4027typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
4028typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
4029typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
4030typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
4031typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
4032typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
4033typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
4034typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
4035typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
4036typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4037typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
4038typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
4039typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
4040typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
4041typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
4042typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
4043typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
4044typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
4045typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
4046typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
4047typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
4048typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
4049typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
4050typedef 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);
4051typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
4052typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
4053typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
4054typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
4055typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4056typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4057typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
4058typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
4059typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
4060typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
4061typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
4062typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4063typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4064typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
4065typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
4066typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4067typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4068typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
4069typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
4070typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4071typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4072typedef 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);
4073typedef 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);
4074typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
4075typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
4076typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
4077typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
4078typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
4079typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
4080typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
4081typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
4082typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
4083typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4084
4085#ifndef VK_NO_PROTOTYPES
4086VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
4087 const VkInstanceCreateInfo* pCreateInfo,
4088 const VkAllocationCallbacks* pAllocator,
4089 VkInstance* pInstance);
4090
4091VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
4092 VkInstance instance,
4093 const VkAllocationCallbacks* pAllocator);
4094
4095VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
4096 VkInstance instance,
4097 uint32_t* pPhysicalDeviceCount,
4098 VkPhysicalDevice* pPhysicalDevices);
4099
4100VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
4101 VkPhysicalDevice physicalDevice,
4102 VkPhysicalDeviceFeatures* pFeatures);
4103
4104VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
4105 VkPhysicalDevice physicalDevice,
4106 VkFormat format,
4107 VkFormatProperties* pFormatProperties);
4108
4109VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
4110 VkPhysicalDevice physicalDevice,
4111 VkFormat format,
4112 VkImageType type,
4113 VkImageTiling tiling,
4114 VkImageUsageFlags usage,
4115 VkImageCreateFlags flags,
4116 VkImageFormatProperties* pImageFormatProperties);
4117
4118VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
4119 VkPhysicalDevice physicalDevice,
4120 VkPhysicalDeviceProperties* pProperties);
4121
4122VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
4123 VkPhysicalDevice physicalDevice,
4124 uint32_t* pQueueFamilyPropertyCount,
4125 VkQueueFamilyProperties* pQueueFamilyProperties);
4126
4127VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
4128 VkPhysicalDevice physicalDevice,
4129 VkPhysicalDeviceMemoryProperties* pMemoryProperties);
4130
4131VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
4132 VkInstance instance,
4133 const char* pName);
4134
4135VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
4136 VkDevice device,
4137 const char* pName);
4138
4139VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
4140 VkPhysicalDevice physicalDevice,
4141 const VkDeviceCreateInfo* pCreateInfo,
4142 const VkAllocationCallbacks* pAllocator,
4143 VkDevice* pDevice);
4144
4145VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
4146 VkDevice device,
4147 const VkAllocationCallbacks* pAllocator);
4148
4149VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
4150 const char* pLayerName,
4151 uint32_t* pPropertyCount,
4152 VkExtensionProperties* pProperties);
4153
4154VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
4155 VkPhysicalDevice physicalDevice,
4156 const char* pLayerName,
4157 uint32_t* pPropertyCount,
4158 VkExtensionProperties* pProperties);
4159
4160VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
4161 uint32_t* pPropertyCount,
4162 VkLayerProperties* pProperties);
4163
4164VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
4165 VkPhysicalDevice physicalDevice,
4166 uint32_t* pPropertyCount,
4167 VkLayerProperties* pProperties);
4168
4169VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
4170 VkDevice device,
4171 uint32_t queueFamilyIndex,
4172 uint32_t queueIndex,
4173 VkQueue* pQueue);
4174
4175VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
4176 VkQueue queue,
4177 uint32_t submitCount,
4178 const VkSubmitInfo* pSubmits,
4179 VkFence fence);
4180
4181VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
4182 VkQueue queue);
4183
4184VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
4185 VkDevice device);
4186
4187VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
4188 VkDevice device,
4189 const VkMemoryAllocateInfo* pAllocateInfo,
4190 const VkAllocationCallbacks* pAllocator,
4191 VkDeviceMemory* pMemory);
4192
4193VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
4194 VkDevice device,
4195 VkDeviceMemory memory,
4196 const VkAllocationCallbacks* pAllocator);
4197
4198VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
4199 VkDevice device,
4200 VkDeviceMemory memory,
4201 VkDeviceSize offset,
4202 VkDeviceSize size,
4203 VkMemoryMapFlags flags,
4204 void** ppData);
4205
4206VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
4207 VkDevice device,
4208 VkDeviceMemory memory);
4209
4210VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
4211 VkDevice device,
4212 uint32_t memoryRangeCount,
4213 const VkMappedMemoryRange* pMemoryRanges);
4214
4215VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
4216 VkDevice device,
4217 uint32_t memoryRangeCount,
4218 const VkMappedMemoryRange* pMemoryRanges);
4219
4220VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
4221 VkDevice device,
4222 VkDeviceMemory memory,
4223 VkDeviceSize* pCommittedMemoryInBytes);
4224
4225VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
4226 VkDevice device,
4227 VkBuffer buffer,
4228 VkDeviceMemory memory,
4229 VkDeviceSize memoryOffset);
4230
4231VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
4232 VkDevice device,
4233 VkImage image,
4234 VkDeviceMemory memory,
4235 VkDeviceSize memoryOffset);
4236
4237VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
4238 VkDevice device,
4239 VkBuffer buffer,
4240 VkMemoryRequirements* pMemoryRequirements);
4241
4242VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
4243 VkDevice device,
4244 VkImage image,
4245 VkMemoryRequirements* pMemoryRequirements);
4246
4247VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
4248 VkDevice device,
4249 VkImage image,
4250 uint32_t* pSparseMemoryRequirementCount,
4251 VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
4252
4253VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
4254 VkPhysicalDevice physicalDevice,
4255 VkFormat format,
4256 VkImageType type,
4257 VkSampleCountFlagBits samples,
4258 VkImageUsageFlags usage,
4259 VkImageTiling tiling,
4260 uint32_t* pPropertyCount,
4261 VkSparseImageFormatProperties* pProperties);
4262
4263VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
4264 VkQueue queue,
4265 uint32_t bindInfoCount,
4266 const VkBindSparseInfo* pBindInfo,
4267 VkFence fence);
4268
4269VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
4270 VkDevice device,
4271 const VkFenceCreateInfo* pCreateInfo,
4272 const VkAllocationCallbacks* pAllocator,
4273 VkFence* pFence);
4274
4275VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
4276 VkDevice device,
4277 VkFence fence,
4278 const VkAllocationCallbacks* pAllocator);
4279
4280VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
4281 VkDevice device,
4282 uint32_t fenceCount,
4283 const VkFence* pFences);
4284
4285VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
4286 VkDevice device,
4287 VkFence fence);
4288
4289VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
4290 VkDevice device,
4291 uint32_t fenceCount,
4292 const VkFence* pFences,
4293 VkBool32 waitAll,
4294 uint64_t timeout);
4295
4296VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
4297 VkDevice device,
4298 const VkSemaphoreCreateInfo* pCreateInfo,
4299 const VkAllocationCallbacks* pAllocator,
4300 VkSemaphore* pSemaphore);
4301
4302VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
4303 VkDevice device,
4304 VkSemaphore semaphore,
4305 const VkAllocationCallbacks* pAllocator);
4306
4307VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
4308 VkDevice device,
4309 const VkEventCreateInfo* pCreateInfo,
4310 const VkAllocationCallbacks* pAllocator,
4311 VkEvent* pEvent);
4312
4313VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
4314 VkDevice device,
4315 VkEvent event,
4316 const VkAllocationCallbacks* pAllocator);
4317
4318VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
4319 VkDevice device,
4320 VkEvent event);
4321
4322VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
4323 VkDevice device,
4324 VkEvent event);
4325
4326VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
4327 VkDevice device,
4328 VkEvent event);
4329
4330VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
4331 VkDevice device,
4332 const VkQueryPoolCreateInfo* pCreateInfo,
4333 const VkAllocationCallbacks* pAllocator,
4334 VkQueryPool* pQueryPool);
4335
4336VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
4337 VkDevice device,
4338 VkQueryPool queryPool,
4339 const VkAllocationCallbacks* pAllocator);
4340
4341VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
4342 VkDevice device,
4343 VkQueryPool queryPool,
4344 uint32_t firstQuery,
4345 uint32_t queryCount,
4346 size_t dataSize,
4347 void* pData,
4348 VkDeviceSize stride,
4349 VkQueryResultFlags flags);
4350
4351VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
4352 VkDevice device,
4353 const VkBufferCreateInfo* pCreateInfo,
4354 const VkAllocationCallbacks* pAllocator,
4355 VkBuffer* pBuffer);
4356
4357VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
4358 VkDevice device,
4359 VkBuffer buffer,
4360 const VkAllocationCallbacks* pAllocator);
4361
4362VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
4363 VkDevice device,
4364 const VkBufferViewCreateInfo* pCreateInfo,
4365 const VkAllocationCallbacks* pAllocator,
4366 VkBufferView* pView);
4367
4368VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
4369 VkDevice device,
4370 VkBufferView bufferView,
4371 const VkAllocationCallbacks* pAllocator);
4372
4373VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
4374 VkDevice device,
4375 const VkImageCreateInfo* pCreateInfo,
4376 const VkAllocationCallbacks* pAllocator,
4377 VkImage* pImage);
4378
4379VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
4380 VkDevice device,
4381 VkImage image,
4382 const VkAllocationCallbacks* pAllocator);
4383
4384VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
4385 VkDevice device,
4386 VkImage image,
4387 const VkImageSubresource* pSubresource,
4388 VkSubresourceLayout* pLayout);
4389
4390VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
4391 VkDevice device,
4392 const VkImageViewCreateInfo* pCreateInfo,
4393 const VkAllocationCallbacks* pAllocator,
4394 VkImageView* pView);
4395
4396VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
4397 VkDevice device,
4398 VkImageView imageView,
4399 const VkAllocationCallbacks* pAllocator);
4400
4401VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
4402 VkDevice device,
4403 const VkShaderModuleCreateInfo* pCreateInfo,
4404 const VkAllocationCallbacks* pAllocator,
4405 VkShaderModule* pShaderModule);
4406
4407VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
4408 VkDevice device,
4409 VkShaderModule shaderModule,
4410 const VkAllocationCallbacks* pAllocator);
4411
4412VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
4413 VkDevice device,
4414 const VkPipelineCacheCreateInfo* pCreateInfo,
4415 const VkAllocationCallbacks* pAllocator,
4416 VkPipelineCache* pPipelineCache);
4417
4418VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
4419 VkDevice device,
4420 VkPipelineCache pipelineCache,
4421 const VkAllocationCallbacks* pAllocator);
4422
4423VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
4424 VkDevice device,
4425 VkPipelineCache pipelineCache,
4426 size_t* pDataSize,
4427 void* pData);
4428
4429VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
4430 VkDevice device,
4431 VkPipelineCache dstCache,
4432 uint32_t srcCacheCount,
4433 const VkPipelineCache* pSrcCaches);
4434
4435VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
4436 VkDevice device,
4437 VkPipelineCache pipelineCache,
4438 uint32_t createInfoCount,
4439 const VkGraphicsPipelineCreateInfo* pCreateInfos,
4440 const VkAllocationCallbacks* pAllocator,
4441 VkPipeline* pPipelines);
4442
4443VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
4444 VkDevice device,
4445 VkPipelineCache pipelineCache,
4446 uint32_t createInfoCount,
4447 const VkComputePipelineCreateInfo* pCreateInfos,
4448 const VkAllocationCallbacks* pAllocator,
4449 VkPipeline* pPipelines);
4450
4451VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
4452 VkDevice device,
4453 VkPipeline pipeline,
4454 const VkAllocationCallbacks* pAllocator);
4455
4456VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
4457 VkDevice device,
4458 const VkPipelineLayoutCreateInfo* pCreateInfo,
4459 const VkAllocationCallbacks* pAllocator,
4460 VkPipelineLayout* pPipelineLayout);
4461
4462VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
4463 VkDevice device,
4464 VkPipelineLayout pipelineLayout,
4465 const VkAllocationCallbacks* pAllocator);
4466
4467VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
4468 VkDevice device,
4469 const VkSamplerCreateInfo* pCreateInfo,
4470 const VkAllocationCallbacks* pAllocator,
4471 VkSampler* pSampler);
4472
4473VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
4474 VkDevice device,
4475 VkSampler sampler,
4476 const VkAllocationCallbacks* pAllocator);
4477
4478VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
4479 VkDevice device,
4480 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
4481 const VkAllocationCallbacks* pAllocator,
4482 VkDescriptorSetLayout* pSetLayout);
4483
4484VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
4485 VkDevice device,
4486 VkDescriptorSetLayout descriptorSetLayout,
4487 const VkAllocationCallbacks* pAllocator);
4488
4489VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
4490 VkDevice device,
4491 const VkDescriptorPoolCreateInfo* pCreateInfo,
4492 const VkAllocationCallbacks* pAllocator,
4493 VkDescriptorPool* pDescriptorPool);
4494
4495VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
4496 VkDevice device,
4497 VkDescriptorPool descriptorPool,
4498 const VkAllocationCallbacks* pAllocator);
4499
4500VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
4501 VkDevice device,
4502 VkDescriptorPool descriptorPool,
4503 VkDescriptorPoolResetFlags flags);
4504
4505VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
4506 VkDevice device,
4507 const VkDescriptorSetAllocateInfo* pAllocateInfo,
4508 VkDescriptorSet* pDescriptorSets);
4509
4510VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
4511 VkDevice device,
4512 VkDescriptorPool descriptorPool,
4513 uint32_t descriptorSetCount,
4514 const VkDescriptorSet* pDescriptorSets);
4515
4516VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
4517 VkDevice device,
4518 uint32_t descriptorWriteCount,
4519 const VkWriteDescriptorSet* pDescriptorWrites,
4520 uint32_t descriptorCopyCount,
4521 const VkCopyDescriptorSet* pDescriptorCopies);
4522
4523VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
4524 VkDevice device,
4525 const VkFramebufferCreateInfo* pCreateInfo,
4526 const VkAllocationCallbacks* pAllocator,
4527 VkFramebuffer* pFramebuffer);
4528
4529VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
4530 VkDevice device,
4531 VkFramebuffer framebuffer,
4532 const VkAllocationCallbacks* pAllocator);
4533
4534VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
4535 VkDevice device,
4536 const VkRenderPassCreateInfo* pCreateInfo,
4537 const VkAllocationCallbacks* pAllocator,
4538 VkRenderPass* pRenderPass);
4539
4540VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
4541 VkDevice device,
4542 VkRenderPass renderPass,
4543 const VkAllocationCallbacks* pAllocator);
4544
4545VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
4546 VkDevice device,
4547 VkRenderPass renderPass,
4548 VkExtent2D* pGranularity);
4549
4550VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
4551 VkDevice device,
4552 const VkCommandPoolCreateInfo* pCreateInfo,
4553 const VkAllocationCallbacks* pAllocator,
4554 VkCommandPool* pCommandPool);
4555
4556VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
4557 VkDevice device,
4558 VkCommandPool commandPool,
4559 const VkAllocationCallbacks* pAllocator);
4560
4561VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
4562 VkDevice device,
4563 VkCommandPool commandPool,
4564 VkCommandPoolResetFlags flags);
4565
4566VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
4567 VkDevice device,
4568 const VkCommandBufferAllocateInfo* pAllocateInfo,
4569 VkCommandBuffer* pCommandBuffers);
4570
4571VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
4572 VkDevice device,
4573 VkCommandPool commandPool,
4574 uint32_t commandBufferCount,
4575 const VkCommandBuffer* pCommandBuffers);
4576
4577VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
4578 VkCommandBuffer commandBuffer,
4579 const VkCommandBufferBeginInfo* pBeginInfo);
4580
4581VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
4582 VkCommandBuffer commandBuffer);
4583
4584VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
4585 VkCommandBuffer commandBuffer,
4586 VkCommandBufferResetFlags flags);
4587
4588VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
4589 VkCommandBuffer commandBuffer,
4590 VkPipelineBindPoint pipelineBindPoint,
4591 VkPipeline pipeline);
4592
4593VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
4594 VkCommandBuffer commandBuffer,
4595 uint32_t firstViewport,
4596 uint32_t viewportCount,
4597 const VkViewport* pViewports);
4598
4599VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
4600 VkCommandBuffer commandBuffer,
4601 uint32_t firstScissor,
4602 uint32_t scissorCount,
4603 const VkRect2D* pScissors);
4604
4605VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
4606 VkCommandBuffer commandBuffer,
4607 float lineWidth);
4608
4609VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
4610 VkCommandBuffer commandBuffer,
4611 float depthBiasConstantFactor,
4612 float depthBiasClamp,
4613 float depthBiasSlopeFactor);
4614
4615VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
4616 VkCommandBuffer commandBuffer,
4617 const float blendConstants[4]);
4618
4619VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
4620 VkCommandBuffer commandBuffer,
4621 float minDepthBounds,
4622 float maxDepthBounds);
4623
4624VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
4625 VkCommandBuffer commandBuffer,
4626 VkStencilFaceFlags faceMask,
4627 uint32_t compareMask);
4628
4629VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
4630 VkCommandBuffer commandBuffer,
4631 VkStencilFaceFlags faceMask,
4632 uint32_t writeMask);
4633
4634VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
4635 VkCommandBuffer commandBuffer,
4636 VkStencilFaceFlags faceMask,
4637 uint32_t reference);
4638
4639VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
4640 VkCommandBuffer commandBuffer,
4641 VkPipelineBindPoint pipelineBindPoint,
4642 VkPipelineLayout layout,
4643 uint32_t firstSet,
4644 uint32_t descriptorSetCount,
4645 const VkDescriptorSet* pDescriptorSets,
4646 uint32_t dynamicOffsetCount,
4647 const uint32_t* pDynamicOffsets);
4648
4649VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
4650 VkCommandBuffer commandBuffer,
4651 VkBuffer buffer,
4652 VkDeviceSize offset,
4653 VkIndexType indexType);
4654
4655VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
4656 VkCommandBuffer commandBuffer,
4657 uint32_t firstBinding,
4658 uint32_t bindingCount,
4659 const VkBuffer* pBuffers,
4660 const VkDeviceSize* pOffsets);
4661
4662VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
4663 VkCommandBuffer commandBuffer,
4664 uint32_t vertexCount,
4665 uint32_t instanceCount,
4666 uint32_t firstVertex,
4667 uint32_t firstInstance);
4668
4669VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
4670 VkCommandBuffer commandBuffer,
4671 uint32_t indexCount,
4672 uint32_t instanceCount,
4673 uint32_t firstIndex,
4674 int32_t vertexOffset,
4675 uint32_t firstInstance);
4676
4677VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
4678 VkCommandBuffer commandBuffer,
4679 VkBuffer buffer,
4680 VkDeviceSize offset,
4681 uint32_t drawCount,
4682 uint32_t stride);
4683
4684VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
4685 VkCommandBuffer commandBuffer,
4686 VkBuffer buffer,
4687 VkDeviceSize offset,
4688 uint32_t drawCount,
4689 uint32_t stride);
4690
4691VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
4692 VkCommandBuffer commandBuffer,
4693 uint32_t groupCountX,
4694 uint32_t groupCountY,
4695 uint32_t groupCountZ);
4696
4697VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
4698 VkCommandBuffer commandBuffer,
4699 VkBuffer buffer,
4700 VkDeviceSize offset);
4701
4702VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
4703 VkCommandBuffer commandBuffer,
4704 VkBuffer srcBuffer,
4705 VkBuffer dstBuffer,
4706 uint32_t regionCount,
4707 const VkBufferCopy* pRegions);
4708
4709VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
4710 VkCommandBuffer commandBuffer,
4711 VkImage srcImage,
4712 VkImageLayout srcImageLayout,
4713 VkImage dstImage,
4714 VkImageLayout dstImageLayout,
4715 uint32_t regionCount,
4716 const VkImageCopy* pRegions);
4717
4718VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
4719 VkCommandBuffer commandBuffer,
4720 VkImage srcImage,
4721 VkImageLayout srcImageLayout,
4722 VkImage dstImage,
4723 VkImageLayout dstImageLayout,
4724 uint32_t regionCount,
4725 const VkImageBlit* pRegions,
4726 VkFilter filter);
4727
4728VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
4729 VkCommandBuffer commandBuffer,
4730 VkBuffer srcBuffer,
4731 VkImage dstImage,
4732 VkImageLayout dstImageLayout,
4733 uint32_t regionCount,
4734 const VkBufferImageCopy* pRegions);
4735
4736VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
4737 VkCommandBuffer commandBuffer,
4738 VkImage srcImage,
4739 VkImageLayout srcImageLayout,
4740 VkBuffer dstBuffer,
4741 uint32_t regionCount,
4742 const VkBufferImageCopy* pRegions);
4743
4744VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
4745 VkCommandBuffer commandBuffer,
4746 VkBuffer dstBuffer,
4747 VkDeviceSize dstOffset,
4748 VkDeviceSize dataSize,
4749 const void* pData);
4750
4751VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
4752 VkCommandBuffer commandBuffer,
4753 VkBuffer dstBuffer,
4754 VkDeviceSize dstOffset,
4755 VkDeviceSize size,
4756 uint32_t data);
4757
4758VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
4759 VkCommandBuffer commandBuffer,
4760 VkImage image,
4761 VkImageLayout imageLayout,
4762 const VkClearColorValue* pColor,
4763 uint32_t rangeCount,
4764 const VkImageSubresourceRange* pRanges);
4765
4766VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
4767 VkCommandBuffer commandBuffer,
4768 VkImage image,
4769 VkImageLayout imageLayout,
4770 const VkClearDepthStencilValue* pDepthStencil,
4771 uint32_t rangeCount,
4772 const VkImageSubresourceRange* pRanges);
4773
4774VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
4775 VkCommandBuffer commandBuffer,
4776 uint32_t attachmentCount,
4777 const VkClearAttachment* pAttachments,
4778 uint32_t rectCount,
4779 const VkClearRect* pRects);
4780
4781VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
4782 VkCommandBuffer commandBuffer,
4783 VkImage srcImage,
4784 VkImageLayout srcImageLayout,
4785 VkImage dstImage,
4786 VkImageLayout dstImageLayout,
4787 uint32_t regionCount,
4788 const VkImageResolve* pRegions);
4789
4790VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
4791 VkCommandBuffer commandBuffer,
4792 VkEvent event,
4793 VkPipelineStageFlags stageMask);
4794
4795VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
4796 VkCommandBuffer commandBuffer,
4797 VkEvent event,
4798 VkPipelineStageFlags stageMask);
4799
4800VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
4801 VkCommandBuffer commandBuffer,
4802 uint32_t eventCount,
4803 const VkEvent* pEvents,
4804 VkPipelineStageFlags srcStageMask,
4805 VkPipelineStageFlags dstStageMask,
4806 uint32_t memoryBarrierCount,
4807 const VkMemoryBarrier* pMemoryBarriers,
4808 uint32_t bufferMemoryBarrierCount,
4809 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
4810 uint32_t imageMemoryBarrierCount,
4811 const VkImageMemoryBarrier* pImageMemoryBarriers);
4812
4813VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
4814 VkCommandBuffer commandBuffer,
4815 VkPipelineStageFlags srcStageMask,
4816 VkPipelineStageFlags dstStageMask,
4817 VkDependencyFlags dependencyFlags,
4818 uint32_t memoryBarrierCount,
4819 const VkMemoryBarrier* pMemoryBarriers,
4820 uint32_t bufferMemoryBarrierCount,
4821 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
4822 uint32_t imageMemoryBarrierCount,
4823 const VkImageMemoryBarrier* pImageMemoryBarriers);
4824
4825VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
4826 VkCommandBuffer commandBuffer,
4827 VkQueryPool queryPool,
4828 uint32_t query,
4829 VkQueryControlFlags flags);
4830
4831VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
4832 VkCommandBuffer commandBuffer,
4833 VkQueryPool queryPool,
4834 uint32_t query);
4835
4836VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
4837 VkCommandBuffer commandBuffer,
4838 VkQueryPool queryPool,
4839 uint32_t firstQuery,
4840 uint32_t queryCount);
4841
4842VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
4843 VkCommandBuffer commandBuffer,
4844 VkPipelineStageFlagBits pipelineStage,
4845 VkQueryPool queryPool,
4846 uint32_t query);
4847
4848VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
4849 VkCommandBuffer commandBuffer,
4850 VkQueryPool queryPool,
4851 uint32_t firstQuery,
4852 uint32_t queryCount,
4853 VkBuffer dstBuffer,
4854 VkDeviceSize dstOffset,
4855 VkDeviceSize stride,
4856 VkQueryResultFlags flags);
4857
4858VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
4859 VkCommandBuffer commandBuffer,
4860 VkPipelineLayout layout,
4861 VkShaderStageFlags stageFlags,
4862 uint32_t offset,
4863 uint32_t size,
4864 const void* pValues);
4865
4866VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
4867 VkCommandBuffer commandBuffer,
4868 const VkRenderPassBeginInfo* pRenderPassBegin,
4869 VkSubpassContents contents);
4870
4871VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
4872 VkCommandBuffer commandBuffer,
4873 VkSubpassContents contents);
4874
4875VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
4876 VkCommandBuffer commandBuffer);
4877
4878VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
4879 VkCommandBuffer commandBuffer,
4880 uint32_t commandBufferCount,
4881 const VkCommandBuffer* pCommandBuffers);
4882#endif
4883
4884
4885// VK_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
4886#define VK_VERSION_1_1 1
4887// Vulkan 1.1 version number
4888#define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
4889
4890VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
4891VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
4892#define VK_MAX_DEVICE_GROUP_SIZE 32U
4893#define VK_LUID_SIZE 8U
4894#define VK_QUEUE_FAMILY_EXTERNAL (~1U)
4895
4896typedef enum VkPointClippingBehavior {
4897 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
4898 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
4899 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
4900 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
4901 VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
4902} VkPointClippingBehavior;
4903
4904typedef enum VkTessellationDomainOrigin {
4905 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
4906 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
4907 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
4908 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
4909 VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
4910} VkTessellationDomainOrigin;
4911
4912typedef enum VkSamplerYcbcrModelConversion {
4913 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
4914 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
4915 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
4916 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
4917 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
4918 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
4919 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
4920 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
4921 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
4922 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
4923 VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
4924} VkSamplerYcbcrModelConversion;
4925
4926typedef enum VkSamplerYcbcrRange {
4927 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
4928 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
4929 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
4930 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
4931 VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
4932} VkSamplerYcbcrRange;
4933
4934typedef enum VkChromaLocation {
4935 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
4936 VK_CHROMA_LOCATION_MIDPOINT = 1,
4937 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
4938 VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
4939 VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
4940} VkChromaLocation;
4941
4942typedef enum VkDescriptorUpdateTemplateType {
4943 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
4944 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
4945 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
4946 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
4947} VkDescriptorUpdateTemplateType;
4948
4949typedef enum VkSubgroupFeatureFlagBits {
4950 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
4951 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
4952 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
4953 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
4954 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
4955 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
4956 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
4957 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
4958 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
4959 VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR = 0x00000200,
4960 VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR = 0x00000400,
4961 VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4962} VkSubgroupFeatureFlagBits;
4963typedef VkFlags VkSubgroupFeatureFlags;
4964
4965typedef enum VkPeerMemoryFeatureFlagBits {
4966 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
4967 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
4968 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
4969 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
4970 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
4971 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
4972 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
4973 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
4974 VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4975} VkPeerMemoryFeatureFlagBits;
4976typedef VkFlags VkPeerMemoryFeatureFlags;
4977
4978typedef enum VkMemoryAllocateFlagBits {
4979 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
4980 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
4981 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
4982 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
4983 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
4984 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
4985 VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4986} VkMemoryAllocateFlagBits;
4987typedef VkFlags VkMemoryAllocateFlags;
4988typedef VkFlags VkCommandPoolTrimFlags;
4989typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
4990
4991typedef enum VkExternalMemoryHandleTypeFlagBits {
4992 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
4993 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
4994 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
4995 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
4996 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
4997 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
4998 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
4999 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
5000 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
5001 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
5002 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
5003 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
5004 VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
5005 VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000,
5006 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
5007 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5008 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5009 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
5010 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
5011 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
5012 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
5013 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5014} VkExternalMemoryHandleTypeFlagBits;
5015typedef VkFlags VkExternalMemoryHandleTypeFlags;
5016
5017typedef enum VkExternalMemoryFeatureFlagBits {
5018 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
5019 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
5020 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
5021 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5022 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5023 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
5024 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5025} VkExternalMemoryFeatureFlagBits;
5026typedef VkFlags VkExternalMemoryFeatureFlags;
5027
5028typedef enum VkExternalFenceHandleTypeFlagBits {
5029 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5030 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5031 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5032 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
5033 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5034 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5035 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5036 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
5037 VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5038} VkExternalFenceHandleTypeFlagBits;
5039typedef VkFlags VkExternalFenceHandleTypeFlags;
5040
5041typedef enum VkExternalFenceFeatureFlagBits {
5042 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5043 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5044 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5045 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
5046 VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5047} VkExternalFenceFeatureFlagBits;
5048typedef VkFlags VkExternalFenceFeatureFlags;
5049
5050typedef enum VkFenceImportFlagBits {
5051 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
5052 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
5053 VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5054} VkFenceImportFlagBits;
5055typedef VkFlags VkFenceImportFlags;
5056
5057typedef enum VkSemaphoreImportFlagBits {
5058 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
5059 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
5060 VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5061} VkSemaphoreImportFlagBits;
5062typedef VkFlags VkSemaphoreImportFlags;
5063
5064typedef enum VkExternalSemaphoreHandleTypeFlagBits {
5065 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5066 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5067 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5068 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
5069 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
5070 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080,
5071 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5072 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5073 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5074 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5075 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5076 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5077 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5078} VkExternalSemaphoreHandleTypeFlagBits;
5079typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
5080
5081typedef enum VkExternalSemaphoreFeatureFlagBits {
5082 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5083 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5084 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5085 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
5086 VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5087} VkExternalSemaphoreFeatureFlagBits;
5088typedef VkFlags VkExternalSemaphoreFeatureFlags;
5089typedef struct VkPhysicalDeviceSubgroupProperties {
5090 VkStructureType sType;
5091 void* pNext;
5092 uint32_t subgroupSize;
5093 VkShaderStageFlags supportedStages;
5094 VkSubgroupFeatureFlags supportedOperations;
5095 VkBool32 quadOperationsInAllStages;
5096} VkPhysicalDeviceSubgroupProperties;
5097
5098typedef struct VkBindBufferMemoryInfo {
5099 VkStructureType sType;
5100 const void* pNext;
5101 VkBuffer buffer;
5102 VkDeviceMemory memory;
5103 VkDeviceSize memoryOffset;
5104} VkBindBufferMemoryInfo;
5105
5106typedef struct VkBindImageMemoryInfo {
5107 VkStructureType sType;
5108 const void* pNext;
5109 VkImage image;
5110 VkDeviceMemory memory;
5111 VkDeviceSize memoryOffset;
5112} VkBindImageMemoryInfo;
5113
5114typedef struct VkPhysicalDevice16BitStorageFeatures {
5115 VkStructureType sType;
5116 void* pNext;
5117 VkBool32 storageBuffer16BitAccess;
5118 VkBool32 uniformAndStorageBuffer16BitAccess;
5119 VkBool32 storagePushConstant16;
5120 VkBool32 storageInputOutput16;
5121} VkPhysicalDevice16BitStorageFeatures;
5122
5123typedef struct VkMemoryDedicatedRequirements {
5124 VkStructureType sType;
5125 void* pNext;
5126 VkBool32 prefersDedicatedAllocation;
5127 VkBool32 requiresDedicatedAllocation;
5128} VkMemoryDedicatedRequirements;
5129
5130typedef struct VkMemoryDedicatedAllocateInfo {
5131 VkStructureType sType;
5132 const void* pNext;
5133 VkImage image;
5134 VkBuffer buffer;
5135} VkMemoryDedicatedAllocateInfo;
5136
5137typedef struct VkMemoryAllocateFlagsInfo {
5138 VkStructureType sType;
5139 const void* pNext;
5140 VkMemoryAllocateFlags flags;
5141 uint32_t deviceMask;
5142} VkMemoryAllocateFlagsInfo;
5143
5144typedef struct VkDeviceGroupRenderPassBeginInfo {
5145 VkStructureType sType;
5146 const void* pNext;
5147 uint32_t deviceMask;
5148 uint32_t deviceRenderAreaCount;
5149 const VkRect2D* pDeviceRenderAreas;
5150} VkDeviceGroupRenderPassBeginInfo;
5151
5152typedef struct VkDeviceGroupCommandBufferBeginInfo {
5153 VkStructureType sType;
5154 const void* pNext;
5155 uint32_t deviceMask;
5156} VkDeviceGroupCommandBufferBeginInfo;
5157
5158typedef struct VkDeviceGroupSubmitInfo {
5159 VkStructureType sType;
5160 const void* pNext;
5161 uint32_t waitSemaphoreCount;
5162 const uint32_t* pWaitSemaphoreDeviceIndices;
5163 uint32_t commandBufferCount;
5164 const uint32_t* pCommandBufferDeviceMasks;
5165 uint32_t signalSemaphoreCount;
5166 const uint32_t* pSignalSemaphoreDeviceIndices;
5167} VkDeviceGroupSubmitInfo;
5168
5169typedef struct VkDeviceGroupBindSparseInfo {
5170 VkStructureType sType;
5171 const void* pNext;
5172 uint32_t resourceDeviceIndex;
5173 uint32_t memoryDeviceIndex;
5174} VkDeviceGroupBindSparseInfo;
5175
5176typedef struct VkBindBufferMemoryDeviceGroupInfo {
5177 VkStructureType sType;
5178 const void* pNext;
5179 uint32_t deviceIndexCount;
5180 const uint32_t* pDeviceIndices;
5181} VkBindBufferMemoryDeviceGroupInfo;
5182
5183typedef struct VkBindImageMemoryDeviceGroupInfo {
5184 VkStructureType sType;
5185 const void* pNext;
5186 uint32_t deviceIndexCount;
5187 const uint32_t* pDeviceIndices;
5188 uint32_t splitInstanceBindRegionCount;
5189 const VkRect2D* pSplitInstanceBindRegions;
5190} VkBindImageMemoryDeviceGroupInfo;
5191
5192typedef struct VkPhysicalDeviceGroupProperties {
5193 VkStructureType sType;
5194 void* pNext;
5195 uint32_t physicalDeviceCount;
5196 VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
5197 VkBool32 subsetAllocation;
5198} VkPhysicalDeviceGroupProperties;
5199
5200typedef struct VkDeviceGroupDeviceCreateInfo {
5201 VkStructureType sType;
5202 const void* pNext;
5203 uint32_t physicalDeviceCount;
5204 const VkPhysicalDevice* pPhysicalDevices;
5205} VkDeviceGroupDeviceCreateInfo;
5206
5207typedef struct VkBufferMemoryRequirementsInfo2 {
5208 VkStructureType sType;
5209 const void* pNext;
5210 VkBuffer buffer;
5211} VkBufferMemoryRequirementsInfo2;
5212
5213typedef struct VkImageMemoryRequirementsInfo2 {
5214 VkStructureType sType;
5215 const void* pNext;
5216 VkImage image;
5217} VkImageMemoryRequirementsInfo2;
5218
5219typedef struct VkImageSparseMemoryRequirementsInfo2 {
5220 VkStructureType sType;
5221 const void* pNext;
5222 VkImage image;
5223} VkImageSparseMemoryRequirementsInfo2;
5224
5225typedef struct VkMemoryRequirements2 {
5226 VkStructureType sType;
5227 void* pNext;
5228 VkMemoryRequirements memoryRequirements;
5229} VkMemoryRequirements2;
5230
5231typedef struct VkSparseImageMemoryRequirements2 {
5232 VkStructureType sType;
5233 void* pNext;
5234 VkSparseImageMemoryRequirements memoryRequirements;
5235} VkSparseImageMemoryRequirements2;
5236
5237typedef struct VkPhysicalDeviceFeatures2 {
5238 VkStructureType sType;
5239 void* pNext;
5240 VkPhysicalDeviceFeatures features;
5241} VkPhysicalDeviceFeatures2;
5242
5243typedef struct VkPhysicalDeviceProperties2 {
5244 VkStructureType sType;
5245 void* pNext;
5246 VkPhysicalDeviceProperties properties;
5247} VkPhysicalDeviceProperties2;
5248
5249typedef struct VkFormatProperties2 {
5250 VkStructureType sType;
5251 void* pNext;
5252 VkFormatProperties formatProperties;
5253} VkFormatProperties2;
5254
5255typedef struct VkImageFormatProperties2 {
5256 VkStructureType sType;
5257 void* pNext;
5258 VkImageFormatProperties imageFormatProperties;
5259} VkImageFormatProperties2;
5260
5261typedef struct VkPhysicalDeviceImageFormatInfo2 {
5262 VkStructureType sType;
5263 const void* pNext;
5264 VkFormat format;
5265 VkImageType type;
5266 VkImageTiling tiling;
5267 VkImageUsageFlags usage;
5268 VkImageCreateFlags flags;
5269} VkPhysicalDeviceImageFormatInfo2;
5270
5271typedef struct VkQueueFamilyProperties2 {
5272 VkStructureType sType;
5273 void* pNext;
5274 VkQueueFamilyProperties queueFamilyProperties;
5275} VkQueueFamilyProperties2;
5276
5277typedef struct VkPhysicalDeviceMemoryProperties2 {
5278 VkStructureType sType;
5279 void* pNext;
5280 VkPhysicalDeviceMemoryProperties memoryProperties;
5281} VkPhysicalDeviceMemoryProperties2;
5282
5283typedef struct VkSparseImageFormatProperties2 {
5284 VkStructureType sType;
5285 void* pNext;
5286 VkSparseImageFormatProperties properties;
5287} VkSparseImageFormatProperties2;
5288
5289typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
5290 VkStructureType sType;
5291 const void* pNext;
5292 VkFormat format;
5293 VkImageType type;
5294 VkSampleCountFlagBits samples;
5295 VkImageUsageFlags usage;
5296 VkImageTiling tiling;
5297} VkPhysicalDeviceSparseImageFormatInfo2;
5298
5299typedef struct VkPhysicalDevicePointClippingProperties {
5300 VkStructureType sType;
5301 void* pNext;
5302 VkPointClippingBehavior pointClippingBehavior;
5303} VkPhysicalDevicePointClippingProperties;
5304
5305typedef struct VkInputAttachmentAspectReference {
5306 uint32_t subpass;
5307 uint32_t inputAttachmentIndex;
5308 VkImageAspectFlags aspectMask;
5309} VkInputAttachmentAspectReference;
5310
5311typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
5312 VkStructureType sType;
5313 const void* pNext;
5314 uint32_t aspectReferenceCount;
5315 const VkInputAttachmentAspectReference* pAspectReferences;
5316} VkRenderPassInputAttachmentAspectCreateInfo;
5317
5318typedef struct VkImageViewUsageCreateInfo {
5319 VkStructureType sType;
5320 const void* pNext;
5321 VkImageUsageFlags usage;
5322} VkImageViewUsageCreateInfo;
5323
5324typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
5325 VkStructureType sType;
5326 const void* pNext;
5327 VkTessellationDomainOrigin domainOrigin;
5328} VkPipelineTessellationDomainOriginStateCreateInfo;
5329
5330typedef struct VkRenderPassMultiviewCreateInfo {
5331 VkStructureType sType;
5332 const void* pNext;
5333 uint32_t subpassCount;
5334 const uint32_t* pViewMasks;
5335 uint32_t dependencyCount;
5336 const int32_t* pViewOffsets;
5337 uint32_t correlationMaskCount;
5338 const uint32_t* pCorrelationMasks;
5339} VkRenderPassMultiviewCreateInfo;
5340
5341typedef struct VkPhysicalDeviceMultiviewFeatures {
5342 VkStructureType sType;
5343 void* pNext;
5344 VkBool32 multiview;
5345 VkBool32 multiviewGeometryShader;
5346 VkBool32 multiviewTessellationShader;
5347} VkPhysicalDeviceMultiviewFeatures;
5348
5349typedef struct VkPhysicalDeviceMultiviewProperties {
5350 VkStructureType sType;
5351 void* pNext;
5352 uint32_t maxMultiviewViewCount;
5353 uint32_t maxMultiviewInstanceIndex;
5354} VkPhysicalDeviceMultiviewProperties;
5355
5356typedef struct VkPhysicalDeviceVariablePointersFeatures {
5357 VkStructureType sType;
5358 void* pNext;
5359 VkBool32 variablePointersStorageBuffer;
5360 VkBool32 variablePointers;
5361} VkPhysicalDeviceVariablePointersFeatures;
5362
5363typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
5364
5365typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
5366 VkStructureType sType;
5367 void* pNext;
5368 VkBool32 protectedMemory;
5369} VkPhysicalDeviceProtectedMemoryFeatures;
5370
5371typedef struct VkPhysicalDeviceProtectedMemoryProperties {
5372 VkStructureType sType;
5373 void* pNext;
5374 VkBool32 protectedNoFault;
5375} VkPhysicalDeviceProtectedMemoryProperties;
5376
5377typedef struct VkDeviceQueueInfo2 {
5378 VkStructureType sType;
5379 const void* pNext;
5380 VkDeviceQueueCreateFlags flags;
5381 uint32_t queueFamilyIndex;
5382 uint32_t queueIndex;
5383} VkDeviceQueueInfo2;
5384
5385typedef struct VkProtectedSubmitInfo {
5386 VkStructureType sType;
5387 const void* pNext;
5388 VkBool32 protectedSubmit;
5389} VkProtectedSubmitInfo;
5390
5391typedef struct VkSamplerYcbcrConversionCreateInfo {
5392 VkStructureType sType;
5393 const void* pNext;
5394 VkFormat format;
5395 VkSamplerYcbcrModelConversion ycbcrModel;
5396 VkSamplerYcbcrRange ycbcrRange;
5397 VkComponentMapping components;
5398 VkChromaLocation xChromaOffset;
5399 VkChromaLocation yChromaOffset;
5400 VkFilter chromaFilter;
5401 VkBool32 forceExplicitReconstruction;
5402} VkSamplerYcbcrConversionCreateInfo;
5403
5404typedef struct VkSamplerYcbcrConversionInfo {
5405 VkStructureType sType;
5406 const void* pNext;
5407 VkSamplerYcbcrConversion conversion;
5408} VkSamplerYcbcrConversionInfo;
5409
5410typedef struct VkBindImagePlaneMemoryInfo {
5411 VkStructureType sType;
5412 const void* pNext;
5413 VkImageAspectFlagBits planeAspect;
5414} VkBindImagePlaneMemoryInfo;
5415
5416typedef struct VkImagePlaneMemoryRequirementsInfo {
5417 VkStructureType sType;
5418 const void* pNext;
5419 VkImageAspectFlagBits planeAspect;
5420} VkImagePlaneMemoryRequirementsInfo;
5421
5422typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
5423 VkStructureType sType;
5424 void* pNext;
5425 VkBool32 samplerYcbcrConversion;
5426} VkPhysicalDeviceSamplerYcbcrConversionFeatures;
5427
5428typedef struct VkSamplerYcbcrConversionImageFormatProperties {
5429 VkStructureType sType;
5430 void* pNext;
5431 uint32_t combinedImageSamplerDescriptorCount;
5432} VkSamplerYcbcrConversionImageFormatProperties;
5433
5434typedef struct VkDescriptorUpdateTemplateEntry {
5435 uint32_t dstBinding;
5436 uint32_t dstArrayElement;
5437 uint32_t descriptorCount;
5438 VkDescriptorType descriptorType;
5439 size_t offset;
5440 size_t stride;
5441} VkDescriptorUpdateTemplateEntry;
5442
5443typedef struct VkDescriptorUpdateTemplateCreateInfo {
5444 VkStructureType sType;
5445 const void* pNext;
5446 VkDescriptorUpdateTemplateCreateFlags flags;
5447 uint32_t descriptorUpdateEntryCount;
5448 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries;
5449 VkDescriptorUpdateTemplateType templateType;
5450 VkDescriptorSetLayout descriptorSetLayout;
5451 VkPipelineBindPoint pipelineBindPoint;
5452 VkPipelineLayout pipelineLayout;
5453 uint32_t set;
5454} VkDescriptorUpdateTemplateCreateInfo;
5455
5456typedef struct VkExternalMemoryProperties {
5457 VkExternalMemoryFeatureFlags externalMemoryFeatures;
5458 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
5459 VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
5460} VkExternalMemoryProperties;
5461
5462typedef struct VkPhysicalDeviceExternalImageFormatInfo {
5463 VkStructureType sType;
5464 const void* pNext;
5465 VkExternalMemoryHandleTypeFlagBits handleType;
5466} VkPhysicalDeviceExternalImageFormatInfo;
5467
5468typedef struct VkExternalImageFormatProperties {
5469 VkStructureType sType;
5470 void* pNext;
5471 VkExternalMemoryProperties externalMemoryProperties;
5472} VkExternalImageFormatProperties;
5473
5474typedef struct VkPhysicalDeviceExternalBufferInfo {
5475 VkStructureType sType;
5476 const void* pNext;
5477 VkBufferCreateFlags flags;
5478 VkBufferUsageFlags usage;
5479 VkExternalMemoryHandleTypeFlagBits handleType;
5480} VkPhysicalDeviceExternalBufferInfo;
5481
5482typedef struct VkExternalBufferProperties {
5483 VkStructureType sType;
5484 void* pNext;
5485 VkExternalMemoryProperties externalMemoryProperties;
5486} VkExternalBufferProperties;
5487
5488typedef struct VkPhysicalDeviceIDProperties {
5489 VkStructureType sType;
5490 void* pNext;
5491 uint8_t deviceUUID[VK_UUID_SIZE];
5492 uint8_t driverUUID[VK_UUID_SIZE];
5493 uint8_t deviceLUID[VK_LUID_SIZE];
5494 uint32_t deviceNodeMask;
5495 VkBool32 deviceLUIDValid;
5496} VkPhysicalDeviceIDProperties;
5497
5498typedef struct VkExternalMemoryImageCreateInfo {
5499 VkStructureType sType;
5500 const void* pNext;
5501 VkExternalMemoryHandleTypeFlags handleTypes;
5502} VkExternalMemoryImageCreateInfo;
5503
5504typedef struct VkExternalMemoryBufferCreateInfo {
5505 VkStructureType sType;
5506 const void* pNext;
5507 VkExternalMemoryHandleTypeFlags handleTypes;
5508} VkExternalMemoryBufferCreateInfo;
5509
5510typedef struct VkExportMemoryAllocateInfo {
5511 VkStructureType sType;
5512 const void* pNext;
5513 VkExternalMemoryHandleTypeFlags handleTypes;
5514} VkExportMemoryAllocateInfo;
5515
5516typedef struct VkPhysicalDeviceExternalFenceInfo {
5517 VkStructureType sType;
5518 const void* pNext;
5519 VkExternalFenceHandleTypeFlagBits handleType;
5520} VkPhysicalDeviceExternalFenceInfo;
5521
5522typedef struct VkExternalFenceProperties {
5523 VkStructureType sType;
5524 void* pNext;
5525 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
5526 VkExternalFenceHandleTypeFlags compatibleHandleTypes;
5527 VkExternalFenceFeatureFlags externalFenceFeatures;
5528} VkExternalFenceProperties;
5529
5530typedef struct VkExportFenceCreateInfo {
5531 VkStructureType sType;
5532 const void* pNext;
5533 VkExternalFenceHandleTypeFlags handleTypes;
5534} VkExportFenceCreateInfo;
5535
5536typedef struct VkExportSemaphoreCreateInfo {
5537 VkStructureType sType;
5538 const void* pNext;
5539 VkExternalSemaphoreHandleTypeFlags handleTypes;
5540} VkExportSemaphoreCreateInfo;
5541
5542typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
5543 VkStructureType sType;
5544 const void* pNext;
5545 VkExternalSemaphoreHandleTypeFlagBits handleType;
5546} VkPhysicalDeviceExternalSemaphoreInfo;
5547
5548typedef struct VkExternalSemaphoreProperties {
5549 VkStructureType sType;
5550 void* pNext;
5551 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
5552 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
5553 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
5554} VkExternalSemaphoreProperties;
5555
5556typedef struct VkPhysicalDeviceMaintenance3Properties {
5557 VkStructureType sType;
5558 void* pNext;
5559 uint32_t maxPerSetDescriptors;
5560 VkDeviceSize maxMemoryAllocationSize;
5561} VkPhysicalDeviceMaintenance3Properties;
5562
5563typedef struct VkDescriptorSetLayoutSupport {
5564 VkStructureType sType;
5565 void* pNext;
5566 VkBool32 supported;
5567} VkDescriptorSetLayoutSupport;
5568
5569typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
5570 VkStructureType sType;
5571 void* pNext;
5572 VkBool32 shaderDrawParameters;
5573} VkPhysicalDeviceShaderDrawParametersFeatures;
5574
5575typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
5576
5577typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
5578typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
5579typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
5580typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
5581typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
5582typedef 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);
5583typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
5584typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5585typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5586typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
5587typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
5588typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
5589typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
5590typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
5591typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
5592typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
5593typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
5594typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
5595typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
5596typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
5597typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
5598typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
5599typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
5600typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
5601typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
5602typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
5603typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
5604typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
5605
5606#ifndef VK_NO_PROTOTYPES
5607VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
5608 uint32_t* pApiVersion);
5609
5610VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
5611 VkDevice device,
5612 uint32_t bindInfoCount,
5613 const VkBindBufferMemoryInfo* pBindInfos);
5614
5615VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
5616 VkDevice device,
5617 uint32_t bindInfoCount,
5618 const VkBindImageMemoryInfo* pBindInfos);
5619
5620VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
5621 VkDevice device,
5622 uint32_t heapIndex,
5623 uint32_t localDeviceIndex,
5624 uint32_t remoteDeviceIndex,
5625 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
5626
5627VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
5628 VkCommandBuffer commandBuffer,
5629 uint32_t deviceMask);
5630
5631VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
5632 VkCommandBuffer commandBuffer,
5633 uint32_t baseGroupX,
5634 uint32_t baseGroupY,
5635 uint32_t baseGroupZ,
5636 uint32_t groupCountX,
5637 uint32_t groupCountY,
5638 uint32_t groupCountZ);
5639
5640VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
5641 VkInstance instance,
5642 uint32_t* pPhysicalDeviceGroupCount,
5643 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
5644
5645VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
5646 VkDevice device,
5647 const VkImageMemoryRequirementsInfo2* pInfo,
5648 VkMemoryRequirements2* pMemoryRequirements);
5649
5650VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
5651 VkDevice device,
5652 const VkBufferMemoryRequirementsInfo2* pInfo,
5653 VkMemoryRequirements2* pMemoryRequirements);
5654
5655VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
5656 VkDevice device,
5657 const VkImageSparseMemoryRequirementsInfo2* pInfo,
5658 uint32_t* pSparseMemoryRequirementCount,
5659 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
5660
5661VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
5662 VkPhysicalDevice physicalDevice,
5663 VkPhysicalDeviceFeatures2* pFeatures);
5664
5665VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
5666 VkPhysicalDevice physicalDevice,
5667 VkPhysicalDeviceProperties2* pProperties);
5668
5669VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
5670 VkPhysicalDevice physicalDevice,
5671 VkFormat format,
5672 VkFormatProperties2* pFormatProperties);
5673
5674VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
5675 VkPhysicalDevice physicalDevice,
5676 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
5677 VkImageFormatProperties2* pImageFormatProperties);
5678
5679VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
5680 VkPhysicalDevice physicalDevice,
5681 uint32_t* pQueueFamilyPropertyCount,
5682 VkQueueFamilyProperties2* pQueueFamilyProperties);
5683
5684VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
5685 VkPhysicalDevice physicalDevice,
5686 VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
5687
5688VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
5689 VkPhysicalDevice physicalDevice,
5690 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
5691 uint32_t* pPropertyCount,
5692 VkSparseImageFormatProperties2* pProperties);
5693
5694VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
5695 VkDevice device,
5696 VkCommandPool commandPool,
5697 VkCommandPoolTrimFlags flags);
5698
5699VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
5700 VkDevice device,
5701 const VkDeviceQueueInfo2* pQueueInfo,
5702 VkQueue* pQueue);
5703
5704VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
5705 VkDevice device,
5706 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
5707 const VkAllocationCallbacks* pAllocator,
5708 VkSamplerYcbcrConversion* pYcbcrConversion);
5709
5710VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
5711 VkDevice device,
5712 VkSamplerYcbcrConversion ycbcrConversion,
5713 const VkAllocationCallbacks* pAllocator);
5714
5715VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
5716 VkDevice device,
5717 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
5718 const VkAllocationCallbacks* pAllocator,
5719 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
5720
5721VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
5722 VkDevice device,
5723 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
5724 const VkAllocationCallbacks* pAllocator);
5725
5726VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
5727 VkDevice device,
5728 VkDescriptorSet descriptorSet,
5729 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
5730 const void* pData);
5731
5732VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
5733 VkPhysicalDevice physicalDevice,
5734 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
5735 VkExternalBufferProperties* pExternalBufferProperties);
5736
5737VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
5738 VkPhysicalDevice physicalDevice,
5739 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
5740 VkExternalFenceProperties* pExternalFenceProperties);
5741
5742VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
5743 VkPhysicalDevice physicalDevice,
5744 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
5745 VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
5746
5747VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
5748 VkDevice device,
5749 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
5750 VkDescriptorSetLayoutSupport* pSupport);
5751#endif
5752
5753
5754// VK_VERSION_1_2 is a preprocessor guard. Do not pass it to API calls.
5755#define VK_VERSION_1_2 1
5756// Vulkan 1.2 version number
5757#define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0
5758
5759#define VK_MAX_DRIVER_NAME_SIZE 256U
5760#define VK_MAX_DRIVER_INFO_SIZE 256U
5761
5762typedef enum VkDriverId {
5763 VK_DRIVER_ID_AMD_PROPRIETARY = 1,
5764 VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
5765 VK_DRIVER_ID_MESA_RADV = 3,
5766 VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
5767 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
5768 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
5769 VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
5770 VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
5771 VK_DRIVER_ID_ARM_PROPRIETARY = 9,
5772 VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
5773 VK_DRIVER_ID_GGP_PROPRIETARY = 11,
5774 VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
5775 VK_DRIVER_ID_MESA_LLVMPIPE = 13,
5776 VK_DRIVER_ID_MOLTENVK = 14,
5777 VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
5778 VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
5779 VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
5780 VK_DRIVER_ID_MESA_TURNIP = 18,
5781 VK_DRIVER_ID_MESA_V3DV = 19,
5782 VK_DRIVER_ID_MESA_PANVK = 20,
5783 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
5784 VK_DRIVER_ID_MESA_VENUS = 22,
5785 VK_DRIVER_ID_MESA_DOZEN = 23,
5786 VK_DRIVER_ID_MESA_NVK = 24,
5787 VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25,
5788 VK_DRIVER_ID_MESA_AGXV = 26,
5789 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
5790 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
5791 VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
5792 VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
5793 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
5794 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
5795 VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
5796 VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
5797 VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
5798 VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
5799 VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
5800 VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
5801 VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
5802} VkDriverId;
5803
5804typedef enum VkShaderFloatControlsIndependence {
5805 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
5806 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
5807 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
5808 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
5809 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
5810 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
5811 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
5812} VkShaderFloatControlsIndependence;
5813
5814typedef enum VkSamplerReductionMode {
5815 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
5816 VK_SAMPLER_REDUCTION_MODE_MIN = 1,
5817 VK_SAMPLER_REDUCTION_MODE_MAX = 2,
5818 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000,
5819 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
5820 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
5821 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
5822 VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
5823} VkSamplerReductionMode;
5824
5825typedef enum VkSemaphoreType {
5826 VK_SEMAPHORE_TYPE_BINARY = 0,
5827 VK_SEMAPHORE_TYPE_TIMELINE = 1,
5828 VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
5829 VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
5830 VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
5831} VkSemaphoreType;
5832
5833typedef enum VkResolveModeFlagBits {
5834 VK_RESOLVE_MODE_NONE = 0,
5835 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
5836 VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
5837 VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
5838 VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
5839 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = 0x00000010,
5840 VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
5841 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
5842 VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
5843 VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
5844 VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
5845 VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5846} VkResolveModeFlagBits;
5847typedef VkFlags VkResolveModeFlags;
5848
5849typedef enum VkDescriptorBindingFlagBits {
5850 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
5851 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
5852 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
5853 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
5854 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
5855 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
5856 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
5857 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
5858 VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5859} VkDescriptorBindingFlagBits;
5860typedef VkFlags VkDescriptorBindingFlags;
5861
5862typedef enum VkSemaphoreWaitFlagBits {
5863 VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
5864 VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
5865 VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5866} VkSemaphoreWaitFlagBits;
5867typedef VkFlags VkSemaphoreWaitFlags;
5868typedef struct VkPhysicalDeviceVulkan11Features {
5869 VkStructureType sType;
5870 void* pNext;
5871 VkBool32 storageBuffer16BitAccess;
5872 VkBool32 uniformAndStorageBuffer16BitAccess;
5873 VkBool32 storagePushConstant16;
5874 VkBool32 storageInputOutput16;
5875 VkBool32 multiview;
5876 VkBool32 multiviewGeometryShader;
5877 VkBool32 multiviewTessellationShader;
5878 VkBool32 variablePointersStorageBuffer;
5879 VkBool32 variablePointers;
5880 VkBool32 protectedMemory;
5881 VkBool32 samplerYcbcrConversion;
5882 VkBool32 shaderDrawParameters;
5883} VkPhysicalDeviceVulkan11Features;
5884
5885typedef struct VkPhysicalDeviceVulkan11Properties {
5886 VkStructureType sType;
5887 void* pNext;
5888 uint8_t deviceUUID[VK_UUID_SIZE];
5889 uint8_t driverUUID[VK_UUID_SIZE];
5890 uint8_t deviceLUID[VK_LUID_SIZE];
5891 uint32_t deviceNodeMask;
5892 VkBool32 deviceLUIDValid;
5893 uint32_t subgroupSize;
5894 VkShaderStageFlags subgroupSupportedStages;
5895 VkSubgroupFeatureFlags subgroupSupportedOperations;
5896 VkBool32 subgroupQuadOperationsInAllStages;
5897 VkPointClippingBehavior pointClippingBehavior;
5898 uint32_t maxMultiviewViewCount;
5899 uint32_t maxMultiviewInstanceIndex;
5900 VkBool32 protectedNoFault;
5901 uint32_t maxPerSetDescriptors;
5902 VkDeviceSize maxMemoryAllocationSize;
5903} VkPhysicalDeviceVulkan11Properties;
5904
5905typedef struct VkPhysicalDeviceVulkan12Features {
5906 VkStructureType sType;
5907 void* pNext;
5908 VkBool32 samplerMirrorClampToEdge;
5909 VkBool32 drawIndirectCount;
5910 VkBool32 storageBuffer8BitAccess;
5911 VkBool32 uniformAndStorageBuffer8BitAccess;
5912 VkBool32 storagePushConstant8;
5913 VkBool32 shaderBufferInt64Atomics;
5914 VkBool32 shaderSharedInt64Atomics;
5915 VkBool32 shaderFloat16;
5916 VkBool32 shaderInt8;
5917 VkBool32 descriptorIndexing;
5918 VkBool32 shaderInputAttachmentArrayDynamicIndexing;
5919 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
5920 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
5921 VkBool32 shaderUniformBufferArrayNonUniformIndexing;
5922 VkBool32 shaderSampledImageArrayNonUniformIndexing;
5923 VkBool32 shaderStorageBufferArrayNonUniformIndexing;
5924 VkBool32 shaderStorageImageArrayNonUniformIndexing;
5925 VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
5926 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
5927 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
5928 VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
5929 VkBool32 descriptorBindingSampledImageUpdateAfterBind;
5930 VkBool32 descriptorBindingStorageImageUpdateAfterBind;
5931 VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
5932 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
5933 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
5934 VkBool32 descriptorBindingUpdateUnusedWhilePending;
5935 VkBool32 descriptorBindingPartiallyBound;
5936 VkBool32 descriptorBindingVariableDescriptorCount;
5937 VkBool32 runtimeDescriptorArray;
5938 VkBool32 samplerFilterMinmax;
5939 VkBool32 scalarBlockLayout;
5940 VkBool32 imagelessFramebuffer;
5941 VkBool32 uniformBufferStandardLayout;
5942 VkBool32 shaderSubgroupExtendedTypes;
5943 VkBool32 separateDepthStencilLayouts;
5944 VkBool32 hostQueryReset;
5945 VkBool32 timelineSemaphore;
5946 VkBool32 bufferDeviceAddress;
5947 VkBool32 bufferDeviceAddressCaptureReplay;
5948 VkBool32 bufferDeviceAddressMultiDevice;
5949 VkBool32 vulkanMemoryModel;
5950 VkBool32 vulkanMemoryModelDeviceScope;
5951 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
5952 VkBool32 shaderOutputViewportIndex;
5953 VkBool32 shaderOutputLayer;
5954 VkBool32 subgroupBroadcastDynamicId;
5955} VkPhysicalDeviceVulkan12Features;
5956
5957typedef struct VkConformanceVersion {
5958 uint8_t major;
5959 uint8_t minor;
5960 uint8_t subminor;
5961 uint8_t patch;
5962} VkConformanceVersion;
5963
5964typedef struct VkPhysicalDeviceVulkan12Properties {
5965 VkStructureType sType;
5966 void* pNext;
5967 VkDriverId driverID;
5968 char driverName[VK_MAX_DRIVER_NAME_SIZE];
5969 char driverInfo[VK_MAX_DRIVER_INFO_SIZE];
5970 VkConformanceVersion conformanceVersion;
5971 VkShaderFloatControlsIndependence denormBehaviorIndependence;
5972 VkShaderFloatControlsIndependence roundingModeIndependence;
5973 VkBool32 shaderSignedZeroInfNanPreserveFloat16;
5974 VkBool32 shaderSignedZeroInfNanPreserveFloat32;
5975 VkBool32 shaderSignedZeroInfNanPreserveFloat64;
5976 VkBool32 shaderDenormPreserveFloat16;
5977 VkBool32 shaderDenormPreserveFloat32;
5978 VkBool32 shaderDenormPreserveFloat64;
5979 VkBool32 shaderDenormFlushToZeroFloat16;
5980 VkBool32 shaderDenormFlushToZeroFloat32;
5981 VkBool32 shaderDenormFlushToZeroFloat64;
5982 VkBool32 shaderRoundingModeRTEFloat16;
5983 VkBool32 shaderRoundingModeRTEFloat32;
5984 VkBool32 shaderRoundingModeRTEFloat64;
5985 VkBool32 shaderRoundingModeRTZFloat16;
5986 VkBool32 shaderRoundingModeRTZFloat32;
5987 VkBool32 shaderRoundingModeRTZFloat64;
5988 uint32_t maxUpdateAfterBindDescriptorsInAllPools;
5989 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
5990 VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
5991 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
5992 VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
5993 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
5994 VkBool32 robustBufferAccessUpdateAfterBind;
5995 VkBool32 quadDivergentImplicitLod;
5996 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
5997 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
5998 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
5999 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
6000 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
6001 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
6002 uint32_t maxPerStageUpdateAfterBindResources;
6003 uint32_t maxDescriptorSetUpdateAfterBindSamplers;
6004 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
6005 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6006 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
6007 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6008 uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
6009 uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
6010 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
6011 VkResolveModeFlags supportedDepthResolveModes;
6012 VkResolveModeFlags supportedStencilResolveModes;
6013 VkBool32 independentResolveNone;
6014 VkBool32 independentResolve;
6015 VkBool32 filterMinmaxSingleComponentFormats;
6016 VkBool32 filterMinmaxImageComponentMapping;
6017 uint64_t maxTimelineSemaphoreValueDifference;
6018 VkSampleCountFlags framebufferIntegerColorSampleCounts;
6019} VkPhysicalDeviceVulkan12Properties;
6020
6021typedef struct VkImageFormatListCreateInfo {
6022 VkStructureType sType;
6023 const void* pNext;
6024 uint32_t viewFormatCount;
6025 const VkFormat* pViewFormats;
6026} VkImageFormatListCreateInfo;
6027
6028typedef struct VkAttachmentDescription2 {
6029 VkStructureType sType;
6030 const void* pNext;
6031 VkAttachmentDescriptionFlags flags;
6032 VkFormat format;
6033 VkSampleCountFlagBits samples;
6034 VkAttachmentLoadOp loadOp;
6035 VkAttachmentStoreOp storeOp;
6036 VkAttachmentLoadOp stencilLoadOp;
6037 VkAttachmentStoreOp stencilStoreOp;
6038 VkImageLayout initialLayout;
6039 VkImageLayout finalLayout;
6040} VkAttachmentDescription2;
6041
6042typedef struct VkAttachmentReference2 {
6043 VkStructureType sType;
6044 const void* pNext;
6045 uint32_t attachment;
6046 VkImageLayout layout;
6047 VkImageAspectFlags aspectMask;
6048} VkAttachmentReference2;
6049
6050typedef struct VkSubpassDescription2 {
6051 VkStructureType sType;
6052 const void* pNext;
6053 VkSubpassDescriptionFlags flags;
6054 VkPipelineBindPoint pipelineBindPoint;
6055 uint32_t viewMask;
6056 uint32_t inputAttachmentCount;
6057 const VkAttachmentReference2* pInputAttachments;
6058 uint32_t colorAttachmentCount;
6059 const VkAttachmentReference2* pColorAttachments;
6060 const VkAttachmentReference2* pResolveAttachments;
6061 const VkAttachmentReference2* pDepthStencilAttachment;
6062 uint32_t preserveAttachmentCount;
6063 const uint32_t* pPreserveAttachments;
6064} VkSubpassDescription2;
6065
6066typedef struct VkSubpassDependency2 {
6067 VkStructureType sType;
6068 const void* pNext;
6069 uint32_t srcSubpass;
6070 uint32_t dstSubpass;
6071 VkPipelineStageFlags srcStageMask;
6072 VkPipelineStageFlags dstStageMask;
6073 VkAccessFlags srcAccessMask;
6074 VkAccessFlags dstAccessMask;
6075 VkDependencyFlags dependencyFlags;
6076 int32_t viewOffset;
6077} VkSubpassDependency2;
6078
6079typedef struct VkRenderPassCreateInfo2 {
6080 VkStructureType sType;
6081 const void* pNext;
6082 VkRenderPassCreateFlags flags;
6083 uint32_t attachmentCount;
6084 const VkAttachmentDescription2* pAttachments;
6085 uint32_t subpassCount;
6086 const VkSubpassDescription2* pSubpasses;
6087 uint32_t dependencyCount;
6088 const VkSubpassDependency2* pDependencies;
6089 uint32_t correlatedViewMaskCount;
6090 const uint32_t* pCorrelatedViewMasks;
6091} VkRenderPassCreateInfo2;
6092
6093typedef struct VkSubpassBeginInfo {
6094 VkStructureType sType;
6095 const void* pNext;
6096 VkSubpassContents contents;
6097} VkSubpassBeginInfo;
6098
6099typedef struct VkSubpassEndInfo {
6100 VkStructureType sType;
6101 const void* pNext;
6102} VkSubpassEndInfo;
6103
6104typedef struct VkPhysicalDevice8BitStorageFeatures {
6105 VkStructureType sType;
6106 void* pNext;
6107 VkBool32 storageBuffer8BitAccess;
6108 VkBool32 uniformAndStorageBuffer8BitAccess;
6109 VkBool32 storagePushConstant8;
6110} VkPhysicalDevice8BitStorageFeatures;
6111
6112typedef struct VkPhysicalDeviceDriverProperties {
6113 VkStructureType sType;
6114 void* pNext;
6115 VkDriverId driverID;
6116 char driverName[VK_MAX_DRIVER_NAME_SIZE];
6117 char driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6118 VkConformanceVersion conformanceVersion;
6119} VkPhysicalDeviceDriverProperties;
6120
6121typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
6122 VkStructureType sType;
6123 void* pNext;
6124 VkBool32 shaderBufferInt64Atomics;
6125 VkBool32 shaderSharedInt64Atomics;
6126} VkPhysicalDeviceShaderAtomicInt64Features;
6127
6128typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
6129 VkStructureType sType;
6130 void* pNext;
6131 VkBool32 shaderFloat16;
6132 VkBool32 shaderInt8;
6133} VkPhysicalDeviceShaderFloat16Int8Features;
6134
6135typedef struct VkPhysicalDeviceFloatControlsProperties {
6136 VkStructureType sType;
6137 void* pNext;
6138 VkShaderFloatControlsIndependence denormBehaviorIndependence;
6139 VkShaderFloatControlsIndependence roundingModeIndependence;
6140 VkBool32 shaderSignedZeroInfNanPreserveFloat16;
6141 VkBool32 shaderSignedZeroInfNanPreserveFloat32;
6142 VkBool32 shaderSignedZeroInfNanPreserveFloat64;
6143 VkBool32 shaderDenormPreserveFloat16;
6144 VkBool32 shaderDenormPreserveFloat32;
6145 VkBool32 shaderDenormPreserveFloat64;
6146 VkBool32 shaderDenormFlushToZeroFloat16;
6147 VkBool32 shaderDenormFlushToZeroFloat32;
6148 VkBool32 shaderDenormFlushToZeroFloat64;
6149 VkBool32 shaderRoundingModeRTEFloat16;
6150 VkBool32 shaderRoundingModeRTEFloat32;
6151 VkBool32 shaderRoundingModeRTEFloat64;
6152 VkBool32 shaderRoundingModeRTZFloat16;
6153 VkBool32 shaderRoundingModeRTZFloat32;
6154 VkBool32 shaderRoundingModeRTZFloat64;
6155} VkPhysicalDeviceFloatControlsProperties;
6156
6157typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
6158 VkStructureType sType;
6159 const void* pNext;
6160 uint32_t bindingCount;
6161 const VkDescriptorBindingFlags* pBindingFlags;
6162} VkDescriptorSetLayoutBindingFlagsCreateInfo;
6163
6164typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
6165 VkStructureType sType;
6166 void* pNext;
6167 VkBool32 shaderInputAttachmentArrayDynamicIndexing;
6168 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
6169 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
6170 VkBool32 shaderUniformBufferArrayNonUniformIndexing;
6171 VkBool32 shaderSampledImageArrayNonUniformIndexing;
6172 VkBool32 shaderStorageBufferArrayNonUniformIndexing;
6173 VkBool32 shaderStorageImageArrayNonUniformIndexing;
6174 VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
6175 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
6176 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
6177 VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
6178 VkBool32 descriptorBindingSampledImageUpdateAfterBind;
6179 VkBool32 descriptorBindingStorageImageUpdateAfterBind;
6180 VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
6181 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
6182 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
6183 VkBool32 descriptorBindingUpdateUnusedWhilePending;
6184 VkBool32 descriptorBindingPartiallyBound;
6185 VkBool32 descriptorBindingVariableDescriptorCount;
6186 VkBool32 runtimeDescriptorArray;
6187} VkPhysicalDeviceDescriptorIndexingFeatures;
6188
6189typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
6190 VkStructureType sType;
6191 void* pNext;
6192 uint32_t maxUpdateAfterBindDescriptorsInAllPools;
6193 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
6194 VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
6195 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
6196 VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
6197 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
6198 VkBool32 robustBufferAccessUpdateAfterBind;
6199 VkBool32 quadDivergentImplicitLod;
6200 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
6201 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6202 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6203 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
6204 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
6205 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
6206 uint32_t maxPerStageUpdateAfterBindResources;
6207 uint32_t maxDescriptorSetUpdateAfterBindSamplers;
6208 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
6209 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6210 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
6211 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6212 uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
6213 uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
6214 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
6215} VkPhysicalDeviceDescriptorIndexingProperties;
6216
6217typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
6218 VkStructureType sType;
6219 const void* pNext;
6220 uint32_t descriptorSetCount;
6221 const uint32_t* pDescriptorCounts;
6222} VkDescriptorSetVariableDescriptorCountAllocateInfo;
6223
6224typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
6225 VkStructureType sType;
6226 void* pNext;
6227 uint32_t maxVariableDescriptorCount;
6228} VkDescriptorSetVariableDescriptorCountLayoutSupport;
6229
6230typedef struct VkSubpassDescriptionDepthStencilResolve {
6231 VkStructureType sType;
6232 const void* pNext;
6233 VkResolveModeFlagBits depthResolveMode;
6234 VkResolveModeFlagBits stencilResolveMode;
6235 const VkAttachmentReference2* pDepthStencilResolveAttachment;
6236} VkSubpassDescriptionDepthStencilResolve;
6237
6238typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
6239 VkStructureType sType;
6240 void* pNext;
6241 VkResolveModeFlags supportedDepthResolveModes;
6242 VkResolveModeFlags supportedStencilResolveModes;
6243 VkBool32 independentResolveNone;
6244 VkBool32 independentResolve;
6245} VkPhysicalDeviceDepthStencilResolveProperties;
6246
6247typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
6248 VkStructureType sType;
6249 void* pNext;
6250 VkBool32 scalarBlockLayout;
6251} VkPhysicalDeviceScalarBlockLayoutFeatures;
6252
6253typedef struct VkImageStencilUsageCreateInfo {
6254 VkStructureType sType;
6255 const void* pNext;
6256 VkImageUsageFlags stencilUsage;
6257} VkImageStencilUsageCreateInfo;
6258
6259typedef struct VkSamplerReductionModeCreateInfo {
6260 VkStructureType sType;
6261 const void* pNext;
6262 VkSamplerReductionMode reductionMode;
6263} VkSamplerReductionModeCreateInfo;
6264
6265typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
6266 VkStructureType sType;
6267 void* pNext;
6268 VkBool32 filterMinmaxSingleComponentFormats;
6269 VkBool32 filterMinmaxImageComponentMapping;
6270} VkPhysicalDeviceSamplerFilterMinmaxProperties;
6271
6272typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
6273 VkStructureType sType;
6274 void* pNext;
6275 VkBool32 vulkanMemoryModel;
6276 VkBool32 vulkanMemoryModelDeviceScope;
6277 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
6278} VkPhysicalDeviceVulkanMemoryModelFeatures;
6279
6280typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
6281 VkStructureType sType;
6282 void* pNext;
6283 VkBool32 imagelessFramebuffer;
6284} VkPhysicalDeviceImagelessFramebufferFeatures;
6285
6286typedef struct VkFramebufferAttachmentImageInfo {
6287 VkStructureType sType;
6288 const void* pNext;
6289 VkImageCreateFlags flags;
6290 VkImageUsageFlags usage;
6291 uint32_t width;
6292 uint32_t height;
6293 uint32_t layerCount;
6294 uint32_t viewFormatCount;
6295 const VkFormat* pViewFormats;
6296} VkFramebufferAttachmentImageInfo;
6297
6298typedef struct VkFramebufferAttachmentsCreateInfo {
6299 VkStructureType sType;
6300 const void* pNext;
6301 uint32_t attachmentImageInfoCount;
6302 const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos;
6303} VkFramebufferAttachmentsCreateInfo;
6304
6305typedef struct VkRenderPassAttachmentBeginInfo {
6306 VkStructureType sType;
6307 const void* pNext;
6308 uint32_t attachmentCount;
6309 const VkImageView* pAttachments;
6310} VkRenderPassAttachmentBeginInfo;
6311
6312typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
6313 VkStructureType sType;
6314 void* pNext;
6315 VkBool32 uniformBufferStandardLayout;
6316} VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
6317
6318typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
6319 VkStructureType sType;
6320 void* pNext;
6321 VkBool32 shaderSubgroupExtendedTypes;
6322} VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
6323
6324typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
6325 VkStructureType sType;
6326 void* pNext;
6327 VkBool32 separateDepthStencilLayouts;
6328} VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
6329
6330typedef struct VkAttachmentReferenceStencilLayout {
6331 VkStructureType sType;
6332 void* pNext;
6333 VkImageLayout stencilLayout;
6334} VkAttachmentReferenceStencilLayout;
6335
6336typedef struct VkAttachmentDescriptionStencilLayout {
6337 VkStructureType sType;
6338 void* pNext;
6339 VkImageLayout stencilInitialLayout;
6340 VkImageLayout stencilFinalLayout;
6341} VkAttachmentDescriptionStencilLayout;
6342
6343typedef struct VkPhysicalDeviceHostQueryResetFeatures {
6344 VkStructureType sType;
6345 void* pNext;
6346 VkBool32 hostQueryReset;
6347} VkPhysicalDeviceHostQueryResetFeatures;
6348
6349typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
6350 VkStructureType sType;
6351 void* pNext;
6352 VkBool32 timelineSemaphore;
6353} VkPhysicalDeviceTimelineSemaphoreFeatures;
6354
6355typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
6356 VkStructureType sType;
6357 void* pNext;
6358 uint64_t maxTimelineSemaphoreValueDifference;
6359} VkPhysicalDeviceTimelineSemaphoreProperties;
6360
6361typedef struct VkSemaphoreTypeCreateInfo {
6362 VkStructureType sType;
6363 const void* pNext;
6364 VkSemaphoreType semaphoreType;
6365 uint64_t initialValue;
6366} VkSemaphoreTypeCreateInfo;
6367
6368typedef struct VkTimelineSemaphoreSubmitInfo {
6369 VkStructureType sType;
6370 const void* pNext;
6371 uint32_t waitSemaphoreValueCount;
6372 const uint64_t* pWaitSemaphoreValues;
6373 uint32_t signalSemaphoreValueCount;
6374 const uint64_t* pSignalSemaphoreValues;
6375} VkTimelineSemaphoreSubmitInfo;
6376
6377typedef struct VkSemaphoreWaitInfo {
6378 VkStructureType sType;
6379 const void* pNext;
6380 VkSemaphoreWaitFlags flags;
6381 uint32_t semaphoreCount;
6382 const VkSemaphore* pSemaphores;
6383 const uint64_t* pValues;
6384} VkSemaphoreWaitInfo;
6385
6386typedef struct VkSemaphoreSignalInfo {
6387 VkStructureType sType;
6388 const void* pNext;
6389 VkSemaphore semaphore;
6390 uint64_t value;
6391} VkSemaphoreSignalInfo;
6392
6393typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
6394 VkStructureType sType;
6395 void* pNext;
6396 VkBool32 bufferDeviceAddress;
6397 VkBool32 bufferDeviceAddressCaptureReplay;
6398 VkBool32 bufferDeviceAddressMultiDevice;
6399} VkPhysicalDeviceBufferDeviceAddressFeatures;
6400
6401typedef struct VkBufferDeviceAddressInfo {
6402 VkStructureType sType;
6403 const void* pNext;
6404 VkBuffer buffer;
6405} VkBufferDeviceAddressInfo;
6406
6407typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
6408 VkStructureType sType;
6409 const void* pNext;
6410 uint64_t opaqueCaptureAddress;
6411} VkBufferOpaqueCaptureAddressCreateInfo;
6412
6413typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
6414 VkStructureType sType;
6415 const void* pNext;
6416 uint64_t opaqueCaptureAddress;
6417} VkMemoryOpaqueCaptureAddressAllocateInfo;
6418
6419typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
6420 VkStructureType sType;
6421 const void* pNext;
6422 VkDeviceMemory memory;
6423} VkDeviceMemoryOpaqueCaptureAddressInfo;
6424
6425typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6426typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6427typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
6428typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
6429typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
6430typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
6431typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
6432typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
6433typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
6434typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
6435typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6436typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6437typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6438
6439#ifndef VK_NO_PROTOTYPES
6440VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
6441 VkCommandBuffer commandBuffer,
6442 VkBuffer buffer,
6443 VkDeviceSize offset,
6444 VkBuffer countBuffer,
6445 VkDeviceSize countBufferOffset,
6446 uint32_t maxDrawCount,
6447 uint32_t stride);
6448
6449VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
6450 VkCommandBuffer commandBuffer,
6451 VkBuffer buffer,
6452 VkDeviceSize offset,
6453 VkBuffer countBuffer,
6454 VkDeviceSize countBufferOffset,
6455 uint32_t maxDrawCount,
6456 uint32_t stride);
6457
6458VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
6459 VkDevice device,
6460 const VkRenderPassCreateInfo2* pCreateInfo,
6461 const VkAllocationCallbacks* pAllocator,
6462 VkRenderPass* pRenderPass);
6463
6464VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
6465 VkCommandBuffer commandBuffer,
6466 const VkRenderPassBeginInfo* pRenderPassBegin,
6467 const VkSubpassBeginInfo* pSubpassBeginInfo);
6468
6469VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
6470 VkCommandBuffer commandBuffer,
6471 const VkSubpassBeginInfo* pSubpassBeginInfo,
6472 const VkSubpassEndInfo* pSubpassEndInfo);
6473
6474VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
6475 VkCommandBuffer commandBuffer,
6476 const VkSubpassEndInfo* pSubpassEndInfo);
6477
6478VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
6479 VkDevice device,
6480 VkQueryPool queryPool,
6481 uint32_t firstQuery,
6482 uint32_t queryCount);
6483
6484VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
6485 VkDevice device,
6486 VkSemaphore semaphore,
6487 uint64_t* pValue);
6488
6489VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
6490 VkDevice device,
6491 const VkSemaphoreWaitInfo* pWaitInfo,
6492 uint64_t timeout);
6493
6494VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
6495 VkDevice device,
6496 const VkSemaphoreSignalInfo* pSignalInfo);
6497
6498VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
6499 VkDevice device,
6500 const VkBufferDeviceAddressInfo* pInfo);
6501
6502VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
6503 VkDevice device,
6504 const VkBufferDeviceAddressInfo* pInfo);
6505
6506VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
6507 VkDevice device,
6508 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6509#endif
6510
6511
6512// VK_VERSION_1_3 is a preprocessor guard. Do not pass it to API calls.
6513#define VK_VERSION_1_3 1
6514// Vulkan 1.3 version number
6515#define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
6516
6517typedef uint64_t VkFlags64;
6518VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
6519
6520typedef enum VkPipelineCreationFeedbackFlagBits {
6521 VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001,
6522 VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002,
6523 VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004,
6524 VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
6525 VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
6526 VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
6527 VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6528} VkPipelineCreationFeedbackFlagBits;
6529typedef VkFlags VkPipelineCreationFeedbackFlags;
6530
6531typedef enum VkToolPurposeFlagBits {
6532 VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001,
6533 VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002,
6534 VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004,
6535 VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008,
6536 VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010,
6537 VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
6538 VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
6539 VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
6540 VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
6541 VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
6542 VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
6543 VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
6544 VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6545} VkToolPurposeFlagBits;
6546typedef VkFlags VkToolPurposeFlags;
6547typedef VkFlags VkPrivateDataSlotCreateFlags;
6548typedef VkFlags64 VkPipelineStageFlags2;
6549
6550// Flag bits for VkPipelineStageFlagBits2
6551typedef VkFlags64 VkPipelineStageFlagBits2;
6552static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL;
6553static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL;
6554static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL;
6555static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL;
6556static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL;
6557static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL;
6558static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL;
6559static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL;
6560static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL;
6561static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL;
6562static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL;
6563static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL;
6564static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL;
6565static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL;
6566static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL;
6567static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL;
6568static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL;
6569static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL;
6570static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL;
6571static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL;
6572static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL;
6573static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL;
6574static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL;
6575static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
6576static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL;
6577static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
6578static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL;
6579static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
6580static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL;
6581static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
6582static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL;
6583static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
6584static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL;
6585static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
6586static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL;
6587static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
6588static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL;
6589static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL;
6590static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL;
6591static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL;
6592static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL;
6593static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL;
6594static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL;
6595static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL;
6596static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL;
6597static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL;
6598static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL;
6599static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL;
6600static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL;
6601static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
6602static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL;
6603static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
6604static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
6605static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
6606static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
6607static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
6608static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
6609static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
6610static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
6611static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
6612static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
6613static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
6614static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
6615static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
6616static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
6617static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
6618static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL;
6619static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL;
6620static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL;
6621static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
6622static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
6623static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
6624static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL;
6625static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL;
6626static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL;
6627
6628typedef VkFlags64 VkAccessFlags2;
6629
6630// Flag bits for VkAccessFlagBits2
6631typedef VkFlags64 VkAccessFlagBits2;
6632static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL;
6633static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL;
6634static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL;
6635static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL;
6636static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL;
6637static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL;
6638static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL;
6639static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL;
6640static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL;
6641static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL;
6642static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL;
6643static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL;
6644static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL;
6645static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL;
6646static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL;
6647static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL;
6648static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL;
6649static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL;
6650static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL;
6651static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL;
6652static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL;
6653static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL;
6654static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL;
6655static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL;
6656static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL;
6657static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL;
6658static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL;
6659static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL;
6660static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL;
6661static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL;
6662static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL;
6663static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL;
6664static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL;
6665static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL;
6666static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL;
6667static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL;
6668static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL;
6669static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL;
6670static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL;
6671static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
6672static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL;
6673static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
6674static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
6675static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
6676static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
6677static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
6678static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
6679static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
6680static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
6681static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
6682static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
6683static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
6684static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
6685static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
6686static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
6687static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
6688static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
6689static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
6690static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
6691static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
6692static const VkAccessFlagBits2 VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL;
6693static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
6694static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL;
6695static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL;
6696static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL;
6697static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL;
6698static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL;
6699
6700
6701typedef enum VkSubmitFlagBits {
6702 VK_SUBMIT_PROTECTED_BIT = 0x00000001,
6703 VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
6704 VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6705} VkSubmitFlagBits;
6706typedef VkFlags VkSubmitFlags;
6707
6708typedef enum VkRenderingFlagBits {
6709 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001,
6710 VK_RENDERING_SUSPENDING_BIT = 0x00000002,
6711 VK_RENDERING_RESUMING_BIT = 0x00000004,
6712 VK_RENDERING_CONTENTS_INLINE_BIT_EXT = 0x00000010,
6713 VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008,
6714 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
6715 VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
6716 VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
6717 VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6718} VkRenderingFlagBits;
6719typedef VkFlags VkRenderingFlags;
6720typedef VkFlags64 VkFormatFeatureFlags2;
6721
6722// Flag bits for VkFormatFeatureFlagBits2
6723typedef VkFlags64 VkFormatFeatureFlagBits2;
6724static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL;
6725static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL;
6726static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL;
6727static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL;
6728static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL;
6729static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL;
6730static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL;
6731static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
6732static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL;
6733static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL;
6734static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL;
6735static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL;
6736static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL;
6737static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL;
6738static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL;
6739static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL;
6740static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL;
6741static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL;
6742static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL;
6743static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL;
6744static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL;
6745static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL;
6746static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL;
6747static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL;
6748static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL;
6749static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL;
6750static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL;
6751static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL;
6752static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL;
6753static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL;
6754static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL;
6755static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL;
6756static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL;
6757static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL;
6758static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL;
6759static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL;
6760static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL;
6761static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL;
6762static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL;
6763static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL;
6764static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL;
6765static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL;
6766static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL;
6767static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL;
6768static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL;
6769static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL;
6770static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL;
6771static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL;
6772static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL;
6773static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL;
6774static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL;
6775static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL;
6776static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL;
6777static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
6778static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL;
6779static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL;
6780static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL;
6781static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL;
6782static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL;
6783static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL;
6784static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL;
6785static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL;
6786static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
6787static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL;
6788static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL;
6789static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL;
6790static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL;
6791static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL;
6792static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL;
6793static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL;
6794
6795typedef struct VkPhysicalDeviceVulkan13Features {
6796 VkStructureType sType;
6797 void* pNext;
6798 VkBool32 robustImageAccess;
6799 VkBool32 inlineUniformBlock;
6800 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
6801 VkBool32 pipelineCreationCacheControl;
6802 VkBool32 privateData;
6803 VkBool32 shaderDemoteToHelperInvocation;
6804 VkBool32 shaderTerminateInvocation;
6805 VkBool32 subgroupSizeControl;
6806 VkBool32 computeFullSubgroups;
6807 VkBool32 synchronization2;
6808 VkBool32 textureCompressionASTC_HDR;
6809 VkBool32 shaderZeroInitializeWorkgroupMemory;
6810 VkBool32 dynamicRendering;
6811 VkBool32 shaderIntegerDotProduct;
6812 VkBool32 maintenance4;
6813} VkPhysicalDeviceVulkan13Features;
6814
6815typedef struct VkPhysicalDeviceVulkan13Properties {
6816 VkStructureType sType;
6817 void* pNext;
6818 uint32_t minSubgroupSize;
6819 uint32_t maxSubgroupSize;
6820 uint32_t maxComputeWorkgroupSubgroups;
6821 VkShaderStageFlags requiredSubgroupSizeStages;
6822 uint32_t maxInlineUniformBlockSize;
6823 uint32_t maxPerStageDescriptorInlineUniformBlocks;
6824 uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
6825 uint32_t maxDescriptorSetInlineUniformBlocks;
6826 uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
6827 uint32_t maxInlineUniformTotalSize;
6828 VkBool32 integerDotProduct8BitUnsignedAccelerated;
6829 VkBool32 integerDotProduct8BitSignedAccelerated;
6830 VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
6831 VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
6832 VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
6833 VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
6834 VkBool32 integerDotProduct16BitUnsignedAccelerated;
6835 VkBool32 integerDotProduct16BitSignedAccelerated;
6836 VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
6837 VkBool32 integerDotProduct32BitUnsignedAccelerated;
6838 VkBool32 integerDotProduct32BitSignedAccelerated;
6839 VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
6840 VkBool32 integerDotProduct64BitUnsignedAccelerated;
6841 VkBool32 integerDotProduct64BitSignedAccelerated;
6842 VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
6843 VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
6844 VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
6845 VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
6846 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
6847 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
6848 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
6849 VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
6850 VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
6851 VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
6852 VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
6853 VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
6854 VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
6855 VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
6856 VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
6857 VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
6858 VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
6859 VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
6860 VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
6861 VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
6862 VkDeviceSize maxBufferSize;
6863} VkPhysicalDeviceVulkan13Properties;
6864
6865typedef struct VkPipelineCreationFeedback {
6866 VkPipelineCreationFeedbackFlags flags;
6867 uint64_t duration;
6868} VkPipelineCreationFeedback;
6869
6870typedef struct VkPipelineCreationFeedbackCreateInfo {
6871 VkStructureType sType;
6872 const void* pNext;
6873 VkPipelineCreationFeedback* pPipelineCreationFeedback;
6874 uint32_t pipelineStageCreationFeedbackCount;
6875 VkPipelineCreationFeedback* pPipelineStageCreationFeedbacks;
6876} VkPipelineCreationFeedbackCreateInfo;
6877
6878typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
6879 VkStructureType sType;
6880 void* pNext;
6881 VkBool32 shaderTerminateInvocation;
6882} VkPhysicalDeviceShaderTerminateInvocationFeatures;
6883
6884typedef struct VkPhysicalDeviceToolProperties {
6885 VkStructureType sType;
6886 void* pNext;
6887 char name[VK_MAX_EXTENSION_NAME_SIZE];
6888 char version[VK_MAX_EXTENSION_NAME_SIZE];
6889 VkToolPurposeFlags purposes;
6890 char description[VK_MAX_DESCRIPTION_SIZE];
6891 char layer[VK_MAX_EXTENSION_NAME_SIZE];
6892} VkPhysicalDeviceToolProperties;
6893
6894typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
6895 VkStructureType sType;
6896 void* pNext;
6897 VkBool32 shaderDemoteToHelperInvocation;
6898} VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
6899
6900typedef struct VkPhysicalDevicePrivateDataFeatures {
6901 VkStructureType sType;
6902 void* pNext;
6903 VkBool32 privateData;
6904} VkPhysicalDevicePrivateDataFeatures;
6905
6906typedef struct VkDevicePrivateDataCreateInfo {
6907 VkStructureType sType;
6908 const void* pNext;
6909 uint32_t privateDataSlotRequestCount;
6910} VkDevicePrivateDataCreateInfo;
6911
6912typedef struct VkPrivateDataSlotCreateInfo {
6913 VkStructureType sType;
6914 const void* pNext;
6915 VkPrivateDataSlotCreateFlags flags;
6916} VkPrivateDataSlotCreateInfo;
6917
6918typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
6919 VkStructureType sType;
6920 void* pNext;
6921 VkBool32 pipelineCreationCacheControl;
6922} VkPhysicalDevicePipelineCreationCacheControlFeatures;
6923
6924typedef struct VkMemoryBarrier2 {
6925 VkStructureType sType;
6926 const void* pNext;
6927 VkPipelineStageFlags2 srcStageMask;
6928 VkAccessFlags2 srcAccessMask;
6929 VkPipelineStageFlags2 dstStageMask;
6930 VkAccessFlags2 dstAccessMask;
6931} VkMemoryBarrier2;
6932
6933typedef struct VkBufferMemoryBarrier2 {
6934 VkStructureType sType;
6935 const void* pNext;
6936 VkPipelineStageFlags2 srcStageMask;
6937 VkAccessFlags2 srcAccessMask;
6938 VkPipelineStageFlags2 dstStageMask;
6939 VkAccessFlags2 dstAccessMask;
6940 uint32_t srcQueueFamilyIndex;
6941 uint32_t dstQueueFamilyIndex;
6942 VkBuffer buffer;
6943 VkDeviceSize offset;
6944 VkDeviceSize size;
6945} VkBufferMemoryBarrier2;
6946
6947typedef struct VkImageMemoryBarrier2 {
6948 VkStructureType sType;
6949 const void* pNext;
6950 VkPipelineStageFlags2 srcStageMask;
6951 VkAccessFlags2 srcAccessMask;
6952 VkPipelineStageFlags2 dstStageMask;
6953 VkAccessFlags2 dstAccessMask;
6954 VkImageLayout oldLayout;
6955 VkImageLayout newLayout;
6956 uint32_t srcQueueFamilyIndex;
6957 uint32_t dstQueueFamilyIndex;
6958 VkImage image;
6959 VkImageSubresourceRange subresourceRange;
6960} VkImageMemoryBarrier2;
6961
6962typedef struct VkDependencyInfo {
6963 VkStructureType sType;
6964 const void* pNext;
6965 VkDependencyFlags dependencyFlags;
6966 uint32_t memoryBarrierCount;
6967 const VkMemoryBarrier2* pMemoryBarriers;
6968 uint32_t bufferMemoryBarrierCount;
6969 const VkBufferMemoryBarrier2* pBufferMemoryBarriers;
6970 uint32_t imageMemoryBarrierCount;
6971 const VkImageMemoryBarrier2* pImageMemoryBarriers;
6972} VkDependencyInfo;
6973
6974typedef struct VkSemaphoreSubmitInfo {
6975 VkStructureType sType;
6976 const void* pNext;
6977 VkSemaphore semaphore;
6978 uint64_t value;
6979 VkPipelineStageFlags2 stageMask;
6980 uint32_t deviceIndex;
6981} VkSemaphoreSubmitInfo;
6982
6983typedef struct VkCommandBufferSubmitInfo {
6984 VkStructureType sType;
6985 const void* pNext;
6986 VkCommandBuffer commandBuffer;
6987 uint32_t deviceMask;
6988} VkCommandBufferSubmitInfo;
6989
6990typedef struct VkSubmitInfo2 {
6991 VkStructureType sType;
6992 const void* pNext;
6993 VkSubmitFlags flags;
6994 uint32_t waitSemaphoreInfoCount;
6995 const VkSemaphoreSubmitInfo* pWaitSemaphoreInfos;
6996 uint32_t commandBufferInfoCount;
6997 const VkCommandBufferSubmitInfo* pCommandBufferInfos;
6998 uint32_t signalSemaphoreInfoCount;
6999 const VkSemaphoreSubmitInfo* pSignalSemaphoreInfos;
7000} VkSubmitInfo2;
7001
7002typedef struct VkPhysicalDeviceSynchronization2Features {
7003 VkStructureType sType;
7004 void* pNext;
7005 VkBool32 synchronization2;
7006} VkPhysicalDeviceSynchronization2Features;
7007
7008typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
7009 VkStructureType sType;
7010 void* pNext;
7011 VkBool32 shaderZeroInitializeWorkgroupMemory;
7012} VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
7013
7014typedef struct VkPhysicalDeviceImageRobustnessFeatures {
7015 VkStructureType sType;
7016 void* pNext;
7017 VkBool32 robustImageAccess;
7018} VkPhysicalDeviceImageRobustnessFeatures;
7019
7020typedef struct VkBufferCopy2 {
7021 VkStructureType sType;
7022 const void* pNext;
7023 VkDeviceSize srcOffset;
7024 VkDeviceSize dstOffset;
7025 VkDeviceSize size;
7026} VkBufferCopy2;
7027
7028typedef struct VkCopyBufferInfo2 {
7029 VkStructureType sType;
7030 const void* pNext;
7031 VkBuffer srcBuffer;
7032 VkBuffer dstBuffer;
7033 uint32_t regionCount;
7034 const VkBufferCopy2* pRegions;
7035} VkCopyBufferInfo2;
7036
7037typedef struct VkImageCopy2 {
7038 VkStructureType sType;
7039 const void* pNext;
7040 VkImageSubresourceLayers srcSubresource;
7041 VkOffset3D srcOffset;
7042 VkImageSubresourceLayers dstSubresource;
7043 VkOffset3D dstOffset;
7044 VkExtent3D extent;
7045} VkImageCopy2;
7046
7047typedef struct VkCopyImageInfo2 {
7048 VkStructureType sType;
7049 const void* pNext;
7050 VkImage srcImage;
7051 VkImageLayout srcImageLayout;
7052 VkImage dstImage;
7053 VkImageLayout dstImageLayout;
7054 uint32_t regionCount;
7055 const VkImageCopy2* pRegions;
7056} VkCopyImageInfo2;
7057
7058typedef struct VkBufferImageCopy2 {
7059 VkStructureType sType;
7060 const void* pNext;
7061 VkDeviceSize bufferOffset;
7062 uint32_t bufferRowLength;
7063 uint32_t bufferImageHeight;
7064 VkImageSubresourceLayers imageSubresource;
7065 VkOffset3D imageOffset;
7066 VkExtent3D imageExtent;
7067} VkBufferImageCopy2;
7068
7069typedef struct VkCopyBufferToImageInfo2 {
7070 VkStructureType sType;
7071 const void* pNext;
7072 VkBuffer srcBuffer;
7073 VkImage dstImage;
7074 VkImageLayout dstImageLayout;
7075 uint32_t regionCount;
7076 const VkBufferImageCopy2* pRegions;
7077} VkCopyBufferToImageInfo2;
7078
7079typedef struct VkCopyImageToBufferInfo2 {
7080 VkStructureType sType;
7081 const void* pNext;
7082 VkImage srcImage;
7083 VkImageLayout srcImageLayout;
7084 VkBuffer dstBuffer;
7085 uint32_t regionCount;
7086 const VkBufferImageCopy2* pRegions;
7087} VkCopyImageToBufferInfo2;
7088
7089typedef struct VkImageBlit2 {
7090 VkStructureType sType;
7091 const void* pNext;
7092 VkImageSubresourceLayers srcSubresource;
7093 VkOffset3D srcOffsets[2];
7094 VkImageSubresourceLayers dstSubresource;
7095 VkOffset3D dstOffsets[2];
7096} VkImageBlit2;
7097
7098typedef struct VkBlitImageInfo2 {
7099 VkStructureType sType;
7100 const void* pNext;
7101 VkImage srcImage;
7102 VkImageLayout srcImageLayout;
7103 VkImage dstImage;
7104 VkImageLayout dstImageLayout;
7105 uint32_t regionCount;
7106 const VkImageBlit2* pRegions;
7107 VkFilter filter;
7108} VkBlitImageInfo2;
7109
7110typedef struct VkImageResolve2 {
7111 VkStructureType sType;
7112 const void* pNext;
7113 VkImageSubresourceLayers srcSubresource;
7114 VkOffset3D srcOffset;
7115 VkImageSubresourceLayers dstSubresource;
7116 VkOffset3D dstOffset;
7117 VkExtent3D extent;
7118} VkImageResolve2;
7119
7120typedef struct VkResolveImageInfo2 {
7121 VkStructureType sType;
7122 const void* pNext;
7123 VkImage srcImage;
7124 VkImageLayout srcImageLayout;
7125 VkImage dstImage;
7126 VkImageLayout dstImageLayout;
7127 uint32_t regionCount;
7128 const VkImageResolve2* pRegions;
7129} VkResolveImageInfo2;
7130
7131typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
7132 VkStructureType sType;
7133 void* pNext;
7134 VkBool32 subgroupSizeControl;
7135 VkBool32 computeFullSubgroups;
7136} VkPhysicalDeviceSubgroupSizeControlFeatures;
7137
7138typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
7139 VkStructureType sType;
7140 void* pNext;
7141 uint32_t minSubgroupSize;
7142 uint32_t maxSubgroupSize;
7143 uint32_t maxComputeWorkgroupSubgroups;
7144 VkShaderStageFlags requiredSubgroupSizeStages;
7145} VkPhysicalDeviceSubgroupSizeControlProperties;
7146
7147typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
7148 VkStructureType sType;
7149 void* pNext;
7150 uint32_t requiredSubgroupSize;
7151} VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
7152
7153typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
7154 VkStructureType sType;
7155 void* pNext;
7156 VkBool32 inlineUniformBlock;
7157 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
7158} VkPhysicalDeviceInlineUniformBlockFeatures;
7159
7160typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
7161 VkStructureType sType;
7162 void* pNext;
7163 uint32_t maxInlineUniformBlockSize;
7164 uint32_t maxPerStageDescriptorInlineUniformBlocks;
7165 uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7166 uint32_t maxDescriptorSetInlineUniformBlocks;
7167 uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7168} VkPhysicalDeviceInlineUniformBlockProperties;
7169
7170typedef struct VkWriteDescriptorSetInlineUniformBlock {
7171 VkStructureType sType;
7172 const void* pNext;
7173 uint32_t dataSize;
7174 const void* pData;
7175} VkWriteDescriptorSetInlineUniformBlock;
7176
7177typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
7178 VkStructureType sType;
7179 const void* pNext;
7180 uint32_t maxInlineUniformBlockBindings;
7181} VkDescriptorPoolInlineUniformBlockCreateInfo;
7182
7183typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
7184 VkStructureType sType;
7185 void* pNext;
7186 VkBool32 textureCompressionASTC_HDR;
7187} VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
7188
7189typedef struct VkRenderingAttachmentInfo {
7190 VkStructureType sType;
7191 const void* pNext;
7192 VkImageView imageView;
7193 VkImageLayout imageLayout;
7194 VkResolveModeFlagBits resolveMode;
7195 VkImageView resolveImageView;
7196 VkImageLayout resolveImageLayout;
7197 VkAttachmentLoadOp loadOp;
7198 VkAttachmentStoreOp storeOp;
7199 VkClearValue clearValue;
7200} VkRenderingAttachmentInfo;
7201
7202typedef struct VkRenderingInfo {
7203 VkStructureType sType;
7204 const void* pNext;
7205 VkRenderingFlags flags;
7206 VkRect2D renderArea;
7207 uint32_t layerCount;
7208 uint32_t viewMask;
7209 uint32_t colorAttachmentCount;
7210 const VkRenderingAttachmentInfo* pColorAttachments;
7211 const VkRenderingAttachmentInfo* pDepthAttachment;
7212 const VkRenderingAttachmentInfo* pStencilAttachment;
7213} VkRenderingInfo;
7214
7215typedef struct VkPipelineRenderingCreateInfo {
7216 VkStructureType sType;
7217 const void* pNext;
7218 uint32_t viewMask;
7219 uint32_t colorAttachmentCount;
7220 const VkFormat* pColorAttachmentFormats;
7221 VkFormat depthAttachmentFormat;
7222 VkFormat stencilAttachmentFormat;
7223} VkPipelineRenderingCreateInfo;
7224
7225typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
7226 VkStructureType sType;
7227 void* pNext;
7228 VkBool32 dynamicRendering;
7229} VkPhysicalDeviceDynamicRenderingFeatures;
7230
7231typedef struct VkCommandBufferInheritanceRenderingInfo {
7232 VkStructureType sType;
7233 const void* pNext;
7234 VkRenderingFlags flags;
7235 uint32_t viewMask;
7236 uint32_t colorAttachmentCount;
7237 const VkFormat* pColorAttachmentFormats;
7238 VkFormat depthAttachmentFormat;
7239 VkFormat stencilAttachmentFormat;
7240 VkSampleCountFlagBits rasterizationSamples;
7241} VkCommandBufferInheritanceRenderingInfo;
7242
7243typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
7244 VkStructureType sType;
7245 void* pNext;
7246 VkBool32 shaderIntegerDotProduct;
7247} VkPhysicalDeviceShaderIntegerDotProductFeatures;
7248
7249typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
7250 VkStructureType sType;
7251 void* pNext;
7252 VkBool32 integerDotProduct8BitUnsignedAccelerated;
7253 VkBool32 integerDotProduct8BitSignedAccelerated;
7254 VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
7255 VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
7256 VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
7257 VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7258 VkBool32 integerDotProduct16BitUnsignedAccelerated;
7259 VkBool32 integerDotProduct16BitSignedAccelerated;
7260 VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
7261 VkBool32 integerDotProduct32BitUnsignedAccelerated;
7262 VkBool32 integerDotProduct32BitSignedAccelerated;
7263 VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
7264 VkBool32 integerDotProduct64BitUnsignedAccelerated;
7265 VkBool32 integerDotProduct64BitSignedAccelerated;
7266 VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
7267 VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7268 VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7269 VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7270 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7271 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7272 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7273 VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7274 VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7275 VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7276 VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7277 VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7278 VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7279 VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7280 VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7281 VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7282} VkPhysicalDeviceShaderIntegerDotProductProperties;
7283
7284typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
7285 VkStructureType sType;
7286 void* pNext;
7287 VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
7288 VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
7289 VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
7290 VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
7291} VkPhysicalDeviceTexelBufferAlignmentProperties;
7292
7293typedef struct VkFormatProperties3 {
7294 VkStructureType sType;
7295 void* pNext;
7296 VkFormatFeatureFlags2 linearTilingFeatures;
7297 VkFormatFeatureFlags2 optimalTilingFeatures;
7298 VkFormatFeatureFlags2 bufferFeatures;
7299} VkFormatProperties3;
7300
7301typedef struct VkPhysicalDeviceMaintenance4Features {
7302 VkStructureType sType;
7303 void* pNext;
7304 VkBool32 maintenance4;
7305} VkPhysicalDeviceMaintenance4Features;
7306
7307typedef struct VkPhysicalDeviceMaintenance4Properties {
7308 VkStructureType sType;
7309 void* pNext;
7310 VkDeviceSize maxBufferSize;
7311} VkPhysicalDeviceMaintenance4Properties;
7312
7313typedef struct VkDeviceBufferMemoryRequirements {
7314 VkStructureType sType;
7315 const void* pNext;
7316 const VkBufferCreateInfo* pCreateInfo;
7317} VkDeviceBufferMemoryRequirements;
7318
7319typedef struct VkDeviceImageMemoryRequirements {
7320 VkStructureType sType;
7321 const void* pNext;
7322 const VkImageCreateInfo* pCreateInfo;
7323 VkImageAspectFlagBits planeAspect;
7324} VkDeviceImageMemoryRequirements;
7325
7326typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
7327typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
7328typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
7329typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
7330typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
7331typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
7332typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
7333typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
7334typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
7335typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
7336typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
7337typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
7338typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
7339typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
7340typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
7341typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
7342typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
7343typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
7344typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer commandBuffer);
7345typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
7346typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
7347typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
7348typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
7349typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
7350typedef 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);
7351typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
7352typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
7353typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
7354typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
7355typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
7356typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
7357typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
7358typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
7359typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
7360typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7361typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7362typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
7363
7364#ifndef VK_NO_PROTOTYPES
7365VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties(
7366 VkPhysicalDevice physicalDevice,
7367 uint32_t* pToolCount,
7368 VkPhysicalDeviceToolProperties* pToolProperties);
7369
7370VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot(
7371 VkDevice device,
7372 const VkPrivateDataSlotCreateInfo* pCreateInfo,
7373 const VkAllocationCallbacks* pAllocator,
7374 VkPrivateDataSlot* pPrivateDataSlot);
7375
7376VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot(
7377 VkDevice device,
7378 VkPrivateDataSlot privateDataSlot,
7379 const VkAllocationCallbacks* pAllocator);
7380
7381VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData(
7382 VkDevice device,
7383 VkObjectType objectType,
7384 uint64_t objectHandle,
7385 VkPrivateDataSlot privateDataSlot,
7386 uint64_t data);
7387
7388VKAPI_ATTR void VKAPI_CALL vkGetPrivateData(
7389 VkDevice device,
7390 VkObjectType objectType,
7391 uint64_t objectHandle,
7392 VkPrivateDataSlot privateDataSlot,
7393 uint64_t* pData);
7394
7395VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2(
7396 VkCommandBuffer commandBuffer,
7397 VkEvent event,
7398 const VkDependencyInfo* pDependencyInfo);
7399
7400VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2(
7401 VkCommandBuffer commandBuffer,
7402 VkEvent event,
7403 VkPipelineStageFlags2 stageMask);
7404
7405VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2(
7406 VkCommandBuffer commandBuffer,
7407 uint32_t eventCount,
7408 const VkEvent* pEvents,
7409 const VkDependencyInfo* pDependencyInfos);
7410
7411VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2(
7412 VkCommandBuffer commandBuffer,
7413 const VkDependencyInfo* pDependencyInfo);
7414
7415VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2(
7416 VkCommandBuffer commandBuffer,
7417 VkPipelineStageFlags2 stage,
7418 VkQueryPool queryPool,
7419 uint32_t query);
7420
7421VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2(
7422 VkQueue queue,
7423 uint32_t submitCount,
7424 const VkSubmitInfo2* pSubmits,
7425 VkFence fence);
7426
7427VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2(
7428 VkCommandBuffer commandBuffer,
7429 const VkCopyBufferInfo2* pCopyBufferInfo);
7430
7431VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2(
7432 VkCommandBuffer commandBuffer,
7433 const VkCopyImageInfo2* pCopyImageInfo);
7434
7435VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2(
7436 VkCommandBuffer commandBuffer,
7437 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
7438
7439VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2(
7440 VkCommandBuffer commandBuffer,
7441 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
7442
7443VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2(
7444 VkCommandBuffer commandBuffer,
7445 const VkBlitImageInfo2* pBlitImageInfo);
7446
7447VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2(
7448 VkCommandBuffer commandBuffer,
7449 const VkResolveImageInfo2* pResolveImageInfo);
7450
7451VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering(
7452 VkCommandBuffer commandBuffer,
7453 const VkRenderingInfo* pRenderingInfo);
7454
7455VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering(
7456 VkCommandBuffer commandBuffer);
7457
7458VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode(
7459 VkCommandBuffer commandBuffer,
7460 VkCullModeFlags cullMode);
7461
7462VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace(
7463 VkCommandBuffer commandBuffer,
7464 VkFrontFace frontFace);
7465
7466VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology(
7467 VkCommandBuffer commandBuffer,
7468 VkPrimitiveTopology primitiveTopology);
7469
7470VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount(
7471 VkCommandBuffer commandBuffer,
7472 uint32_t viewportCount,
7473 const VkViewport* pViewports);
7474
7475VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount(
7476 VkCommandBuffer commandBuffer,
7477 uint32_t scissorCount,
7478 const VkRect2D* pScissors);
7479
7480VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2(
7481 VkCommandBuffer commandBuffer,
7482 uint32_t firstBinding,
7483 uint32_t bindingCount,
7484 const VkBuffer* pBuffers,
7485 const VkDeviceSize* pOffsets,
7486 const VkDeviceSize* pSizes,
7487 const VkDeviceSize* pStrides);
7488
7489VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable(
7490 VkCommandBuffer commandBuffer,
7491 VkBool32 depthTestEnable);
7492
7493VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable(
7494 VkCommandBuffer commandBuffer,
7495 VkBool32 depthWriteEnable);
7496
7497VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp(
7498 VkCommandBuffer commandBuffer,
7499 VkCompareOp depthCompareOp);
7500
7501VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable(
7502 VkCommandBuffer commandBuffer,
7503 VkBool32 depthBoundsTestEnable);
7504
7505VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable(
7506 VkCommandBuffer commandBuffer,
7507 VkBool32 stencilTestEnable);
7508
7509VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp(
7510 VkCommandBuffer commandBuffer,
7511 VkStencilFaceFlags faceMask,
7512 VkStencilOp failOp,
7513 VkStencilOp passOp,
7514 VkStencilOp depthFailOp,
7515 VkCompareOp compareOp);
7516
7517VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable(
7518 VkCommandBuffer commandBuffer,
7519 VkBool32 rasterizerDiscardEnable);
7520
7521VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable(
7522 VkCommandBuffer commandBuffer,
7523 VkBool32 depthBiasEnable);
7524
7525VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable(
7526 VkCommandBuffer commandBuffer,
7527 VkBool32 primitiveRestartEnable);
7528
7529VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements(
7530 VkDevice device,
7531 const VkDeviceBufferMemoryRequirements* pInfo,
7532 VkMemoryRequirements2* pMemoryRequirements);
7533
7534VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements(
7535 VkDevice device,
7536 const VkDeviceImageMemoryRequirements* pInfo,
7537 VkMemoryRequirements2* pMemoryRequirements);
7538
7539VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements(
7540 VkDevice device,
7541 const VkDeviceImageMemoryRequirements* pInfo,
7542 uint32_t* pSparseMemoryRequirementCount,
7543 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
7544#endif
7545
7546
7547// VK_KHR_surface is a preprocessor guard. Do not pass it to API calls.
7548#define VK_KHR_surface 1
7549VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
7550#define VK_KHR_SURFACE_SPEC_VERSION 25
7551#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
7552
7553typedef enum VkPresentModeKHR {
7554 VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
7555 VK_PRESENT_MODE_MAILBOX_KHR = 1,
7556 VK_PRESENT_MODE_FIFO_KHR = 2,
7557 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
7558 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
7559 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
7560 VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
7561} VkPresentModeKHR;
7562
7563typedef enum VkColorSpaceKHR {
7564 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
7565 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
7566 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
7567 VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
7568 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
7569 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
7570 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
7571 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
7572 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
7573 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
7574 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
7575 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
7576 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
7577 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
7578 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
7579 VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
7580 VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
7581 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
7582 VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
7583} VkColorSpaceKHR;
7584
7585typedef enum VkSurfaceTransformFlagBitsKHR {
7586 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
7587 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
7588 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
7589 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
7590 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
7591 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
7592 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
7593 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
7594 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
7595 VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7596} VkSurfaceTransformFlagBitsKHR;
7597
7598typedef enum VkCompositeAlphaFlagBitsKHR {
7599 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
7600 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
7601 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
7602 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
7603 VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7604} VkCompositeAlphaFlagBitsKHR;
7605typedef VkFlags VkCompositeAlphaFlagsKHR;
7606typedef VkFlags VkSurfaceTransformFlagsKHR;
7607typedef struct VkSurfaceCapabilitiesKHR {
7608 uint32_t minImageCount;
7609 uint32_t maxImageCount;
7610 VkExtent2D currentExtent;
7611 VkExtent2D minImageExtent;
7612 VkExtent2D maxImageExtent;
7613 uint32_t maxImageArrayLayers;
7614 VkSurfaceTransformFlagsKHR supportedTransforms;
7615 VkSurfaceTransformFlagBitsKHR currentTransform;
7616 VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
7617 VkImageUsageFlags supportedUsageFlags;
7618} VkSurfaceCapabilitiesKHR;
7619
7620typedef struct VkSurfaceFormatKHR {
7621 VkFormat format;
7622 VkColorSpaceKHR colorSpace;
7623} VkSurfaceFormatKHR;
7624
7625typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
7626typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
7627typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
7628typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
7629typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
7630
7631#ifndef VK_NO_PROTOTYPES
7632VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
7633 VkInstance instance,
7634 VkSurfaceKHR surface,
7635 const VkAllocationCallbacks* pAllocator);
7636
7637VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
7638 VkPhysicalDevice physicalDevice,
7639 uint32_t queueFamilyIndex,
7640 VkSurfaceKHR surface,
7641 VkBool32* pSupported);
7642
7643VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
7644 VkPhysicalDevice physicalDevice,
7645 VkSurfaceKHR surface,
7646 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
7647
7648VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
7649 VkPhysicalDevice physicalDevice,
7650 VkSurfaceKHR surface,
7651 uint32_t* pSurfaceFormatCount,
7652 VkSurfaceFormatKHR* pSurfaceFormats);
7653
7654VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
7655 VkPhysicalDevice physicalDevice,
7656 VkSurfaceKHR surface,
7657 uint32_t* pPresentModeCount,
7658 VkPresentModeKHR* pPresentModes);
7659#endif
7660
7661
7662// VK_KHR_swapchain is a preprocessor guard. Do not pass it to API calls.
7663#define VK_KHR_swapchain 1
7664VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
7665#define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
7666#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
7667
7668typedef enum VkSwapchainCreateFlagBitsKHR {
7669 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
7670 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
7671 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
7672 VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 0x00000008,
7673 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7674} VkSwapchainCreateFlagBitsKHR;
7675typedef VkFlags VkSwapchainCreateFlagsKHR;
7676
7677typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
7678 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
7679 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
7680 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
7681 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
7682 VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7683} VkDeviceGroupPresentModeFlagBitsKHR;
7684typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
7685typedef struct VkSwapchainCreateInfoKHR {
7686 VkStructureType sType;
7687 const void* pNext;
7688 VkSwapchainCreateFlagsKHR flags;
7689 VkSurfaceKHR surface;
7690 uint32_t minImageCount;
7691 VkFormat imageFormat;
7692 VkColorSpaceKHR imageColorSpace;
7693 VkExtent2D imageExtent;
7694 uint32_t imageArrayLayers;
7695 VkImageUsageFlags imageUsage;
7696 VkSharingMode imageSharingMode;
7697 uint32_t queueFamilyIndexCount;
7698 const uint32_t* pQueueFamilyIndices;
7699 VkSurfaceTransformFlagBitsKHR preTransform;
7700 VkCompositeAlphaFlagBitsKHR compositeAlpha;
7701 VkPresentModeKHR presentMode;
7702 VkBool32 clipped;
7703 VkSwapchainKHR oldSwapchain;
7704} VkSwapchainCreateInfoKHR;
7705
7706typedef struct VkPresentInfoKHR {
7707 VkStructureType sType;
7708 const void* pNext;
7709 uint32_t waitSemaphoreCount;
7710 const VkSemaphore* pWaitSemaphores;
7711 uint32_t swapchainCount;
7712 const VkSwapchainKHR* pSwapchains;
7713 const uint32_t* pImageIndices;
7714 VkResult* pResults;
7715} VkPresentInfoKHR;
7716
7717typedef struct VkImageSwapchainCreateInfoKHR {
7718 VkStructureType sType;
7719 const void* pNext;
7720 VkSwapchainKHR swapchain;
7721} VkImageSwapchainCreateInfoKHR;
7722
7723typedef struct VkBindImageMemorySwapchainInfoKHR {
7724 VkStructureType sType;
7725 const void* pNext;
7726 VkSwapchainKHR swapchain;
7727 uint32_t imageIndex;
7728} VkBindImageMemorySwapchainInfoKHR;
7729
7730typedef struct VkAcquireNextImageInfoKHR {
7731 VkStructureType sType;
7732 const void* pNext;
7733 VkSwapchainKHR swapchain;
7734 uint64_t timeout;
7735 VkSemaphore semaphore;
7736 VkFence fence;
7737 uint32_t deviceMask;
7738} VkAcquireNextImageInfoKHR;
7739
7740typedef struct VkDeviceGroupPresentCapabilitiesKHR {
7741 VkStructureType sType;
7742 void* pNext;
7743 uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE];
7744 VkDeviceGroupPresentModeFlagsKHR modes;
7745} VkDeviceGroupPresentCapabilitiesKHR;
7746
7747typedef struct VkDeviceGroupPresentInfoKHR {
7748 VkStructureType sType;
7749 const void* pNext;
7750 uint32_t swapchainCount;
7751 const uint32_t* pDeviceMasks;
7752 VkDeviceGroupPresentModeFlagBitsKHR mode;
7753} VkDeviceGroupPresentInfoKHR;
7754
7755typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
7756 VkStructureType sType;
7757 const void* pNext;
7758 VkDeviceGroupPresentModeFlagsKHR modes;
7759} VkDeviceGroupSwapchainCreateInfoKHR;
7760
7761typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
7762typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
7763typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
7764typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
7765typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
7766typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
7767typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
7768typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
7769typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
7770
7771#ifndef VK_NO_PROTOTYPES
7772VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
7773 VkDevice device,
7774 const VkSwapchainCreateInfoKHR* pCreateInfo,
7775 const VkAllocationCallbacks* pAllocator,
7776 VkSwapchainKHR* pSwapchain);
7777
7778VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
7779 VkDevice device,
7780 VkSwapchainKHR swapchain,
7781 const VkAllocationCallbacks* pAllocator);
7782
7783VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
7784 VkDevice device,
7785 VkSwapchainKHR swapchain,
7786 uint32_t* pSwapchainImageCount,
7787 VkImage* pSwapchainImages);
7788
7789VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
7790 VkDevice device,
7791 VkSwapchainKHR swapchain,
7792 uint64_t timeout,
7793 VkSemaphore semaphore,
7794 VkFence fence,
7795 uint32_t* pImageIndex);
7796
7797VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
7798 VkQueue queue,
7799 const VkPresentInfoKHR* pPresentInfo);
7800
7801VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
7802 VkDevice device,
7803 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
7804
7805VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
7806 VkDevice device,
7807 VkSurfaceKHR surface,
7808 VkDeviceGroupPresentModeFlagsKHR* pModes);
7809
7810VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
7811 VkPhysicalDevice physicalDevice,
7812 VkSurfaceKHR surface,
7813 uint32_t* pRectCount,
7814 VkRect2D* pRects);
7815
7816VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
7817 VkDevice device,
7818 const VkAcquireNextImageInfoKHR* pAcquireInfo,
7819 uint32_t* pImageIndex);
7820#endif
7821
7822
7823// VK_KHR_display is a preprocessor guard. Do not pass it to API calls.
7824#define VK_KHR_display 1
7825VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
7826VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
7827#define VK_KHR_DISPLAY_SPEC_VERSION 23
7828#define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
7829typedef VkFlags VkDisplayModeCreateFlagsKHR;
7830
7831typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
7832 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
7833 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
7834 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
7835 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
7836 VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
7837} VkDisplayPlaneAlphaFlagBitsKHR;
7838typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
7839typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
7840typedef struct VkDisplayModeParametersKHR {
7841 VkExtent2D visibleRegion;
7842 uint32_t refreshRate;
7843} VkDisplayModeParametersKHR;
7844
7845typedef struct VkDisplayModeCreateInfoKHR {
7846 VkStructureType sType;
7847 const void* pNext;
7848 VkDisplayModeCreateFlagsKHR flags;
7849 VkDisplayModeParametersKHR parameters;
7850} VkDisplayModeCreateInfoKHR;
7851
7852typedef struct VkDisplayModePropertiesKHR {
7853 VkDisplayModeKHR displayMode;
7854 VkDisplayModeParametersKHR parameters;
7855} VkDisplayModePropertiesKHR;
7856
7857typedef struct VkDisplayPlaneCapabilitiesKHR {
7858 VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
7859 VkOffset2D minSrcPosition;
7860 VkOffset2D maxSrcPosition;
7861 VkExtent2D minSrcExtent;
7862 VkExtent2D maxSrcExtent;
7863 VkOffset2D minDstPosition;
7864 VkOffset2D maxDstPosition;
7865 VkExtent2D minDstExtent;
7866 VkExtent2D maxDstExtent;
7867} VkDisplayPlaneCapabilitiesKHR;
7868
7869typedef struct VkDisplayPlanePropertiesKHR {
7870 VkDisplayKHR currentDisplay;
7871 uint32_t currentStackIndex;
7872} VkDisplayPlanePropertiesKHR;
7873
7874typedef struct VkDisplayPropertiesKHR {
7875 VkDisplayKHR display;
7876 const char* displayName;
7877 VkExtent2D physicalDimensions;
7878 VkExtent2D physicalResolution;
7879 VkSurfaceTransformFlagsKHR supportedTransforms;
7880 VkBool32 planeReorderPossible;
7881 VkBool32 persistentContent;
7882} VkDisplayPropertiesKHR;
7883
7884typedef struct VkDisplaySurfaceCreateInfoKHR {
7885 VkStructureType sType;
7886 const void* pNext;
7887 VkDisplaySurfaceCreateFlagsKHR flags;
7888 VkDisplayModeKHR displayMode;
7889 uint32_t planeIndex;
7890 uint32_t planeStackIndex;
7891 VkSurfaceTransformFlagBitsKHR transform;
7892 float globalAlpha;
7893 VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
7894 VkExtent2D imageExtent;
7895} VkDisplaySurfaceCreateInfoKHR;
7896
7897typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
7898typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
7899typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
7900typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
7901typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
7902typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
7903typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
7904
7905#ifndef VK_NO_PROTOTYPES
7906VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
7907 VkPhysicalDevice physicalDevice,
7908 uint32_t* pPropertyCount,
7909 VkDisplayPropertiesKHR* pProperties);
7910
7911VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
7912 VkPhysicalDevice physicalDevice,
7913 uint32_t* pPropertyCount,
7914 VkDisplayPlanePropertiesKHR* pProperties);
7915
7916VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
7917 VkPhysicalDevice physicalDevice,
7918 uint32_t planeIndex,
7919 uint32_t* pDisplayCount,
7920 VkDisplayKHR* pDisplays);
7921
7922VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
7923 VkPhysicalDevice physicalDevice,
7924 VkDisplayKHR display,
7925 uint32_t* pPropertyCount,
7926 VkDisplayModePropertiesKHR* pProperties);
7927
7928VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
7929 VkPhysicalDevice physicalDevice,
7930 VkDisplayKHR display,
7931 const VkDisplayModeCreateInfoKHR* pCreateInfo,
7932 const VkAllocationCallbacks* pAllocator,
7933 VkDisplayModeKHR* pMode);
7934
7935VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
7936 VkPhysicalDevice physicalDevice,
7937 VkDisplayModeKHR mode,
7938 uint32_t planeIndex,
7939 VkDisplayPlaneCapabilitiesKHR* pCapabilities);
7940
7941VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
7942 VkInstance instance,
7943 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
7944 const VkAllocationCallbacks* pAllocator,
7945 VkSurfaceKHR* pSurface);
7946#endif
7947
7948
7949// VK_KHR_display_swapchain is a preprocessor guard. Do not pass it to API calls.
7950#define VK_KHR_display_swapchain 1
7951#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
7952#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
7953typedef struct VkDisplayPresentInfoKHR {
7954 VkStructureType sType;
7955 const void* pNext;
7956 VkRect2D srcRect;
7957 VkRect2D dstRect;
7958 VkBool32 persistent;
7959} VkDisplayPresentInfoKHR;
7960
7961typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
7962
7963#ifndef VK_NO_PROTOTYPES
7964VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
7965 VkDevice device,
7966 uint32_t swapchainCount,
7967 const VkSwapchainCreateInfoKHR* pCreateInfos,
7968 const VkAllocationCallbacks* pAllocator,
7969 VkSwapchainKHR* pSwapchains);
7970#endif
7971
7972
7973// VK_KHR_sampler_mirror_clamp_to_edge is a preprocessor guard. Do not pass it to API calls.
7974#define VK_KHR_sampler_mirror_clamp_to_edge 1
7975#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
7976#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
7977
7978
7979// VK_KHR_video_queue is a preprocessor guard. Do not pass it to API calls.
7980#define VK_KHR_video_queue 1
7981VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
7982VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
7983#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 8
7984#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
7985
7986typedef enum VkQueryResultStatusKHR {
7987 VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,
7988 VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,
7989 VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,
7990 VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR = -1000299000,
7991 VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF
7992} VkQueryResultStatusKHR;
7993
7994typedef enum VkVideoCodecOperationFlagBitsKHR {
7995 VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0,
7996 VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR = 0x00010000,
7997 VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR = 0x00020000,
7998 VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0x00000001,
7999 VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002,
8000 VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x00000004,
8001 VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8002} VkVideoCodecOperationFlagBitsKHR;
8003typedef VkFlags VkVideoCodecOperationFlagsKHR;
8004
8005typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
8006 VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0,
8007 VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
8008 VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
8009 VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
8010 VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,
8011 VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8012} VkVideoChromaSubsamplingFlagBitsKHR;
8013typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
8014
8015typedef enum VkVideoComponentBitDepthFlagBitsKHR {
8016 VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,
8017 VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,
8018 VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,
8019 VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,
8020 VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8021} VkVideoComponentBitDepthFlagBitsKHR;
8022typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
8023
8024typedef enum VkVideoCapabilityFlagBitsKHR {
8025 VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
8026 VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
8027 VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8028} VkVideoCapabilityFlagBitsKHR;
8029typedef VkFlags VkVideoCapabilityFlagsKHR;
8030
8031typedef enum VkVideoSessionCreateFlagBitsKHR {
8032 VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
8033 VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR = 0x00000002,
8034 VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x00000004,
8035 VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8036} VkVideoSessionCreateFlagBitsKHR;
8037typedef VkFlags VkVideoSessionCreateFlagsKHR;
8038typedef VkFlags VkVideoSessionParametersCreateFlagsKHR;
8039typedef VkFlags VkVideoBeginCodingFlagsKHR;
8040typedef VkFlags VkVideoEndCodingFlagsKHR;
8041
8042typedef enum VkVideoCodingControlFlagBitsKHR {
8043 VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
8044 VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002,
8045 VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR = 0x00000004,
8046 VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8047} VkVideoCodingControlFlagBitsKHR;
8048typedef VkFlags VkVideoCodingControlFlagsKHR;
8049typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR {
8050 VkStructureType sType;
8051 void* pNext;
8052 VkBool32 queryResultStatusSupport;
8053} VkQueueFamilyQueryResultStatusPropertiesKHR;
8054
8055typedef struct VkQueueFamilyVideoPropertiesKHR {
8056 VkStructureType sType;
8057 void* pNext;
8058 VkVideoCodecOperationFlagsKHR videoCodecOperations;
8059} VkQueueFamilyVideoPropertiesKHR;
8060
8061typedef struct VkVideoProfileInfoKHR {
8062 VkStructureType sType;
8063 const void* pNext;
8064 VkVideoCodecOperationFlagBitsKHR videoCodecOperation;
8065 VkVideoChromaSubsamplingFlagsKHR chromaSubsampling;
8066 VkVideoComponentBitDepthFlagsKHR lumaBitDepth;
8067 VkVideoComponentBitDepthFlagsKHR chromaBitDepth;
8068} VkVideoProfileInfoKHR;
8069
8070typedef struct VkVideoProfileListInfoKHR {
8071 VkStructureType sType;
8072 const void* pNext;
8073 uint32_t profileCount;
8074 const VkVideoProfileInfoKHR* pProfiles;
8075} VkVideoProfileListInfoKHR;
8076
8077typedef struct VkVideoCapabilitiesKHR {
8078 VkStructureType sType;
8079 void* pNext;
8080 VkVideoCapabilityFlagsKHR flags;
8081 VkDeviceSize minBitstreamBufferOffsetAlignment;
8082 VkDeviceSize minBitstreamBufferSizeAlignment;
8083 VkExtent2D pictureAccessGranularity;
8084 VkExtent2D minCodedExtent;
8085 VkExtent2D maxCodedExtent;
8086 uint32_t maxDpbSlots;
8087 uint32_t maxActiveReferencePictures;
8088 VkExtensionProperties stdHeaderVersion;
8089} VkVideoCapabilitiesKHR;
8090
8091typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
8092 VkStructureType sType;
8093 const void* pNext;
8094 VkImageUsageFlags imageUsage;
8095} VkPhysicalDeviceVideoFormatInfoKHR;
8096
8097typedef struct VkVideoFormatPropertiesKHR {
8098 VkStructureType sType;
8099 void* pNext;
8100 VkFormat format;
8101 VkComponentMapping componentMapping;
8102 VkImageCreateFlags imageCreateFlags;
8103 VkImageType imageType;
8104 VkImageTiling imageTiling;
8105 VkImageUsageFlags imageUsageFlags;
8106} VkVideoFormatPropertiesKHR;
8107
8108typedef struct VkVideoPictureResourceInfoKHR {
8109 VkStructureType sType;
8110 const void* pNext;
8111 VkOffset2D codedOffset;
8112 VkExtent2D codedExtent;
8113 uint32_t baseArrayLayer;
8114 VkImageView imageViewBinding;
8115} VkVideoPictureResourceInfoKHR;
8116
8117typedef struct VkVideoReferenceSlotInfoKHR {
8118 VkStructureType sType;
8119 const void* pNext;
8120 int32_t slotIndex;
8121 const VkVideoPictureResourceInfoKHR* pPictureResource;
8122} VkVideoReferenceSlotInfoKHR;
8123
8124typedef struct VkVideoSessionMemoryRequirementsKHR {
8125 VkStructureType sType;
8126 void* pNext;
8127 uint32_t memoryBindIndex;
8128 VkMemoryRequirements memoryRequirements;
8129} VkVideoSessionMemoryRequirementsKHR;
8130
8131typedef struct VkBindVideoSessionMemoryInfoKHR {
8132 VkStructureType sType;
8133 const void* pNext;
8134 uint32_t memoryBindIndex;
8135 VkDeviceMemory memory;
8136 VkDeviceSize memoryOffset;
8137 VkDeviceSize memorySize;
8138} VkBindVideoSessionMemoryInfoKHR;
8139
8140typedef struct VkVideoSessionCreateInfoKHR {
8141 VkStructureType sType;
8142 const void* pNext;
8143 uint32_t queueFamilyIndex;
8144 VkVideoSessionCreateFlagsKHR flags;
8145 const VkVideoProfileInfoKHR* pVideoProfile;
8146 VkFormat pictureFormat;
8147 VkExtent2D maxCodedExtent;
8148 VkFormat referencePictureFormat;
8149 uint32_t maxDpbSlots;
8150 uint32_t maxActiveReferencePictures;
8151 const VkExtensionProperties* pStdHeaderVersion;
8152} VkVideoSessionCreateInfoKHR;
8153
8154typedef struct VkVideoSessionParametersCreateInfoKHR {
8155 VkStructureType sType;
8156 const void* pNext;
8157 VkVideoSessionParametersCreateFlagsKHR flags;
8158 VkVideoSessionParametersKHR videoSessionParametersTemplate;
8159 VkVideoSessionKHR videoSession;
8160} VkVideoSessionParametersCreateInfoKHR;
8161
8162typedef struct VkVideoSessionParametersUpdateInfoKHR {
8163 VkStructureType sType;
8164 const void* pNext;
8165 uint32_t updateSequenceCount;
8166} VkVideoSessionParametersUpdateInfoKHR;
8167
8168typedef struct VkVideoBeginCodingInfoKHR {
8169 VkStructureType sType;
8170 const void* pNext;
8171 VkVideoBeginCodingFlagsKHR flags;
8172 VkVideoSessionKHR videoSession;
8173 VkVideoSessionParametersKHR videoSessionParameters;
8174 uint32_t referenceSlotCount;
8175 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
8176} VkVideoBeginCodingInfoKHR;
8177
8178typedef struct VkVideoEndCodingInfoKHR {
8179 VkStructureType sType;
8180 const void* pNext;
8181 VkVideoEndCodingFlagsKHR flags;
8182} VkVideoEndCodingInfoKHR;
8183
8184typedef struct VkVideoCodingControlInfoKHR {
8185 VkStructureType sType;
8186 const void* pNext;
8187 VkVideoCodingControlFlagsKHR flags;
8188} VkVideoCodingControlInfoKHR;
8189
8190typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
8191typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
8192typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
8193typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
8194typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
8195typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
8196typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
8197typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
8198typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
8199typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
8200typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
8201typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
8202
8203#ifndef VK_NO_PROTOTYPES
8204VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
8205 VkPhysicalDevice physicalDevice,
8206 const VkVideoProfileInfoKHR* pVideoProfile,
8207 VkVideoCapabilitiesKHR* pCapabilities);
8208
8209VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
8210 VkPhysicalDevice physicalDevice,
8211 const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
8212 uint32_t* pVideoFormatPropertyCount,
8213 VkVideoFormatPropertiesKHR* pVideoFormatProperties);
8214
8215VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(
8216 VkDevice device,
8217 const VkVideoSessionCreateInfoKHR* pCreateInfo,
8218 const VkAllocationCallbacks* pAllocator,
8219 VkVideoSessionKHR* pVideoSession);
8220
8221VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
8222 VkDevice device,
8223 VkVideoSessionKHR videoSession,
8224 const VkAllocationCallbacks* pAllocator);
8225
8226VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
8227 VkDevice device,
8228 VkVideoSessionKHR videoSession,
8229 uint32_t* pMemoryRequirementsCount,
8230 VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
8231
8232VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
8233 VkDevice device,
8234 VkVideoSessionKHR videoSession,
8235 uint32_t bindSessionMemoryInfoCount,
8236 const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
8237
8238VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
8239 VkDevice device,
8240 const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
8241 const VkAllocationCallbacks* pAllocator,
8242 VkVideoSessionParametersKHR* pVideoSessionParameters);
8243
8244VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(
8245 VkDevice device,
8246 VkVideoSessionParametersKHR videoSessionParameters,
8247 const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
8248
8249VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(
8250 VkDevice device,
8251 VkVideoSessionParametersKHR videoSessionParameters,
8252 const VkAllocationCallbacks* pAllocator);
8253
8254VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(
8255 VkCommandBuffer commandBuffer,
8256 const VkVideoBeginCodingInfoKHR* pBeginInfo);
8257
8258VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(
8259 VkCommandBuffer commandBuffer,
8260 const VkVideoEndCodingInfoKHR* pEndCodingInfo);
8261
8262VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
8263 VkCommandBuffer commandBuffer,
8264 const VkVideoCodingControlInfoKHR* pCodingControlInfo);
8265#endif
8266
8267
8268// VK_KHR_video_decode_queue is a preprocessor guard. Do not pass it to API calls.
8269#define VK_KHR_video_decode_queue 1
8270#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 8
8271#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
8272
8273typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
8274 VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
8275 VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
8276 VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8277} VkVideoDecodeCapabilityFlagBitsKHR;
8278typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
8279
8280typedef enum VkVideoDecodeUsageFlagBitsKHR {
8281 VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0,
8282 VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
8283 VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002,
8284 VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004,
8285 VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8286} VkVideoDecodeUsageFlagBitsKHR;
8287typedef VkFlags VkVideoDecodeUsageFlagsKHR;
8288typedef VkFlags VkVideoDecodeFlagsKHR;
8289typedef struct VkVideoDecodeCapabilitiesKHR {
8290 VkStructureType sType;
8291 void* pNext;
8292 VkVideoDecodeCapabilityFlagsKHR flags;
8293} VkVideoDecodeCapabilitiesKHR;
8294
8295typedef struct VkVideoDecodeUsageInfoKHR {
8296 VkStructureType sType;
8297 const void* pNext;
8298 VkVideoDecodeUsageFlagsKHR videoUsageHints;
8299} VkVideoDecodeUsageInfoKHR;
8300
8301typedef struct VkVideoDecodeInfoKHR {
8302 VkStructureType sType;
8303 const void* pNext;
8304 VkVideoDecodeFlagsKHR flags;
8305 VkBuffer srcBuffer;
8306 VkDeviceSize srcBufferOffset;
8307 VkDeviceSize srcBufferRange;
8308 VkVideoPictureResourceInfoKHR dstPictureResource;
8309 const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
8310 uint32_t referenceSlotCount;
8311 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
8312} VkVideoDecodeInfoKHR;
8313
8314typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo);
8315
8316#ifndef VK_NO_PROTOTYPES
8317VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
8318 VkCommandBuffer commandBuffer,
8319 const VkVideoDecodeInfoKHR* pDecodeInfo);
8320#endif
8321
8322
8323// VK_KHR_video_encode_h264 is a preprocessor guard. Do not pass it to API calls.
8324#define VK_KHR_video_encode_h264 1
8325#include "../vk_video/vulkan_video_codec_h264std.h"
8326#include "../vk_video/vulkan_video_codec_h264std_encode.h"
8327#define VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION 14
8328#define VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_KHR_video_encode_h264"
8329
8330typedef enum VkVideoEncodeH264CapabilityFlagBitsKHR {
8331 VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
8332 VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
8333 VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR = 0x00000004,
8334 VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR = 0x00000008,
8335 VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
8336 VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
8337 VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
8338 VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR = 0x00000080,
8339 VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x00000100,
8340 VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8341} VkVideoEncodeH264CapabilityFlagBitsKHR;
8342typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR;
8343
8344typedef enum VkVideoEncodeH264StdFlagBitsKHR {
8345 VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
8346 VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR = 0x00000002,
8347 VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
8348 VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000008,
8349 VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000010,
8350 VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
8351 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
8352 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR = 0x00000080,
8353 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR = 0x00000100,
8354 VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR = 0x00000200,
8355 VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR = 0x00000400,
8356 VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR = 0x00000800,
8357 VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR = 0x00001000,
8358 VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR = 0x00002000,
8359 VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
8360 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR = 0x00008000,
8361 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR = 0x00010000,
8362 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR = 0x00020000,
8363 VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
8364 VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
8365 VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8366} VkVideoEncodeH264StdFlagBitsKHR;
8367typedef VkFlags VkVideoEncodeH264StdFlagsKHR;
8368
8369typedef enum VkVideoEncodeH264RateControlFlagBitsKHR {
8370 VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
8371 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
8372 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
8373 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
8374 VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
8375 VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8376} VkVideoEncodeH264RateControlFlagBitsKHR;
8377typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR;
8378typedef struct VkVideoEncodeH264CapabilitiesKHR {
8379 VkStructureType sType;
8380 void* pNext;
8381 VkVideoEncodeH264CapabilityFlagsKHR flags;
8382 StdVideoH264LevelIdc maxLevelIdc;
8383 uint32_t maxSliceCount;
8384 uint32_t maxPPictureL0ReferenceCount;
8385 uint32_t maxBPictureL0ReferenceCount;
8386 uint32_t maxL1ReferenceCount;
8387 uint32_t maxTemporalLayerCount;
8388 VkBool32 expectDyadicTemporalLayerPattern;
8389 int32_t minQp;
8390 int32_t maxQp;
8391 VkBool32 prefersGopRemainingFrames;
8392 VkBool32 requiresGopRemainingFrames;
8393 VkVideoEncodeH264StdFlagsKHR stdSyntaxFlags;
8394} VkVideoEncodeH264CapabilitiesKHR;
8395
8396typedef struct VkVideoEncodeH264QpKHR {
8397 int32_t qpI;
8398 int32_t qpP;
8399 int32_t qpB;
8400} VkVideoEncodeH264QpKHR;
8401
8402typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR {
8403 VkStructureType sType;
8404 void* pNext;
8405 VkVideoEncodeH264RateControlFlagsKHR preferredRateControlFlags;
8406 uint32_t preferredGopFrameCount;
8407 uint32_t preferredIdrPeriod;
8408 uint32_t preferredConsecutiveBFrameCount;
8409 uint32_t preferredTemporalLayerCount;
8410 VkVideoEncodeH264QpKHR preferredConstantQp;
8411 uint32_t preferredMaxL0ReferenceCount;
8412 uint32_t preferredMaxL1ReferenceCount;
8413 VkBool32 preferredStdEntropyCodingModeFlag;
8414} VkVideoEncodeH264QualityLevelPropertiesKHR;
8415
8416typedef struct VkVideoEncodeH264SessionCreateInfoKHR {
8417 VkStructureType sType;
8418 const void* pNext;
8419 VkBool32 useMaxLevelIdc;
8420 StdVideoH264LevelIdc maxLevelIdc;
8421} VkVideoEncodeH264SessionCreateInfoKHR;
8422
8423typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR {
8424 VkStructureType sType;
8425 const void* pNext;
8426 uint32_t stdSPSCount;
8427 const StdVideoH264SequenceParameterSet* pStdSPSs;
8428 uint32_t stdPPSCount;
8429 const StdVideoH264PictureParameterSet* pStdPPSs;
8430} VkVideoEncodeH264SessionParametersAddInfoKHR;
8431
8432typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR {
8433 VkStructureType sType;
8434 const void* pNext;
8435 uint32_t maxStdSPSCount;
8436 uint32_t maxStdPPSCount;
8437 const VkVideoEncodeH264SessionParametersAddInfoKHR* pParametersAddInfo;
8438} VkVideoEncodeH264SessionParametersCreateInfoKHR;
8439
8440typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR {
8441 VkStructureType sType;
8442 const void* pNext;
8443 VkBool32 writeStdSPS;
8444 VkBool32 writeStdPPS;
8445 uint32_t stdSPSId;
8446 uint32_t stdPPSId;
8447} VkVideoEncodeH264SessionParametersGetInfoKHR;
8448
8449typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR {
8450 VkStructureType sType;
8451 void* pNext;
8452 VkBool32 hasStdSPSOverrides;
8453 VkBool32 hasStdPPSOverrides;
8454} VkVideoEncodeH264SessionParametersFeedbackInfoKHR;
8455
8456typedef struct VkVideoEncodeH264NaluSliceInfoKHR {
8457 VkStructureType sType;
8458 const void* pNext;
8459 int32_t constantQp;
8460 const StdVideoEncodeH264SliceHeader* pStdSliceHeader;
8461} VkVideoEncodeH264NaluSliceInfoKHR;
8462
8463typedef struct VkVideoEncodeH264PictureInfoKHR {
8464 VkStructureType sType;
8465 const void* pNext;
8466 uint32_t naluSliceEntryCount;
8467 const VkVideoEncodeH264NaluSliceInfoKHR* pNaluSliceEntries;
8468 const StdVideoEncodeH264PictureInfo* pStdPictureInfo;
8469 VkBool32 generatePrefixNalu;
8470} VkVideoEncodeH264PictureInfoKHR;
8471
8472typedef struct VkVideoEncodeH264DpbSlotInfoKHR {
8473 VkStructureType sType;
8474 const void* pNext;
8475 const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo;
8476} VkVideoEncodeH264DpbSlotInfoKHR;
8477
8478typedef struct VkVideoEncodeH264ProfileInfoKHR {
8479 VkStructureType sType;
8480 const void* pNext;
8481 StdVideoH264ProfileIdc stdProfileIdc;
8482} VkVideoEncodeH264ProfileInfoKHR;
8483
8484typedef struct VkVideoEncodeH264RateControlInfoKHR {
8485 VkStructureType sType;
8486 const void* pNext;
8487 VkVideoEncodeH264RateControlFlagsKHR flags;
8488 uint32_t gopFrameCount;
8489 uint32_t idrPeriod;
8490 uint32_t consecutiveBFrameCount;
8491 uint32_t temporalLayerCount;
8492} VkVideoEncodeH264RateControlInfoKHR;
8493
8494typedef struct VkVideoEncodeH264FrameSizeKHR {
8495 uint32_t frameISize;
8496 uint32_t framePSize;
8497 uint32_t frameBSize;
8498} VkVideoEncodeH264FrameSizeKHR;
8499
8500typedef struct VkVideoEncodeH264RateControlLayerInfoKHR {
8501 VkStructureType sType;
8502 const void* pNext;
8503 VkBool32 useMinQp;
8504 VkVideoEncodeH264QpKHR minQp;
8505 VkBool32 useMaxQp;
8506 VkVideoEncodeH264QpKHR maxQp;
8507 VkBool32 useMaxFrameSize;
8508 VkVideoEncodeH264FrameSizeKHR maxFrameSize;
8509} VkVideoEncodeH264RateControlLayerInfoKHR;
8510
8511typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR {
8512 VkStructureType sType;
8513 const void* pNext;
8514 VkBool32 useGopRemainingFrames;
8515 uint32_t gopRemainingI;
8516 uint32_t gopRemainingP;
8517 uint32_t gopRemainingB;
8518} VkVideoEncodeH264GopRemainingFrameInfoKHR;
8519
8520
8521
8522// VK_KHR_video_encode_h265 is a preprocessor guard. Do not pass it to API calls.
8523#define VK_KHR_video_encode_h265 1
8524#include "../vk_video/vulkan_video_codec_h265std.h"
8525#include "../vk_video/vulkan_video_codec_h265std_encode.h"
8526#define VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION 14
8527#define VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_KHR_video_encode_h265"
8528
8529typedef enum VkVideoEncodeH265CapabilityFlagBitsKHR {
8530 VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
8531 VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
8532 VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR = 0x00000004,
8533 VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR = 0x00000008,
8534 VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
8535 VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
8536 VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
8537 VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR = 0x00000080,
8538 VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR = 0x00000100,
8539 VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x00000200,
8540 VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8541} VkVideoEncodeH265CapabilityFlagBitsKHR;
8542typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR;
8543
8544typedef enum VkVideoEncodeH265StdFlagBitsKHR {
8545 VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
8546 VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR = 0x00000002,
8547 VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
8548 VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR = 0x00000008,
8549 VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR = 0x00000010,
8550 VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
8551 VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
8552 VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR = 0x00000080,
8553 VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR = 0x00000100,
8554 VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR = 0x00000200,
8555 VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR = 0x00000400,
8556 VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR = 0x00000800,
8557 VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR = 0x00001000,
8558 VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR = 0x00002000,
8559 VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
8560 VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR = 0x00008000,
8561 VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR = 0x00010000,
8562 VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR = 0x00020000,
8563 VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR = 0x00040000,
8564 VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
8565 VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
8566 VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8567} VkVideoEncodeH265StdFlagBitsKHR;
8568typedef VkFlags VkVideoEncodeH265StdFlagsKHR;
8569
8570typedef enum VkVideoEncodeH265CtbSizeFlagBitsKHR {
8571 VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR = 0x00000001,
8572 VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR = 0x00000002,
8573 VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR = 0x00000004,
8574 VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8575} VkVideoEncodeH265CtbSizeFlagBitsKHR;
8576typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR;
8577
8578typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsKHR {
8579 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR = 0x00000001,
8580 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR = 0x00000002,
8581 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR = 0x00000004,
8582 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR = 0x00000008,
8583 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8584} VkVideoEncodeH265TransformBlockSizeFlagBitsKHR;
8585typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR;
8586
8587typedef enum VkVideoEncodeH265RateControlFlagBitsKHR {
8588 VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
8589 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
8590 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
8591 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
8592 VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
8593 VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8594} VkVideoEncodeH265RateControlFlagBitsKHR;
8595typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR;
8596typedef struct VkVideoEncodeH265CapabilitiesKHR {
8597 VkStructureType sType;
8598 void* pNext;
8599 VkVideoEncodeH265CapabilityFlagsKHR flags;
8600 StdVideoH265LevelIdc maxLevelIdc;
8601 uint32_t maxSliceSegmentCount;
8602 VkExtent2D maxTiles;
8603 VkVideoEncodeH265CtbSizeFlagsKHR ctbSizes;
8604 VkVideoEncodeH265TransformBlockSizeFlagsKHR transformBlockSizes;
8605 uint32_t maxPPictureL0ReferenceCount;
8606 uint32_t maxBPictureL0ReferenceCount;
8607 uint32_t maxL1ReferenceCount;
8608 uint32_t maxSubLayerCount;
8609 VkBool32 expectDyadicTemporalSubLayerPattern;
8610 int32_t minQp;
8611 int32_t maxQp;
8612 VkBool32 prefersGopRemainingFrames;
8613 VkBool32 requiresGopRemainingFrames;
8614 VkVideoEncodeH265StdFlagsKHR stdSyntaxFlags;
8615} VkVideoEncodeH265CapabilitiesKHR;
8616
8617typedef struct VkVideoEncodeH265SessionCreateInfoKHR {
8618 VkStructureType sType;
8619 const void* pNext;
8620 VkBool32 useMaxLevelIdc;
8621 StdVideoH265LevelIdc maxLevelIdc;
8622} VkVideoEncodeH265SessionCreateInfoKHR;
8623
8624typedef struct VkVideoEncodeH265QpKHR {
8625 int32_t qpI;
8626 int32_t qpP;
8627 int32_t qpB;
8628} VkVideoEncodeH265QpKHR;
8629
8630typedef struct VkVideoEncodeH265QualityLevelPropertiesKHR {
8631 VkStructureType sType;
8632 void* pNext;
8633 VkVideoEncodeH265RateControlFlagsKHR preferredRateControlFlags;
8634 uint32_t preferredGopFrameCount;
8635 uint32_t preferredIdrPeriod;
8636 uint32_t preferredConsecutiveBFrameCount;
8637 uint32_t preferredSubLayerCount;
8638 VkVideoEncodeH265QpKHR preferredConstantQp;
8639 uint32_t preferredMaxL0ReferenceCount;
8640 uint32_t preferredMaxL1ReferenceCount;
8641} VkVideoEncodeH265QualityLevelPropertiesKHR;
8642
8643typedef struct VkVideoEncodeH265SessionParametersAddInfoKHR {
8644 VkStructureType sType;
8645 const void* pNext;
8646 uint32_t stdVPSCount;
8647 const StdVideoH265VideoParameterSet* pStdVPSs;
8648 uint32_t stdSPSCount;
8649 const StdVideoH265SequenceParameterSet* pStdSPSs;
8650 uint32_t stdPPSCount;
8651 const StdVideoH265PictureParameterSet* pStdPPSs;
8652} VkVideoEncodeH265SessionParametersAddInfoKHR;
8653
8654typedef struct VkVideoEncodeH265SessionParametersCreateInfoKHR {
8655 VkStructureType sType;
8656 const void* pNext;
8657 uint32_t maxStdVPSCount;
8658 uint32_t maxStdSPSCount;
8659 uint32_t maxStdPPSCount;
8660 const VkVideoEncodeH265SessionParametersAddInfoKHR* pParametersAddInfo;
8661} VkVideoEncodeH265SessionParametersCreateInfoKHR;
8662
8663typedef struct VkVideoEncodeH265SessionParametersGetInfoKHR {
8664 VkStructureType sType;
8665 const void* pNext;
8666 VkBool32 writeStdVPS;
8667 VkBool32 writeStdSPS;
8668 VkBool32 writeStdPPS;
8669 uint32_t stdVPSId;
8670 uint32_t stdSPSId;
8671 uint32_t stdPPSId;
8672} VkVideoEncodeH265SessionParametersGetInfoKHR;
8673
8674typedef struct VkVideoEncodeH265SessionParametersFeedbackInfoKHR {
8675 VkStructureType sType;
8676 void* pNext;
8677 VkBool32 hasStdVPSOverrides;
8678 VkBool32 hasStdSPSOverrides;
8679 VkBool32 hasStdPPSOverrides;
8680} VkVideoEncodeH265SessionParametersFeedbackInfoKHR;
8681
8682typedef struct VkVideoEncodeH265NaluSliceSegmentInfoKHR {
8683 VkStructureType sType;
8684 const void* pNext;
8685 int32_t constantQp;
8686 const StdVideoEncodeH265SliceSegmentHeader* pStdSliceSegmentHeader;
8687} VkVideoEncodeH265NaluSliceSegmentInfoKHR;
8688
8689typedef struct VkVideoEncodeH265PictureInfoKHR {
8690 VkStructureType sType;
8691 const void* pNext;
8692 uint32_t naluSliceSegmentEntryCount;
8693 const VkVideoEncodeH265NaluSliceSegmentInfoKHR* pNaluSliceSegmentEntries;
8694 const StdVideoEncodeH265PictureInfo* pStdPictureInfo;
8695} VkVideoEncodeH265PictureInfoKHR;
8696
8697typedef struct VkVideoEncodeH265DpbSlotInfoKHR {
8698 VkStructureType sType;
8699 const void* pNext;
8700 const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo;
8701} VkVideoEncodeH265DpbSlotInfoKHR;
8702
8703typedef struct VkVideoEncodeH265ProfileInfoKHR {
8704 VkStructureType sType;
8705 const void* pNext;
8706 StdVideoH265ProfileIdc stdProfileIdc;
8707} VkVideoEncodeH265ProfileInfoKHR;
8708
8709typedef struct VkVideoEncodeH265RateControlInfoKHR {
8710 VkStructureType sType;
8711 const void* pNext;
8712 VkVideoEncodeH265RateControlFlagsKHR flags;
8713 uint32_t gopFrameCount;
8714 uint32_t idrPeriod;
8715 uint32_t consecutiveBFrameCount;
8716 uint32_t subLayerCount;
8717} VkVideoEncodeH265RateControlInfoKHR;
8718
8719typedef struct VkVideoEncodeH265FrameSizeKHR {
8720 uint32_t frameISize;
8721 uint32_t framePSize;
8722 uint32_t frameBSize;
8723} VkVideoEncodeH265FrameSizeKHR;
8724
8725typedef struct VkVideoEncodeH265RateControlLayerInfoKHR {
8726 VkStructureType sType;
8727 const void* pNext;
8728 VkBool32 useMinQp;
8729 VkVideoEncodeH265QpKHR minQp;
8730 VkBool32 useMaxQp;
8731 VkVideoEncodeH265QpKHR maxQp;
8732 VkBool32 useMaxFrameSize;
8733 VkVideoEncodeH265FrameSizeKHR maxFrameSize;
8734} VkVideoEncodeH265RateControlLayerInfoKHR;
8735
8736typedef struct VkVideoEncodeH265GopRemainingFrameInfoKHR {
8737 VkStructureType sType;
8738 const void* pNext;
8739 VkBool32 useGopRemainingFrames;
8740 uint32_t gopRemainingI;
8741 uint32_t gopRemainingP;
8742 uint32_t gopRemainingB;
8743} VkVideoEncodeH265GopRemainingFrameInfoKHR;
8744
8745
8746
8747// VK_KHR_video_decode_h264 is a preprocessor guard. Do not pass it to API calls.
8748#define VK_KHR_video_decode_h264 1
8749#include "../vk_video/vulkan_video_codec_h264std_decode.h"
8750#define VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION 9
8751#define VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME "VK_KHR_video_decode_h264"
8752
8753typedef enum VkVideoDecodeH264PictureLayoutFlagBitsKHR {
8754 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0,
8755 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0x00000001,
8756 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0x00000002,
8757 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8758} VkVideoDecodeH264PictureLayoutFlagBitsKHR;
8759typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR;
8760typedef struct VkVideoDecodeH264ProfileInfoKHR {
8761 VkStructureType sType;
8762 const void* pNext;
8763 StdVideoH264ProfileIdc stdProfileIdc;
8764 VkVideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout;
8765} VkVideoDecodeH264ProfileInfoKHR;
8766
8767typedef struct VkVideoDecodeH264CapabilitiesKHR {
8768 VkStructureType sType;
8769 void* pNext;
8770 StdVideoH264LevelIdc maxLevelIdc;
8771 VkOffset2D fieldOffsetGranularity;
8772} VkVideoDecodeH264CapabilitiesKHR;
8773
8774typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR {
8775 VkStructureType sType;
8776 const void* pNext;
8777 uint32_t stdSPSCount;
8778 const StdVideoH264SequenceParameterSet* pStdSPSs;
8779 uint32_t stdPPSCount;
8780 const StdVideoH264PictureParameterSet* pStdPPSs;
8781} VkVideoDecodeH264SessionParametersAddInfoKHR;
8782
8783typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR {
8784 VkStructureType sType;
8785 const void* pNext;
8786 uint32_t maxStdSPSCount;
8787 uint32_t maxStdPPSCount;
8788 const VkVideoDecodeH264SessionParametersAddInfoKHR* pParametersAddInfo;
8789} VkVideoDecodeH264SessionParametersCreateInfoKHR;
8790
8791typedef struct VkVideoDecodeH264PictureInfoKHR {
8792 VkStructureType sType;
8793 const void* pNext;
8794 const StdVideoDecodeH264PictureInfo* pStdPictureInfo;
8795 uint32_t sliceCount;
8796 const uint32_t* pSliceOffsets;
8797} VkVideoDecodeH264PictureInfoKHR;
8798
8799typedef struct VkVideoDecodeH264DpbSlotInfoKHR {
8800 VkStructureType sType;
8801 const void* pNext;
8802 const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo;
8803} VkVideoDecodeH264DpbSlotInfoKHR;
8804
8805
8806
8807// VK_KHR_dynamic_rendering is a preprocessor guard. Do not pass it to API calls.
8808#define VK_KHR_dynamic_rendering 1
8809#define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
8810#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
8811typedef VkRenderingFlags VkRenderingFlagsKHR;
8812
8813typedef VkRenderingFlagBits VkRenderingFlagBitsKHR;
8814
8815typedef VkRenderingInfo VkRenderingInfoKHR;
8816
8817typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
8818
8819typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
8820
8821typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
8822
8823typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
8824
8825typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
8826 VkStructureType sType;
8827 const void* pNext;
8828 VkImageView imageView;
8829 VkImageLayout imageLayout;
8830 VkExtent2D shadingRateAttachmentTexelSize;
8831} VkRenderingFragmentShadingRateAttachmentInfoKHR;
8832
8833typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
8834 VkStructureType sType;
8835 const void* pNext;
8836 VkImageView imageView;
8837 VkImageLayout imageLayout;
8838} VkRenderingFragmentDensityMapAttachmentInfoEXT;
8839
8840typedef struct VkAttachmentSampleCountInfoAMD {
8841 VkStructureType sType;
8842 const void* pNext;
8843 uint32_t colorAttachmentCount;
8844 const VkSampleCountFlagBits* pColorAttachmentSamples;
8845 VkSampleCountFlagBits depthStencilAttachmentSamples;
8846} VkAttachmentSampleCountInfoAMD;
8847
8848typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
8849
8850typedef struct VkMultiviewPerViewAttributesInfoNVX {
8851 VkStructureType sType;
8852 const void* pNext;
8853 VkBool32 perViewAttributes;
8854 VkBool32 perViewAttributesPositionXOnly;
8855} VkMultiviewPerViewAttributesInfoNVX;
8856
8857typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
8858typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer commandBuffer);
8859
8860#ifndef VK_NO_PROTOTYPES
8861VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
8862 VkCommandBuffer commandBuffer,
8863 const VkRenderingInfo* pRenderingInfo);
8864
8865VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
8866 VkCommandBuffer commandBuffer);
8867#endif
8868
8869
8870// VK_KHR_multiview is a preprocessor guard. Do not pass it to API calls.
8871#define VK_KHR_multiview 1
8872#define VK_KHR_MULTIVIEW_SPEC_VERSION 1
8873#define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
8874typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
8875
8876typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
8877
8878typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
8879
8880
8881
8882// VK_KHR_get_physical_device_properties2 is a preprocessor guard. Do not pass it to API calls.
8883#define VK_KHR_get_physical_device_properties2 1
8884#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
8885#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
8886typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
8887
8888typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
8889
8890typedef VkFormatProperties2 VkFormatProperties2KHR;
8891
8892typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
8893
8894typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
8895
8896typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
8897
8898typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
8899
8900typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
8901
8902typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
8903
8904typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
8905typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
8906typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
8907typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
8908typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
8909typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
8910typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
8911
8912#ifndef VK_NO_PROTOTYPES
8913VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
8914 VkPhysicalDevice physicalDevice,
8915 VkPhysicalDeviceFeatures2* pFeatures);
8916
8917VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
8918 VkPhysicalDevice physicalDevice,
8919 VkPhysicalDeviceProperties2* pProperties);
8920
8921VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
8922 VkPhysicalDevice physicalDevice,
8923 VkFormat format,
8924 VkFormatProperties2* pFormatProperties);
8925
8926VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
8927 VkPhysicalDevice physicalDevice,
8928 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
8929 VkImageFormatProperties2* pImageFormatProperties);
8930
8931VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
8932 VkPhysicalDevice physicalDevice,
8933 uint32_t* pQueueFamilyPropertyCount,
8934 VkQueueFamilyProperties2* pQueueFamilyProperties);
8935
8936VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
8937 VkPhysicalDevice physicalDevice,
8938 VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
8939
8940VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
8941 VkPhysicalDevice physicalDevice,
8942 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
8943 uint32_t* pPropertyCount,
8944 VkSparseImageFormatProperties2* pProperties);
8945#endif
8946
8947
8948// VK_KHR_device_group is a preprocessor guard. Do not pass it to API calls.
8949#define VK_KHR_device_group 1
8950#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4
8951#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
8952typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
8953
8954typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
8955
8956typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
8957
8958typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
8959
8960typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
8961
8962typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
8963
8964typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
8965
8966typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
8967
8968typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
8969
8970typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
8971
8972typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
8973
8974typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
8975typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
8976typedef 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);
8977
8978#ifndef VK_NO_PROTOTYPES
8979VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
8980 VkDevice device,
8981 uint32_t heapIndex,
8982 uint32_t localDeviceIndex,
8983 uint32_t remoteDeviceIndex,
8984 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
8985
8986VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
8987 VkCommandBuffer commandBuffer,
8988 uint32_t deviceMask);
8989
8990VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
8991 VkCommandBuffer commandBuffer,
8992 uint32_t baseGroupX,
8993 uint32_t baseGroupY,
8994 uint32_t baseGroupZ,
8995 uint32_t groupCountX,
8996 uint32_t groupCountY,
8997 uint32_t groupCountZ);
8998#endif
8999
9000
9001// VK_KHR_shader_draw_parameters is a preprocessor guard. Do not pass it to API calls.
9002#define VK_KHR_shader_draw_parameters 1
9003#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
9004#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
9005
9006
9007// VK_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
9008#define VK_KHR_maintenance1 1
9009#define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
9010#define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
9011#define VK_KHR_MAINTENANCE1_SPEC_VERSION VK_KHR_MAINTENANCE_1_SPEC_VERSION
9012#define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME
9013typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
9014
9015typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
9016
9017#ifndef VK_NO_PROTOTYPES
9018VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
9019 VkDevice device,
9020 VkCommandPool commandPool,
9021 VkCommandPoolTrimFlags flags);
9022#endif
9023
9024
9025// VK_KHR_device_group_creation is a preprocessor guard. Do not pass it to API calls.
9026#define VK_KHR_device_group_creation 1
9027#define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
9028#define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
9029#define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE
9030typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
9031
9032typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
9033
9034typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
9035
9036#ifndef VK_NO_PROTOTYPES
9037VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
9038 VkInstance instance,
9039 uint32_t* pPhysicalDeviceGroupCount,
9040 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
9041#endif
9042
9043
9044// VK_KHR_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
9045#define VK_KHR_external_memory_capabilities 1
9046#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
9047#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
9048#define VK_LUID_SIZE_KHR VK_LUID_SIZE
9049typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
9050
9051typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
9052
9053typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
9054
9055typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
9056
9057typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
9058
9059typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
9060
9061typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
9062
9063typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
9064
9065typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
9066
9067typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
9068
9069typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
9070
9071#ifndef VK_NO_PROTOTYPES
9072VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
9073 VkPhysicalDevice physicalDevice,
9074 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
9075 VkExternalBufferProperties* pExternalBufferProperties);
9076#endif
9077
9078
9079// VK_KHR_external_memory is a preprocessor guard. Do not pass it to API calls.
9080#define VK_KHR_external_memory 1
9081#define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
9082#define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
9083#define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL
9084typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
9085
9086typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
9087
9088typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
9089
9090
9091
9092// VK_KHR_external_memory_fd is a preprocessor guard. Do not pass it to API calls.
9093#define VK_KHR_external_memory_fd 1
9094#define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
9095#define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
9096typedef struct VkImportMemoryFdInfoKHR {
9097 VkStructureType sType;
9098 const void* pNext;
9099 VkExternalMemoryHandleTypeFlagBits handleType;
9100 int fd;
9101} VkImportMemoryFdInfoKHR;
9102
9103typedef struct VkMemoryFdPropertiesKHR {
9104 VkStructureType sType;
9105 void* pNext;
9106 uint32_t memoryTypeBits;
9107} VkMemoryFdPropertiesKHR;
9108
9109typedef struct VkMemoryGetFdInfoKHR {
9110 VkStructureType sType;
9111 const void* pNext;
9112 VkDeviceMemory memory;
9113 VkExternalMemoryHandleTypeFlagBits handleType;
9114} VkMemoryGetFdInfoKHR;
9115
9116typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
9117typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
9118
9119#ifndef VK_NO_PROTOTYPES
9120VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
9121 VkDevice device,
9122 const VkMemoryGetFdInfoKHR* pGetFdInfo,
9123 int* pFd);
9124
9125VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
9126 VkDevice device,
9127 VkExternalMemoryHandleTypeFlagBits handleType,
9128 int fd,
9129 VkMemoryFdPropertiesKHR* pMemoryFdProperties);
9130#endif
9131
9132
9133// VK_KHR_external_semaphore_capabilities is a preprocessor guard. Do not pass it to API calls.
9134#define VK_KHR_external_semaphore_capabilities 1
9135#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
9136#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
9137typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
9138
9139typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
9140
9141typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
9142
9143typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
9144
9145typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
9146
9147typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
9148
9149typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
9150
9151#ifndef VK_NO_PROTOTYPES
9152VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
9153 VkPhysicalDevice physicalDevice,
9154 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
9155 VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
9156#endif
9157
9158
9159// VK_KHR_external_semaphore is a preprocessor guard. Do not pass it to API calls.
9160#define VK_KHR_external_semaphore 1
9161#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
9162#define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
9163typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
9164
9165typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
9166
9167typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
9168
9169
9170
9171// VK_KHR_external_semaphore_fd is a preprocessor guard. Do not pass it to API calls.
9172#define VK_KHR_external_semaphore_fd 1
9173#define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
9174#define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
9175typedef struct VkImportSemaphoreFdInfoKHR {
9176 VkStructureType sType;
9177 const void* pNext;
9178 VkSemaphore semaphore;
9179 VkSemaphoreImportFlags flags;
9180 VkExternalSemaphoreHandleTypeFlagBits handleType;
9181 int fd;
9182} VkImportSemaphoreFdInfoKHR;
9183
9184typedef struct VkSemaphoreGetFdInfoKHR {
9185 VkStructureType sType;
9186 const void* pNext;
9187 VkSemaphore semaphore;
9188 VkExternalSemaphoreHandleTypeFlagBits handleType;
9189} VkSemaphoreGetFdInfoKHR;
9190
9191typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
9192typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
9193
9194#ifndef VK_NO_PROTOTYPES
9195VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
9196 VkDevice device,
9197 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
9198
9199VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
9200 VkDevice device,
9201 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
9202 int* pFd);
9203#endif
9204
9205
9206// VK_KHR_push_descriptor is a preprocessor guard. Do not pass it to API calls.
9207#define VK_KHR_push_descriptor 1
9208#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
9209#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
9210typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
9211 VkStructureType sType;
9212 void* pNext;
9213 uint32_t maxPushDescriptors;
9214} VkPhysicalDevicePushDescriptorPropertiesKHR;
9215
9216typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
9217typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
9218
9219#ifndef VK_NO_PROTOTYPES
9220VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
9221 VkCommandBuffer commandBuffer,
9222 VkPipelineBindPoint pipelineBindPoint,
9223 VkPipelineLayout layout,
9224 uint32_t set,
9225 uint32_t descriptorWriteCount,
9226 const VkWriteDescriptorSet* pDescriptorWrites);
9227
9228VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
9229 VkCommandBuffer commandBuffer,
9230 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9231 VkPipelineLayout layout,
9232 uint32_t set,
9233 const void* pData);
9234#endif
9235
9236
9237// VK_KHR_shader_float16_int8 is a preprocessor guard. Do not pass it to API calls.
9238#define VK_KHR_shader_float16_int8 1
9239#define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
9240#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
9241typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
9242
9243typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
9244
9245
9246
9247// VK_KHR_16bit_storage is a preprocessor guard. Do not pass it to API calls.
9248#define VK_KHR_16bit_storage 1
9249#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
9250#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
9251typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
9252
9253
9254
9255// VK_KHR_incremental_present is a preprocessor guard. Do not pass it to API calls.
9256#define VK_KHR_incremental_present 1
9257#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
9258#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
9259typedef struct VkRectLayerKHR {
9260 VkOffset2D offset;
9261 VkExtent2D extent;
9262 uint32_t layer;
9263} VkRectLayerKHR;
9264
9265typedef struct VkPresentRegionKHR {
9266 uint32_t rectangleCount;
9267 const VkRectLayerKHR* pRectangles;
9268} VkPresentRegionKHR;
9269
9270typedef struct VkPresentRegionsKHR {
9271 VkStructureType sType;
9272 const void* pNext;
9273 uint32_t swapchainCount;
9274 const VkPresentRegionKHR* pRegions;
9275} VkPresentRegionsKHR;
9276
9277
9278
9279// VK_KHR_descriptor_update_template is a preprocessor guard. Do not pass it to API calls.
9280#define VK_KHR_descriptor_update_template 1
9281typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
9282
9283#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
9284#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
9285typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
9286
9287typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
9288
9289typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
9290
9291typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
9292
9293typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
9294typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
9295typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
9296
9297#ifndef VK_NO_PROTOTYPES
9298VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
9299 VkDevice device,
9300 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
9301 const VkAllocationCallbacks* pAllocator,
9302 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
9303
9304VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
9305 VkDevice device,
9306 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9307 const VkAllocationCallbacks* pAllocator);
9308
9309VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
9310 VkDevice device,
9311 VkDescriptorSet descriptorSet,
9312 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
9313 const void* pData);
9314#endif
9315
9316
9317// VK_KHR_imageless_framebuffer is a preprocessor guard. Do not pass it to API calls.
9318#define VK_KHR_imageless_framebuffer 1
9319#define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
9320#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
9321typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
9322
9323typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
9324
9325typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
9326
9327typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
9328
9329
9330
9331// VK_KHR_create_renderpass2 is a preprocessor guard. Do not pass it to API calls.
9332#define VK_KHR_create_renderpass2 1
9333#define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
9334#define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
9335typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
9336
9337typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
9338
9339typedef VkAttachmentReference2 VkAttachmentReference2KHR;
9340
9341typedef VkSubpassDescription2 VkSubpassDescription2KHR;
9342
9343typedef VkSubpassDependency2 VkSubpassDependency2KHR;
9344
9345typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
9346
9347typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
9348
9349typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
9350typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
9351typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
9352typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
9353
9354#ifndef VK_NO_PROTOTYPES
9355VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
9356 VkDevice device,
9357 const VkRenderPassCreateInfo2* pCreateInfo,
9358 const VkAllocationCallbacks* pAllocator,
9359 VkRenderPass* pRenderPass);
9360
9361VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
9362 VkCommandBuffer commandBuffer,
9363 const VkRenderPassBeginInfo* pRenderPassBegin,
9364 const VkSubpassBeginInfo* pSubpassBeginInfo);
9365
9366VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
9367 VkCommandBuffer commandBuffer,
9368 const VkSubpassBeginInfo* pSubpassBeginInfo,
9369 const VkSubpassEndInfo* pSubpassEndInfo);
9370
9371VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
9372 VkCommandBuffer commandBuffer,
9373 const VkSubpassEndInfo* pSubpassEndInfo);
9374#endif
9375
9376
9377// VK_KHR_shared_presentable_image is a preprocessor guard. Do not pass it to API calls.
9378#define VK_KHR_shared_presentable_image 1
9379#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
9380#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
9381typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
9382 VkStructureType sType;
9383 void* pNext;
9384 VkImageUsageFlags sharedPresentSupportedUsageFlags;
9385} VkSharedPresentSurfaceCapabilitiesKHR;
9386
9387typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
9388
9389#ifndef VK_NO_PROTOTYPES
9390VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
9391 VkDevice device,
9392 VkSwapchainKHR swapchain);
9393#endif
9394
9395
9396// VK_KHR_external_fence_capabilities is a preprocessor guard. Do not pass it to API calls.
9397#define VK_KHR_external_fence_capabilities 1
9398#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
9399#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
9400typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
9401
9402typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
9403
9404typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
9405
9406typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
9407
9408typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
9409
9410typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
9411
9412typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
9413
9414#ifndef VK_NO_PROTOTYPES
9415VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
9416 VkPhysicalDevice physicalDevice,
9417 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
9418 VkExternalFenceProperties* pExternalFenceProperties);
9419#endif
9420
9421
9422// VK_KHR_external_fence is a preprocessor guard. Do not pass it to API calls.
9423#define VK_KHR_external_fence 1
9424#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
9425#define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
9426typedef VkFenceImportFlags VkFenceImportFlagsKHR;
9427
9428typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
9429
9430typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
9431
9432
9433
9434// VK_KHR_external_fence_fd is a preprocessor guard. Do not pass it to API calls.
9435#define VK_KHR_external_fence_fd 1
9436#define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
9437#define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
9438typedef struct VkImportFenceFdInfoKHR {
9439 VkStructureType sType;
9440 const void* pNext;
9441 VkFence fence;
9442 VkFenceImportFlags flags;
9443 VkExternalFenceHandleTypeFlagBits handleType;
9444 int fd;
9445} VkImportFenceFdInfoKHR;
9446
9447typedef struct VkFenceGetFdInfoKHR {
9448 VkStructureType sType;
9449 const void* pNext;
9450 VkFence fence;
9451 VkExternalFenceHandleTypeFlagBits handleType;
9452} VkFenceGetFdInfoKHR;
9453
9454typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
9455typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
9456
9457#ifndef VK_NO_PROTOTYPES
9458VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
9459 VkDevice device,
9460 const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
9461
9462VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
9463 VkDevice device,
9464 const VkFenceGetFdInfoKHR* pGetFdInfo,
9465 int* pFd);
9466#endif
9467
9468
9469// VK_KHR_performance_query is a preprocessor guard. Do not pass it to API calls.
9470#define VK_KHR_performance_query 1
9471#define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
9472#define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
9473
9474typedef enum VkPerformanceCounterUnitKHR {
9475 VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
9476 VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
9477 VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
9478 VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
9479 VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
9480 VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
9481 VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
9482 VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
9483 VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
9484 VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
9485 VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
9486 VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
9487} VkPerformanceCounterUnitKHR;
9488
9489typedef enum VkPerformanceCounterScopeKHR {
9490 VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
9491 VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
9492 VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
9493 VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
9494 VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
9495 VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
9496 VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
9497} VkPerformanceCounterScopeKHR;
9498
9499typedef enum VkPerformanceCounterStorageKHR {
9500 VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
9501 VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
9502 VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
9503 VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
9504 VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
9505 VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
9506 VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
9507} VkPerformanceCounterStorageKHR;
9508
9509typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
9510 VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001,
9511 VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002,
9512 VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
9513 VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
9514 VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9515} VkPerformanceCounterDescriptionFlagBitsKHR;
9516typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
9517
9518typedef enum VkAcquireProfilingLockFlagBitsKHR {
9519 VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9520} VkAcquireProfilingLockFlagBitsKHR;
9521typedef VkFlags VkAcquireProfilingLockFlagsKHR;
9522typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
9523 VkStructureType sType;
9524 void* pNext;
9525 VkBool32 performanceCounterQueryPools;
9526 VkBool32 performanceCounterMultipleQueryPools;
9527} VkPhysicalDevicePerformanceQueryFeaturesKHR;
9528
9529typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
9530 VkStructureType sType;
9531 void* pNext;
9532 VkBool32 allowCommandBufferQueryCopies;
9533} VkPhysicalDevicePerformanceQueryPropertiesKHR;
9534
9535typedef struct VkPerformanceCounterKHR {
9536 VkStructureType sType;
9537 void* pNext;
9538 VkPerformanceCounterUnitKHR unit;
9539 VkPerformanceCounterScopeKHR scope;
9540 VkPerformanceCounterStorageKHR storage;
9541 uint8_t uuid[VK_UUID_SIZE];
9542} VkPerformanceCounterKHR;
9543
9544typedef struct VkPerformanceCounterDescriptionKHR {
9545 VkStructureType sType;
9546 void* pNext;
9547 VkPerformanceCounterDescriptionFlagsKHR flags;
9548 char name[VK_MAX_DESCRIPTION_SIZE];
9549 char category[VK_MAX_DESCRIPTION_SIZE];
9550 char description[VK_MAX_DESCRIPTION_SIZE];
9551} VkPerformanceCounterDescriptionKHR;
9552
9553typedef struct VkQueryPoolPerformanceCreateInfoKHR {
9554 VkStructureType sType;
9555 const void* pNext;
9556 uint32_t queueFamilyIndex;
9557 uint32_t counterIndexCount;
9558 const uint32_t* pCounterIndices;
9559} VkQueryPoolPerformanceCreateInfoKHR;
9560
9561typedef union VkPerformanceCounterResultKHR {
9562 int32_t int32;
9563 int64_t int64;
9564 uint32_t uint32;
9565 uint64_t uint64;
9566 float float32;
9567 double float64;
9568} VkPerformanceCounterResultKHR;
9569
9570typedef struct VkAcquireProfilingLockInfoKHR {
9571 VkStructureType sType;
9572 const void* pNext;
9573 VkAcquireProfilingLockFlagsKHR flags;
9574 uint64_t timeout;
9575} VkAcquireProfilingLockInfoKHR;
9576
9577typedef struct VkPerformanceQuerySubmitInfoKHR {
9578 VkStructureType sType;
9579 const void* pNext;
9580 uint32_t counterPassIndex;
9581} VkPerformanceQuerySubmitInfoKHR;
9582
9583typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
9584typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
9585typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
9586typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
9587
9588#ifndef VK_NO_PROTOTYPES
9589VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
9590 VkPhysicalDevice physicalDevice,
9591 uint32_t queueFamilyIndex,
9592 uint32_t* pCounterCount,
9593 VkPerformanceCounterKHR* pCounters,
9594 VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
9595
9596VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
9597 VkPhysicalDevice physicalDevice,
9598 const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
9599 uint32_t* pNumPasses);
9600
9601VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
9602 VkDevice device,
9603 const VkAcquireProfilingLockInfoKHR* pInfo);
9604
9605VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
9606 VkDevice device);
9607#endif
9608
9609
9610// VK_KHR_maintenance2 is a preprocessor guard. Do not pass it to API calls.
9611#define VK_KHR_maintenance2 1
9612#define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
9613#define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
9614#define VK_KHR_MAINTENANCE2_SPEC_VERSION VK_KHR_MAINTENANCE_2_SPEC_VERSION
9615#define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME
9616typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
9617
9618typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
9619
9620typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
9621
9622typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
9623
9624typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
9625
9626typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
9627
9628typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
9629
9630
9631
9632// VK_KHR_get_surface_capabilities2 is a preprocessor guard. Do not pass it to API calls.
9633#define VK_KHR_get_surface_capabilities2 1
9634#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
9635#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
9636typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
9637 VkStructureType sType;
9638 const void* pNext;
9639 VkSurfaceKHR surface;
9640} VkPhysicalDeviceSurfaceInfo2KHR;
9641
9642typedef struct VkSurfaceCapabilities2KHR {
9643 VkStructureType sType;
9644 void* pNext;
9645 VkSurfaceCapabilitiesKHR surfaceCapabilities;
9646} VkSurfaceCapabilities2KHR;
9647
9648typedef struct VkSurfaceFormat2KHR {
9649 VkStructureType sType;
9650 void* pNext;
9651 VkSurfaceFormatKHR surfaceFormat;
9652} VkSurfaceFormat2KHR;
9653
9654typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
9655typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
9656
9657#ifndef VK_NO_PROTOTYPES
9658VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
9659 VkPhysicalDevice physicalDevice,
9660 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
9661 VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
9662
9663VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
9664 VkPhysicalDevice physicalDevice,
9665 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
9666 uint32_t* pSurfaceFormatCount,
9667 VkSurfaceFormat2KHR* pSurfaceFormats);
9668#endif
9669
9670
9671// VK_KHR_variable_pointers is a preprocessor guard. Do not pass it to API calls.
9672#define VK_KHR_variable_pointers 1
9673#define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
9674#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
9675typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
9676
9677typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
9678
9679
9680
9681// VK_KHR_get_display_properties2 is a preprocessor guard. Do not pass it to API calls.
9682#define VK_KHR_get_display_properties2 1
9683#define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
9684#define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
9685typedef struct VkDisplayProperties2KHR {
9686 VkStructureType sType;
9687 void* pNext;
9688 VkDisplayPropertiesKHR displayProperties;
9689} VkDisplayProperties2KHR;
9690
9691typedef struct VkDisplayPlaneProperties2KHR {
9692 VkStructureType sType;
9693 void* pNext;
9694 VkDisplayPlanePropertiesKHR displayPlaneProperties;
9695} VkDisplayPlaneProperties2KHR;
9696
9697typedef struct VkDisplayModeProperties2KHR {
9698 VkStructureType sType;
9699 void* pNext;
9700 VkDisplayModePropertiesKHR displayModeProperties;
9701} VkDisplayModeProperties2KHR;
9702
9703typedef struct VkDisplayPlaneInfo2KHR {
9704 VkStructureType sType;
9705 const void* pNext;
9706 VkDisplayModeKHR mode;
9707 uint32_t planeIndex;
9708} VkDisplayPlaneInfo2KHR;
9709
9710typedef struct VkDisplayPlaneCapabilities2KHR {
9711 VkStructureType sType;
9712 void* pNext;
9713 VkDisplayPlaneCapabilitiesKHR capabilities;
9714} VkDisplayPlaneCapabilities2KHR;
9715
9716typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
9717typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
9718typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
9719typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
9720
9721#ifndef VK_NO_PROTOTYPES
9722VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
9723 VkPhysicalDevice physicalDevice,
9724 uint32_t* pPropertyCount,
9725 VkDisplayProperties2KHR* pProperties);
9726
9727VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
9728 VkPhysicalDevice physicalDevice,
9729 uint32_t* pPropertyCount,
9730 VkDisplayPlaneProperties2KHR* pProperties);
9731
9732VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
9733 VkPhysicalDevice physicalDevice,
9734 VkDisplayKHR display,
9735 uint32_t* pPropertyCount,
9736 VkDisplayModeProperties2KHR* pProperties);
9737
9738VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
9739 VkPhysicalDevice physicalDevice,
9740 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
9741 VkDisplayPlaneCapabilities2KHR* pCapabilities);
9742#endif
9743
9744
9745// VK_KHR_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
9746#define VK_KHR_dedicated_allocation 1
9747#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
9748#define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
9749typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
9750
9751typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
9752
9753
9754
9755// VK_KHR_storage_buffer_storage_class is a preprocessor guard. Do not pass it to API calls.
9756#define VK_KHR_storage_buffer_storage_class 1
9757#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
9758#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
9759
9760
9761// VK_KHR_relaxed_block_layout is a preprocessor guard. Do not pass it to API calls.
9762#define VK_KHR_relaxed_block_layout 1
9763#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
9764#define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
9765
9766
9767// VK_KHR_get_memory_requirements2 is a preprocessor guard. Do not pass it to API calls.
9768#define VK_KHR_get_memory_requirements2 1
9769#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
9770#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
9771typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
9772
9773typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
9774
9775typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
9776
9777typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
9778
9779typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
9780
9781typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
9782typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
9783typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
9784
9785#ifndef VK_NO_PROTOTYPES
9786VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
9787 VkDevice device,
9788 const VkImageMemoryRequirementsInfo2* pInfo,
9789 VkMemoryRequirements2* pMemoryRequirements);
9790
9791VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
9792 VkDevice device,
9793 const VkBufferMemoryRequirementsInfo2* pInfo,
9794 VkMemoryRequirements2* pMemoryRequirements);
9795
9796VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
9797 VkDevice device,
9798 const VkImageSparseMemoryRequirementsInfo2* pInfo,
9799 uint32_t* pSparseMemoryRequirementCount,
9800 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
9801#endif
9802
9803
9804// VK_KHR_image_format_list is a preprocessor guard. Do not pass it to API calls.
9805#define VK_KHR_image_format_list 1
9806#define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
9807#define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
9808typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
9809
9810
9811
9812// VK_KHR_sampler_ycbcr_conversion is a preprocessor guard. Do not pass it to API calls.
9813#define VK_KHR_sampler_ycbcr_conversion 1
9814typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
9815
9816#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
9817#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
9818typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
9819
9820typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
9821
9822typedef VkChromaLocation VkChromaLocationKHR;
9823
9824typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
9825
9826typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
9827
9828typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
9829
9830typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
9831
9832typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
9833
9834typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
9835
9836typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
9837typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
9838
9839#ifndef VK_NO_PROTOTYPES
9840VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
9841 VkDevice device,
9842 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
9843 const VkAllocationCallbacks* pAllocator,
9844 VkSamplerYcbcrConversion* pYcbcrConversion);
9845
9846VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
9847 VkDevice device,
9848 VkSamplerYcbcrConversion ycbcrConversion,
9849 const VkAllocationCallbacks* pAllocator);
9850#endif
9851
9852
9853// VK_KHR_bind_memory2 is a preprocessor guard. Do not pass it to API calls.
9854#define VK_KHR_bind_memory2 1
9855#define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
9856#define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
9857typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
9858
9859typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
9860
9861typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
9862typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
9863
9864#ifndef VK_NO_PROTOTYPES
9865VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
9866 VkDevice device,
9867 uint32_t bindInfoCount,
9868 const VkBindBufferMemoryInfo* pBindInfos);
9869
9870VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
9871 VkDevice device,
9872 uint32_t bindInfoCount,
9873 const VkBindImageMemoryInfo* pBindInfos);
9874#endif
9875
9876
9877// VK_KHR_maintenance3 is a preprocessor guard. Do not pass it to API calls.
9878#define VK_KHR_maintenance3 1
9879#define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
9880#define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
9881#define VK_KHR_MAINTENANCE3_SPEC_VERSION VK_KHR_MAINTENANCE_3_SPEC_VERSION
9882#define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME
9883typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
9884
9885typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
9886
9887typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
9888
9889#ifndef VK_NO_PROTOTYPES
9890VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
9891 VkDevice device,
9892 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
9893 VkDescriptorSetLayoutSupport* pSupport);
9894#endif
9895
9896
9897// VK_KHR_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
9898#define VK_KHR_draw_indirect_count 1
9899#define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
9900#define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
9901typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
9902typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
9903
9904#ifndef VK_NO_PROTOTYPES
9905VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
9906 VkCommandBuffer commandBuffer,
9907 VkBuffer buffer,
9908 VkDeviceSize offset,
9909 VkBuffer countBuffer,
9910 VkDeviceSize countBufferOffset,
9911 uint32_t maxDrawCount,
9912 uint32_t stride);
9913
9914VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
9915 VkCommandBuffer commandBuffer,
9916 VkBuffer buffer,
9917 VkDeviceSize offset,
9918 VkBuffer countBuffer,
9919 VkDeviceSize countBufferOffset,
9920 uint32_t maxDrawCount,
9921 uint32_t stride);
9922#endif
9923
9924
9925// VK_KHR_shader_subgroup_extended_types is a preprocessor guard. Do not pass it to API calls.
9926#define VK_KHR_shader_subgroup_extended_types 1
9927#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
9928#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
9929typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
9930
9931
9932
9933// VK_KHR_8bit_storage is a preprocessor guard. Do not pass it to API calls.
9934#define VK_KHR_8bit_storage 1
9935#define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
9936#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
9937typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
9938
9939
9940
9941// VK_KHR_shader_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
9942#define VK_KHR_shader_atomic_int64 1
9943#define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
9944#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
9945typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
9946
9947
9948
9949// VK_KHR_shader_clock is a preprocessor guard. Do not pass it to API calls.
9950#define VK_KHR_shader_clock 1
9951#define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1
9952#define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
9953typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
9954 VkStructureType sType;
9955 void* pNext;
9956 VkBool32 shaderSubgroupClock;
9957 VkBool32 shaderDeviceClock;
9958} VkPhysicalDeviceShaderClockFeaturesKHR;
9959
9960
9961
9962// VK_KHR_video_decode_h265 is a preprocessor guard. Do not pass it to API calls.
9963#define VK_KHR_video_decode_h265 1
9964#include "../vk_video/vulkan_video_codec_h265std_decode.h"
9965#define VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION 8
9966#define VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME "VK_KHR_video_decode_h265"
9967typedef struct VkVideoDecodeH265ProfileInfoKHR {
9968 VkStructureType sType;
9969 const void* pNext;
9970 StdVideoH265ProfileIdc stdProfileIdc;
9971} VkVideoDecodeH265ProfileInfoKHR;
9972
9973typedef struct VkVideoDecodeH265CapabilitiesKHR {
9974 VkStructureType sType;
9975 void* pNext;
9976 StdVideoH265LevelIdc maxLevelIdc;
9977} VkVideoDecodeH265CapabilitiesKHR;
9978
9979typedef struct VkVideoDecodeH265SessionParametersAddInfoKHR {
9980 VkStructureType sType;
9981 const void* pNext;
9982 uint32_t stdVPSCount;
9983 const StdVideoH265VideoParameterSet* pStdVPSs;
9984 uint32_t stdSPSCount;
9985 const StdVideoH265SequenceParameterSet* pStdSPSs;
9986 uint32_t stdPPSCount;
9987 const StdVideoH265PictureParameterSet* pStdPPSs;
9988} VkVideoDecodeH265SessionParametersAddInfoKHR;
9989
9990typedef struct VkVideoDecodeH265SessionParametersCreateInfoKHR {
9991 VkStructureType sType;
9992 const void* pNext;
9993 uint32_t maxStdVPSCount;
9994 uint32_t maxStdSPSCount;
9995 uint32_t maxStdPPSCount;
9996 const VkVideoDecodeH265SessionParametersAddInfoKHR* pParametersAddInfo;
9997} VkVideoDecodeH265SessionParametersCreateInfoKHR;
9998
9999typedef struct VkVideoDecodeH265PictureInfoKHR {
10000 VkStructureType sType;
10001 const void* pNext;
10002 const StdVideoDecodeH265PictureInfo* pStdPictureInfo;
10003 uint32_t sliceSegmentCount;
10004 const uint32_t* pSliceSegmentOffsets;
10005} VkVideoDecodeH265PictureInfoKHR;
10006
10007typedef struct VkVideoDecodeH265DpbSlotInfoKHR {
10008 VkStructureType sType;
10009 const void* pNext;
10010 const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo;
10011} VkVideoDecodeH265DpbSlotInfoKHR;
10012
10013
10014
10015// VK_KHR_global_priority is a preprocessor guard. Do not pass it to API calls.
10016#define VK_KHR_global_priority 1
10017#define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR 16U
10018#define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
10019#define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
10020
10021typedef enum VkQueueGlobalPriorityKHR {
10022 VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128,
10023 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256,
10024 VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512,
10025 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024,
10026 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR,
10027 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR,
10028 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR,
10029 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR,
10030 VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_KHR = 0x7FFFFFFF
10031} VkQueueGlobalPriorityKHR;
10032typedef struct VkDeviceQueueGlobalPriorityCreateInfoKHR {
10033 VkStructureType sType;
10034 const void* pNext;
10035 VkQueueGlobalPriorityKHR globalPriority;
10036} VkDeviceQueueGlobalPriorityCreateInfoKHR;
10037
10038typedef struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR {
10039 VkStructureType sType;
10040 void* pNext;
10041 VkBool32 globalPriorityQuery;
10042} VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
10043
10044typedef struct VkQueueFamilyGlobalPriorityPropertiesKHR {
10045 VkStructureType sType;
10046 void* pNext;
10047 uint32_t priorityCount;
10048 VkQueueGlobalPriorityKHR priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR];
10049} VkQueueFamilyGlobalPriorityPropertiesKHR;
10050
10051
10052
10053// VK_KHR_driver_properties is a preprocessor guard. Do not pass it to API calls.
10054#define VK_KHR_driver_properties 1
10055#define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
10056#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
10057#define VK_MAX_DRIVER_NAME_SIZE_KHR VK_MAX_DRIVER_NAME_SIZE
10058#define VK_MAX_DRIVER_INFO_SIZE_KHR VK_MAX_DRIVER_INFO_SIZE
10059typedef VkDriverId VkDriverIdKHR;
10060
10061typedef VkConformanceVersion VkConformanceVersionKHR;
10062
10063typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
10064
10065
10066
10067// VK_KHR_shader_float_controls is a preprocessor guard. Do not pass it to API calls.
10068#define VK_KHR_shader_float_controls 1
10069#define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
10070#define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
10071typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
10072
10073typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
10074
10075
10076
10077// VK_KHR_depth_stencil_resolve is a preprocessor guard. Do not pass it to API calls.
10078#define VK_KHR_depth_stencil_resolve 1
10079#define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
10080#define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
10081typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
10082
10083typedef VkResolveModeFlags VkResolveModeFlagsKHR;
10084
10085typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
10086
10087typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
10088
10089
10090
10091// VK_KHR_swapchain_mutable_format is a preprocessor guard. Do not pass it to API calls.
10092#define VK_KHR_swapchain_mutable_format 1
10093#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
10094#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
10095
10096
10097// VK_KHR_timeline_semaphore is a preprocessor guard. Do not pass it to API calls.
10098#define VK_KHR_timeline_semaphore 1
10099#define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
10100#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
10101typedef VkSemaphoreType VkSemaphoreTypeKHR;
10102
10103typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
10104
10105typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
10106
10107typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
10108
10109typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
10110
10111typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
10112
10113typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
10114
10115typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
10116
10117typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
10118
10119typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
10120typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
10121typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
10122
10123#ifndef VK_NO_PROTOTYPES
10124VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
10125 VkDevice device,
10126 VkSemaphore semaphore,
10127 uint64_t* pValue);
10128
10129VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
10130 VkDevice device,
10131 const VkSemaphoreWaitInfo* pWaitInfo,
10132 uint64_t timeout);
10133
10134VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
10135 VkDevice device,
10136 const VkSemaphoreSignalInfo* pSignalInfo);
10137#endif
10138
10139
10140// VK_KHR_vulkan_memory_model is a preprocessor guard. Do not pass it to API calls.
10141#define VK_KHR_vulkan_memory_model 1
10142#define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
10143#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
10144typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
10145
10146
10147
10148// VK_KHR_shader_terminate_invocation is a preprocessor guard. Do not pass it to API calls.
10149#define VK_KHR_shader_terminate_invocation 1
10150#define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
10151#define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
10152typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
10153
10154
10155
10156// VK_KHR_fragment_shading_rate is a preprocessor guard. Do not pass it to API calls.
10157#define VK_KHR_fragment_shading_rate 1
10158#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
10159#define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
10160
10161typedef enum VkFragmentShadingRateCombinerOpKHR {
10162 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
10163 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
10164 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
10165 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
10166 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
10167 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
10168} VkFragmentShadingRateCombinerOpKHR;
10169typedef struct VkFragmentShadingRateAttachmentInfoKHR {
10170 VkStructureType sType;
10171 const void* pNext;
10172 const VkAttachmentReference2* pFragmentShadingRateAttachment;
10173 VkExtent2D shadingRateAttachmentTexelSize;
10174} VkFragmentShadingRateAttachmentInfoKHR;
10175
10176typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
10177 VkStructureType sType;
10178 const void* pNext;
10179 VkExtent2D fragmentSize;
10180 VkFragmentShadingRateCombinerOpKHR combinerOps[2];
10181} VkPipelineFragmentShadingRateStateCreateInfoKHR;
10182
10183typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
10184 VkStructureType sType;
10185 void* pNext;
10186 VkBool32 pipelineFragmentShadingRate;
10187 VkBool32 primitiveFragmentShadingRate;
10188 VkBool32 attachmentFragmentShadingRate;
10189} VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
10190
10191typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
10192 VkStructureType sType;
10193 void* pNext;
10194 VkExtent2D minFragmentShadingRateAttachmentTexelSize;
10195 VkExtent2D maxFragmentShadingRateAttachmentTexelSize;
10196 uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
10197 VkBool32 primitiveFragmentShadingRateWithMultipleViewports;
10198 VkBool32 layeredShadingRateAttachments;
10199 VkBool32 fragmentShadingRateNonTrivialCombinerOps;
10200 VkExtent2D maxFragmentSize;
10201 uint32_t maxFragmentSizeAspectRatio;
10202 uint32_t maxFragmentShadingRateCoverageSamples;
10203 VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples;
10204 VkBool32 fragmentShadingRateWithShaderDepthStencilWrites;
10205 VkBool32 fragmentShadingRateWithSampleMask;
10206 VkBool32 fragmentShadingRateWithShaderSampleMask;
10207 VkBool32 fragmentShadingRateWithConservativeRasterization;
10208 VkBool32 fragmentShadingRateWithFragmentShaderInterlock;
10209 VkBool32 fragmentShadingRateWithCustomSampleLocations;
10210 VkBool32 fragmentShadingRateStrictMultiplyCombiner;
10211} VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
10212
10213typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
10214 VkStructureType sType;
10215 void* pNext;
10216 VkSampleCountFlags sampleCounts;
10217 VkExtent2D fragmentSize;
10218} VkPhysicalDeviceFragmentShadingRateKHR;
10219
10220typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
10221typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
10222
10223#ifndef VK_NO_PROTOTYPES
10224VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
10225 VkPhysicalDevice physicalDevice,
10226 uint32_t* pFragmentShadingRateCount,
10227 VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
10228
10229VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
10230 VkCommandBuffer commandBuffer,
10231 const VkExtent2D* pFragmentSize,
10232 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
10233#endif
10234
10235
10236// VK_KHR_dynamic_rendering_local_read is a preprocessor guard. Do not pass it to API calls.
10237#define VK_KHR_dynamic_rendering_local_read 1
10238#define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION 1
10239#define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME "VK_KHR_dynamic_rendering_local_read"
10240typedef struct VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR {
10241 VkStructureType sType;
10242 void* pNext;
10243 VkBool32 dynamicRenderingLocalRead;
10244} VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR;
10245
10246typedef struct VkRenderingAttachmentLocationInfoKHR {
10247 VkStructureType sType;
10248 const void* pNext;
10249 uint32_t colorAttachmentCount;
10250 const uint32_t* pColorAttachmentLocations;
10251} VkRenderingAttachmentLocationInfoKHR;
10252
10253typedef struct VkRenderingInputAttachmentIndexInfoKHR {
10254 VkStructureType sType;
10255 const void* pNext;
10256 uint32_t colorAttachmentCount;
10257 const uint32_t* pColorAttachmentInputIndices;
10258 const uint32_t* pDepthInputAttachmentIndex;
10259 const uint32_t* pStencilInputAttachmentIndex;
10260} VkRenderingInputAttachmentIndexInfoKHR;
10261
10262typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocationsKHR)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfoKHR* pLocationInfo);
10263typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfoKHR* pLocationInfo);
10264
10265#ifndef VK_NO_PROTOTYPES
10266VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocationsKHR(
10267 VkCommandBuffer commandBuffer,
10268 const VkRenderingAttachmentLocationInfoKHR* pLocationInfo);
10269
10270VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndicesKHR(
10271 VkCommandBuffer commandBuffer,
10272 const VkRenderingInputAttachmentIndexInfoKHR* pLocationInfo);
10273#endif
10274
10275
10276// VK_KHR_shader_quad_control is a preprocessor guard. Do not pass it to API calls.
10277#define VK_KHR_shader_quad_control 1
10278#define VK_KHR_SHADER_QUAD_CONTROL_SPEC_VERSION 1
10279#define VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME "VK_KHR_shader_quad_control"
10280typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR {
10281 VkStructureType sType;
10282 void* pNext;
10283 VkBool32 shaderQuadControl;
10284} VkPhysicalDeviceShaderQuadControlFeaturesKHR;
10285
10286
10287
10288// VK_KHR_spirv_1_4 is a preprocessor guard. Do not pass it to API calls.
10289#define VK_KHR_spirv_1_4 1
10290#define VK_KHR_SPIRV_1_4_SPEC_VERSION 1
10291#define VK_KHR_SPIRV_1_4_EXTENSION_NAME "VK_KHR_spirv_1_4"
10292
10293
10294// VK_KHR_surface_protected_capabilities is a preprocessor guard. Do not pass it to API calls.
10295#define VK_KHR_surface_protected_capabilities 1
10296#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
10297#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
10298typedef struct VkSurfaceProtectedCapabilitiesKHR {
10299 VkStructureType sType;
10300 const void* pNext;
10301 VkBool32 supportsProtected;
10302} VkSurfaceProtectedCapabilitiesKHR;
10303
10304
10305
10306// VK_KHR_separate_depth_stencil_layouts is a preprocessor guard. Do not pass it to API calls.
10307#define VK_KHR_separate_depth_stencil_layouts 1
10308#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
10309#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
10310typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
10311
10312typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
10313
10314typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
10315
10316
10317
10318// VK_KHR_present_wait is a preprocessor guard. Do not pass it to API calls.
10319#define VK_KHR_present_wait 1
10320#define VK_KHR_PRESENT_WAIT_SPEC_VERSION 1
10321#define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
10322typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
10323 VkStructureType sType;
10324 void* pNext;
10325 VkBool32 presentWait;
10326} VkPhysicalDevicePresentWaitFeaturesKHR;
10327
10328typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
10329
10330#ifndef VK_NO_PROTOTYPES
10331VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
10332 VkDevice device,
10333 VkSwapchainKHR swapchain,
10334 uint64_t presentId,
10335 uint64_t timeout);
10336#endif
10337
10338
10339// VK_KHR_uniform_buffer_standard_layout is a preprocessor guard. Do not pass it to API calls.
10340#define VK_KHR_uniform_buffer_standard_layout 1
10341#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
10342#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
10343typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
10344
10345
10346
10347// VK_KHR_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
10348#define VK_KHR_buffer_device_address 1
10349#define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
10350#define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
10351typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
10352
10353typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
10354
10355typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
10356
10357typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
10358
10359typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
10360
10361typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
10362typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
10363typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
10364
10365#ifndef VK_NO_PROTOTYPES
10366VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
10367 VkDevice device,
10368 const VkBufferDeviceAddressInfo* pInfo);
10369
10370VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
10371 VkDevice device,
10372 const VkBufferDeviceAddressInfo* pInfo);
10373
10374VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
10375 VkDevice device,
10376 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
10377#endif
10378
10379
10380// VK_KHR_deferred_host_operations is a preprocessor guard. Do not pass it to API calls.
10381#define VK_KHR_deferred_host_operations 1
10382VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
10383#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
10384#define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
10385typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
10386typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
10387typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
10388typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
10389typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
10390
10391#ifndef VK_NO_PROTOTYPES
10392VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
10393 VkDevice device,
10394 const VkAllocationCallbacks* pAllocator,
10395 VkDeferredOperationKHR* pDeferredOperation);
10396
10397VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
10398 VkDevice device,
10399 VkDeferredOperationKHR operation,
10400 const VkAllocationCallbacks* pAllocator);
10401
10402VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
10403 VkDevice device,
10404 VkDeferredOperationKHR operation);
10405
10406VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
10407 VkDevice device,
10408 VkDeferredOperationKHR operation);
10409
10410VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
10411 VkDevice device,
10412 VkDeferredOperationKHR operation);
10413#endif
10414
10415
10416// VK_KHR_pipeline_executable_properties is a preprocessor guard. Do not pass it to API calls.
10417#define VK_KHR_pipeline_executable_properties 1
10418#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
10419#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
10420
10421typedef enum VkPipelineExecutableStatisticFormatKHR {
10422 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
10423 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
10424 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
10425 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
10426 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
10427} VkPipelineExecutableStatisticFormatKHR;
10428typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
10429 VkStructureType sType;
10430 void* pNext;
10431 VkBool32 pipelineExecutableInfo;
10432} VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
10433
10434typedef struct VkPipelineInfoKHR {
10435 VkStructureType sType;
10436 const void* pNext;
10437 VkPipeline pipeline;
10438} VkPipelineInfoKHR;
10439
10440typedef struct VkPipelineExecutablePropertiesKHR {
10441 VkStructureType sType;
10442 void* pNext;
10443 VkShaderStageFlags stages;
10444 char name[VK_MAX_DESCRIPTION_SIZE];
10445 char description[VK_MAX_DESCRIPTION_SIZE];
10446 uint32_t subgroupSize;
10447} VkPipelineExecutablePropertiesKHR;
10448
10449typedef struct VkPipelineExecutableInfoKHR {
10450 VkStructureType sType;
10451 const void* pNext;
10452 VkPipeline pipeline;
10453 uint32_t executableIndex;
10454} VkPipelineExecutableInfoKHR;
10455
10456typedef union VkPipelineExecutableStatisticValueKHR {
10457 VkBool32 b32;
10458 int64_t i64;
10459 uint64_t u64;
10460 double f64;
10461} VkPipelineExecutableStatisticValueKHR;
10462
10463typedef struct VkPipelineExecutableStatisticKHR {
10464 VkStructureType sType;
10465 void* pNext;
10466 char name[VK_MAX_DESCRIPTION_SIZE];
10467 char description[VK_MAX_DESCRIPTION_SIZE];
10468 VkPipelineExecutableStatisticFormatKHR format;
10469 VkPipelineExecutableStatisticValueKHR value;
10470} VkPipelineExecutableStatisticKHR;
10471
10472typedef struct VkPipelineExecutableInternalRepresentationKHR {
10473 VkStructureType sType;
10474 void* pNext;
10475 char name[VK_MAX_DESCRIPTION_SIZE];
10476 char description[VK_MAX_DESCRIPTION_SIZE];
10477 VkBool32 isText;
10478 size_t dataSize;
10479 void* pData;
10480} VkPipelineExecutableInternalRepresentationKHR;
10481
10482typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
10483typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
10484typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
10485
10486#ifndef VK_NO_PROTOTYPES
10487VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
10488 VkDevice device,
10489 const VkPipelineInfoKHR* pPipelineInfo,
10490 uint32_t* pExecutableCount,
10491 VkPipelineExecutablePropertiesKHR* pProperties);
10492
10493VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
10494 VkDevice device,
10495 const VkPipelineExecutableInfoKHR* pExecutableInfo,
10496 uint32_t* pStatisticCount,
10497 VkPipelineExecutableStatisticKHR* pStatistics);
10498
10499VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
10500 VkDevice device,
10501 const VkPipelineExecutableInfoKHR* pExecutableInfo,
10502 uint32_t* pInternalRepresentationCount,
10503 VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
10504#endif
10505
10506
10507// VK_KHR_map_memory2 is a preprocessor guard. Do not pass it to API calls.
10508#define VK_KHR_map_memory2 1
10509#define VK_KHR_MAP_MEMORY_2_SPEC_VERSION 1
10510#define VK_KHR_MAP_MEMORY_2_EXTENSION_NAME "VK_KHR_map_memory2"
10511
10512typedef enum VkMemoryUnmapFlagBitsKHR {
10513 VK_MEMORY_UNMAP_RESERVE_BIT_EXT = 0x00000001,
10514 VK_MEMORY_UNMAP_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10515} VkMemoryUnmapFlagBitsKHR;
10516typedef VkFlags VkMemoryUnmapFlagsKHR;
10517typedef struct VkMemoryMapInfoKHR {
10518 VkStructureType sType;
10519 const void* pNext;
10520 VkMemoryMapFlags flags;
10521 VkDeviceMemory memory;
10522 VkDeviceSize offset;
10523 VkDeviceSize size;
10524} VkMemoryMapInfoKHR;
10525
10526typedef struct VkMemoryUnmapInfoKHR {
10527 VkStructureType sType;
10528 const void* pNext;
10529 VkMemoryUnmapFlagsKHR flags;
10530 VkDeviceMemory memory;
10531} VkMemoryUnmapInfoKHR;
10532
10533typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice device, const VkMemoryMapInfoKHR* pMemoryMapInfo, void** ppData);
10534typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2KHR)(VkDevice device, const VkMemoryUnmapInfoKHR* pMemoryUnmapInfo);
10535
10536#ifndef VK_NO_PROTOTYPES
10537VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2KHR(
10538 VkDevice device,
10539 const VkMemoryMapInfoKHR* pMemoryMapInfo,
10540 void** ppData);
10541
10542VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2KHR(
10543 VkDevice device,
10544 const VkMemoryUnmapInfoKHR* pMemoryUnmapInfo);
10545#endif
10546
10547
10548// VK_KHR_shader_integer_dot_product is a preprocessor guard. Do not pass it to API calls.
10549#define VK_KHR_shader_integer_dot_product 1
10550#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
10551#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
10552typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
10553
10554typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
10555
10556
10557
10558// VK_KHR_pipeline_library is a preprocessor guard. Do not pass it to API calls.
10559#define VK_KHR_pipeline_library 1
10560#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
10561#define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
10562typedef struct VkPipelineLibraryCreateInfoKHR {
10563 VkStructureType sType;
10564 const void* pNext;
10565 uint32_t libraryCount;
10566 const VkPipeline* pLibraries;
10567} VkPipelineLibraryCreateInfoKHR;
10568
10569
10570
10571// VK_KHR_shader_non_semantic_info is a preprocessor guard. Do not pass it to API calls.
10572#define VK_KHR_shader_non_semantic_info 1
10573#define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
10574#define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
10575
10576
10577// VK_KHR_present_id is a preprocessor guard. Do not pass it to API calls.
10578#define VK_KHR_present_id 1
10579#define VK_KHR_PRESENT_ID_SPEC_VERSION 1
10580#define VK_KHR_PRESENT_ID_EXTENSION_NAME "VK_KHR_present_id"
10581typedef struct VkPresentIdKHR {
10582 VkStructureType sType;
10583 const void* pNext;
10584 uint32_t swapchainCount;
10585 const uint64_t* pPresentIds;
10586} VkPresentIdKHR;
10587
10588typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
10589 VkStructureType sType;
10590 void* pNext;
10591 VkBool32 presentId;
10592} VkPhysicalDevicePresentIdFeaturesKHR;
10593
10594
10595
10596// VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls.
10597#define VK_KHR_video_encode_queue 1
10598#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 12
10599#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
10600
10601typedef enum VkVideoEncodeTuningModeKHR {
10602 VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
10603 VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
10604 VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
10605 VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
10606 VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
10607 VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
10608} VkVideoEncodeTuningModeKHR;
10609
10610typedef enum VkVideoEncodeFlagBitsKHR {
10611 VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10612} VkVideoEncodeFlagBitsKHR;
10613typedef VkFlags VkVideoEncodeFlagsKHR;
10614
10615typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
10616 VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
10617 VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x00000002,
10618 VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10619} VkVideoEncodeCapabilityFlagBitsKHR;
10620typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
10621
10622typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
10623 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0,
10624 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001,
10625 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002,
10626 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004,
10627 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10628} VkVideoEncodeRateControlModeFlagBitsKHR;
10629typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
10630
10631typedef enum VkVideoEncodeFeedbackFlagBitsKHR {
10632 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001,
10633 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002,
10634 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR = 0x00000004,
10635 VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10636} VkVideoEncodeFeedbackFlagBitsKHR;
10637typedef VkFlags VkVideoEncodeFeedbackFlagsKHR;
10638
10639typedef enum VkVideoEncodeUsageFlagBitsKHR {
10640 VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
10641 VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
10642 VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
10643 VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
10644 VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
10645 VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10646} VkVideoEncodeUsageFlagBitsKHR;
10647typedef VkFlags VkVideoEncodeUsageFlagsKHR;
10648
10649typedef enum VkVideoEncodeContentFlagBitsKHR {
10650 VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
10651 VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
10652 VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
10653 VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
10654 VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10655} VkVideoEncodeContentFlagBitsKHR;
10656typedef VkFlags VkVideoEncodeContentFlagsKHR;
10657typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
10658typedef struct VkVideoEncodeInfoKHR {
10659 VkStructureType sType;
10660 const void* pNext;
10661 VkVideoEncodeFlagsKHR flags;
10662 VkBuffer dstBuffer;
10663 VkDeviceSize dstBufferOffset;
10664 VkDeviceSize dstBufferRange;
10665 VkVideoPictureResourceInfoKHR srcPictureResource;
10666 const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
10667 uint32_t referenceSlotCount;
10668 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
10669 uint32_t precedingExternallyEncodedBytes;
10670} VkVideoEncodeInfoKHR;
10671
10672typedef struct VkVideoEncodeCapabilitiesKHR {
10673 VkStructureType sType;
10674 void* pNext;
10675 VkVideoEncodeCapabilityFlagsKHR flags;
10676 VkVideoEncodeRateControlModeFlagsKHR rateControlModes;
10677 uint32_t maxRateControlLayers;
10678 uint64_t maxBitrate;
10679 uint32_t maxQualityLevels;
10680 VkExtent2D encodeInputPictureGranularity;
10681 VkVideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags;
10682} VkVideoEncodeCapabilitiesKHR;
10683
10684typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR {
10685 VkStructureType sType;
10686 const void* pNext;
10687 VkVideoEncodeFeedbackFlagsKHR encodeFeedbackFlags;
10688} VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
10689
10690typedef struct VkVideoEncodeUsageInfoKHR {
10691 VkStructureType sType;
10692 const void* pNext;
10693 VkVideoEncodeUsageFlagsKHR videoUsageHints;
10694 VkVideoEncodeContentFlagsKHR videoContentHints;
10695 VkVideoEncodeTuningModeKHR tuningMode;
10696} VkVideoEncodeUsageInfoKHR;
10697
10698typedef struct VkVideoEncodeRateControlLayerInfoKHR {
10699 VkStructureType sType;
10700 const void* pNext;
10701 uint64_t averageBitrate;
10702 uint64_t maxBitrate;
10703 uint32_t frameRateNumerator;
10704 uint32_t frameRateDenominator;
10705} VkVideoEncodeRateControlLayerInfoKHR;
10706
10707typedef struct VkVideoEncodeRateControlInfoKHR {
10708 VkStructureType sType;
10709 const void* pNext;
10710 VkVideoEncodeRateControlFlagsKHR flags;
10711 VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode;
10712 uint32_t layerCount;
10713 const VkVideoEncodeRateControlLayerInfoKHR* pLayers;
10714 uint32_t virtualBufferSizeInMs;
10715 uint32_t initialVirtualBufferSizeInMs;
10716} VkVideoEncodeRateControlInfoKHR;
10717
10718typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR {
10719 VkStructureType sType;
10720 const void* pNext;
10721 const VkVideoProfileInfoKHR* pVideoProfile;
10722 uint32_t qualityLevel;
10723} VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
10724
10725typedef struct VkVideoEncodeQualityLevelPropertiesKHR {
10726 VkStructureType sType;
10727 void* pNext;
10728 VkVideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode;
10729 uint32_t preferredRateControlLayerCount;
10730} VkVideoEncodeQualityLevelPropertiesKHR;
10731
10732typedef struct VkVideoEncodeQualityLevelInfoKHR {
10733 VkStructureType sType;
10734 const void* pNext;
10735 uint32_t qualityLevel;
10736} VkVideoEncodeQualityLevelInfoKHR;
10737
10738typedef struct VkVideoEncodeSessionParametersGetInfoKHR {
10739 VkStructureType sType;
10740 const void* pNext;
10741 VkVideoSessionParametersKHR videoSessionParameters;
10742} VkVideoEncodeSessionParametersGetInfoKHR;
10743
10744typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR {
10745 VkStructureType sType;
10746 void* pNext;
10747 VkBool32 hasOverrides;
10748} VkVideoEncodeSessionParametersFeedbackInfoKHR;
10749
10750typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
10751typedef VkResult (VKAPI_PTR *PFN_vkGetEncodedVideoSessionParametersKHR)(VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData);
10752typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
10753
10754#ifndef VK_NO_PROTOTYPES
10755VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
10756 VkPhysicalDevice physicalDevice,
10757 const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
10758 VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
10759
10760VKAPI_ATTR VkResult VKAPI_CALL vkGetEncodedVideoSessionParametersKHR(
10761 VkDevice device,
10762 const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
10763 VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
10764 size_t* pDataSize,
10765 void* pData);
10766
10767VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
10768 VkCommandBuffer commandBuffer,
10769 const VkVideoEncodeInfoKHR* pEncodeInfo);
10770#endif
10771
10772
10773// VK_KHR_synchronization2 is a preprocessor guard. Do not pass it to API calls.
10774#define VK_KHR_synchronization2 1
10775#define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
10776#define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
10777typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
10778
10779typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
10780
10781typedef VkAccessFlags2 VkAccessFlags2KHR;
10782
10783typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
10784
10785typedef VkSubmitFlagBits VkSubmitFlagBitsKHR;
10786
10787typedef VkSubmitFlags VkSubmitFlagsKHR;
10788
10789typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
10790
10791typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
10792
10793typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
10794
10795typedef VkDependencyInfo VkDependencyInfoKHR;
10796
10797typedef VkSubmitInfo2 VkSubmitInfo2KHR;
10798
10799typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
10800
10801typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
10802
10803typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
10804
10805typedef struct VkQueueFamilyCheckpointProperties2NV {
10806 VkStructureType sType;
10807 void* pNext;
10808 VkPipelineStageFlags2 checkpointExecutionStageMask;
10809} VkQueueFamilyCheckpointProperties2NV;
10810
10811typedef struct VkCheckpointData2NV {
10812 VkStructureType sType;
10813 void* pNext;
10814 VkPipelineStageFlags2 stage;
10815 void* pCheckpointMarker;
10816} VkCheckpointData2NV;
10817
10818typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
10819typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
10820typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
10821typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
10822typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
10823typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
10824typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
10825typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
10826
10827#ifndef VK_NO_PROTOTYPES
10828VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR(
10829 VkCommandBuffer commandBuffer,
10830 VkEvent event,
10831 const VkDependencyInfo* pDependencyInfo);
10832
10833VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR(
10834 VkCommandBuffer commandBuffer,
10835 VkEvent event,
10836 VkPipelineStageFlags2 stageMask);
10837
10838VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR(
10839 VkCommandBuffer commandBuffer,
10840 uint32_t eventCount,
10841 const VkEvent* pEvents,
10842 const VkDependencyInfo* pDependencyInfos);
10843
10844VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR(
10845 VkCommandBuffer commandBuffer,
10846 const VkDependencyInfo* pDependencyInfo);
10847
10848VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR(
10849 VkCommandBuffer commandBuffer,
10850 VkPipelineStageFlags2 stage,
10851 VkQueryPool queryPool,
10852 uint32_t query);
10853
10854VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR(
10855 VkQueue queue,
10856 uint32_t submitCount,
10857 const VkSubmitInfo2* pSubmits,
10858 VkFence fence);
10859
10860VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD(
10861 VkCommandBuffer commandBuffer,
10862 VkPipelineStageFlags2 stage,
10863 VkBuffer dstBuffer,
10864 VkDeviceSize dstOffset,
10865 uint32_t marker);
10866
10867VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV(
10868 VkQueue queue,
10869 uint32_t* pCheckpointDataCount,
10870 VkCheckpointData2NV* pCheckpointData);
10871#endif
10872
10873
10874// VK_KHR_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
10875#define VK_KHR_fragment_shader_barycentric 1
10876#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
10877#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
10878typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
10879 VkStructureType sType;
10880 void* pNext;
10881 VkBool32 fragmentShaderBarycentric;
10882} VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
10883
10884typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
10885 VkStructureType sType;
10886 void* pNext;
10887 VkBool32 triStripVertexOrderIndependentOfProvokingVertex;
10888} VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
10889
10890
10891
10892// VK_KHR_shader_subgroup_uniform_control_flow is a preprocessor guard. Do not pass it to API calls.
10893#define VK_KHR_shader_subgroup_uniform_control_flow 1
10894#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
10895#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
10896typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
10897 VkStructureType sType;
10898 void* pNext;
10899 VkBool32 shaderSubgroupUniformControlFlow;
10900} VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
10901
10902
10903
10904// VK_KHR_zero_initialize_workgroup_memory is a preprocessor guard. Do not pass it to API calls.
10905#define VK_KHR_zero_initialize_workgroup_memory 1
10906#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
10907#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
10908typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
10909
10910
10911
10912// VK_KHR_workgroup_memory_explicit_layout is a preprocessor guard. Do not pass it to API calls.
10913#define VK_KHR_workgroup_memory_explicit_layout 1
10914#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
10915#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
10916typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
10917 VkStructureType sType;
10918 void* pNext;
10919 VkBool32 workgroupMemoryExplicitLayout;
10920 VkBool32 workgroupMemoryExplicitLayoutScalarBlockLayout;
10921 VkBool32 workgroupMemoryExplicitLayout8BitAccess;
10922 VkBool32 workgroupMemoryExplicitLayout16BitAccess;
10923} VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
10924
10925
10926
10927// VK_KHR_copy_commands2 is a preprocessor guard. Do not pass it to API calls.
10928#define VK_KHR_copy_commands2 1
10929#define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
10930#define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
10931typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
10932
10933typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
10934
10935typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
10936
10937typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
10938
10939typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
10940
10941typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
10942
10943typedef VkBufferCopy2 VkBufferCopy2KHR;
10944
10945typedef VkImageCopy2 VkImageCopy2KHR;
10946
10947typedef VkImageBlit2 VkImageBlit2KHR;
10948
10949typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
10950
10951typedef VkImageResolve2 VkImageResolve2KHR;
10952
10953typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
10954typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
10955typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
10956typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
10957typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
10958typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
10959
10960#ifndef VK_NO_PROTOTYPES
10961VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
10962 VkCommandBuffer commandBuffer,
10963 const VkCopyBufferInfo2* pCopyBufferInfo);
10964
10965VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
10966 VkCommandBuffer commandBuffer,
10967 const VkCopyImageInfo2* pCopyImageInfo);
10968
10969VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
10970 VkCommandBuffer commandBuffer,
10971 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
10972
10973VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
10974 VkCommandBuffer commandBuffer,
10975 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
10976
10977VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
10978 VkCommandBuffer commandBuffer,
10979 const VkBlitImageInfo2* pBlitImageInfo);
10980
10981VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
10982 VkCommandBuffer commandBuffer,
10983 const VkResolveImageInfo2* pResolveImageInfo);
10984#endif
10985
10986
10987// VK_KHR_format_feature_flags2 is a preprocessor guard. Do not pass it to API calls.
10988#define VK_KHR_format_feature_flags2 1
10989#define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2
10990#define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
10991typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
10992
10993typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
10994
10995typedef VkFormatProperties3 VkFormatProperties3KHR;
10996
10997
10998
10999// VK_KHR_ray_tracing_maintenance1 is a preprocessor guard. Do not pass it to API calls.
11000#define VK_KHR_ray_tracing_maintenance1 1
11001#define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
11002#define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
11003typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR {
11004 VkStructureType sType;
11005 void* pNext;
11006 VkBool32 rayTracingMaintenance1;
11007 VkBool32 rayTracingPipelineTraceRaysIndirect2;
11008} VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
11009
11010typedef struct VkTraceRaysIndirectCommand2KHR {
11011 VkDeviceAddress raygenShaderRecordAddress;
11012 VkDeviceSize raygenShaderRecordSize;
11013 VkDeviceAddress missShaderBindingTableAddress;
11014 VkDeviceSize missShaderBindingTableSize;
11015 VkDeviceSize missShaderBindingTableStride;
11016 VkDeviceAddress hitShaderBindingTableAddress;
11017 VkDeviceSize hitShaderBindingTableSize;
11018 VkDeviceSize hitShaderBindingTableStride;
11019 VkDeviceAddress callableShaderBindingTableAddress;
11020 VkDeviceSize callableShaderBindingTableSize;
11021 VkDeviceSize callableShaderBindingTableStride;
11022 uint32_t width;
11023 uint32_t height;
11024 uint32_t depth;
11025} VkTraceRaysIndirectCommand2KHR;
11026
11027typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
11028
11029#ifndef VK_NO_PROTOTYPES
11030VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR(
11031 VkCommandBuffer commandBuffer,
11032 VkDeviceAddress indirectDeviceAddress);
11033#endif
11034
11035
11036// VK_KHR_portability_enumeration is a preprocessor guard. Do not pass it to API calls.
11037#define VK_KHR_portability_enumeration 1
11038#define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
11039#define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
11040
11041
11042// VK_KHR_maintenance4 is a preprocessor guard. Do not pass it to API calls.
11043#define VK_KHR_maintenance4 1
11044#define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
11045#define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
11046typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
11047
11048typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
11049
11050typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
11051
11052typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
11053
11054typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11055typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11056typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11057
11058#ifndef VK_NO_PROTOTYPES
11059VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR(
11060 VkDevice device,
11061 const VkDeviceBufferMemoryRequirements* pInfo,
11062 VkMemoryRequirements2* pMemoryRequirements);
11063
11064VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR(
11065 VkDevice device,
11066 const VkDeviceImageMemoryRequirements* pInfo,
11067 VkMemoryRequirements2* pMemoryRequirements);
11068
11069VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR(
11070 VkDevice device,
11071 const VkDeviceImageMemoryRequirements* pInfo,
11072 uint32_t* pSparseMemoryRequirementCount,
11073 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11074#endif
11075
11076
11077// VK_KHR_shader_subgroup_rotate is a preprocessor guard. Do not pass it to API calls.
11078#define VK_KHR_shader_subgroup_rotate 1
11079#define VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION 2
11080#define VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME "VK_KHR_shader_subgroup_rotate"
11081typedef struct VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR {
11082 VkStructureType sType;
11083 void* pNext;
11084 VkBool32 shaderSubgroupRotate;
11085 VkBool32 shaderSubgroupRotateClustered;
11086} VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR;
11087
11088
11089
11090// VK_KHR_shader_maximal_reconvergence is a preprocessor guard. Do not pass it to API calls.
11091#define VK_KHR_shader_maximal_reconvergence 1
11092#define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION 1
11093#define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME "VK_KHR_shader_maximal_reconvergence"
11094typedef struct VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
11095 VkStructureType sType;
11096 void* pNext;
11097 VkBool32 shaderMaximalReconvergence;
11098} VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR;
11099
11100
11101
11102// VK_KHR_maintenance5 is a preprocessor guard. Do not pass it to API calls.
11103#define VK_KHR_maintenance5 1
11104#define VK_KHR_MAINTENANCE_5_SPEC_VERSION 1
11105#define VK_KHR_MAINTENANCE_5_EXTENSION_NAME "VK_KHR_maintenance5"
11106typedef VkFlags64 VkPipelineCreateFlags2KHR;
11107
11108// Flag bits for VkPipelineCreateFlagBits2KHR
11109typedef VkFlags64 VkPipelineCreateFlagBits2KHR;
11110static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL;
11111static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL;
11112static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL;
11113static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL;
11114static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL;
11115static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ULL;
11116static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ULL;
11117static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ULL;
11118static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ULL;
11119static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ULL;
11120static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ULL;
11121static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ULL;
11122static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ULL;
11123static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ULL;
11124static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ULL;
11125static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000ULL;
11126static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ULL;
11127static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ULL;
11128static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ULL;
11129static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ULL;
11130static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ULL;
11131static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL;
11132static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL;
11133static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL;
11134static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL;
11135static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL;
11136static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL;
11137static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL;
11138static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL;
11139static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL;
11140static const VkPipelineCreateFlagBits2KHR VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL;
11141
11142typedef VkFlags64 VkBufferUsageFlags2KHR;
11143
11144// Flag bits for VkBufferUsageFlagBits2KHR
11145typedef VkFlags64 VkBufferUsageFlagBits2KHR;
11146static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL;
11147static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL;
11148static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL;
11149static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
11150static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x00000010ULL;
11151static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x00000020ULL;
11152static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL;
11153static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL;
11154static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL;
11155static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL;
11156static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL;
11157static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL;
11158static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL;
11159static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL;
11160static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL;
11161static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL;
11162static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL;
11163static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL;
11164static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL;
11165static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ULL;
11166static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL;
11167static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL;
11168static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL;
11169static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL;
11170static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL;
11171static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL;
11172static const VkBufferUsageFlagBits2KHR VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL;
11173
11174typedef struct VkPhysicalDeviceMaintenance5FeaturesKHR {
11175 VkStructureType sType;
11176 void* pNext;
11177 VkBool32 maintenance5;
11178} VkPhysicalDeviceMaintenance5FeaturesKHR;
11179
11180typedef struct VkPhysicalDeviceMaintenance5PropertiesKHR {
11181 VkStructureType sType;
11182 void* pNext;
11183 VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting;
11184 VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting;
11185 VkBool32 depthStencilSwizzleOneSupport;
11186 VkBool32 polygonModePointSize;
11187 VkBool32 nonStrictSinglePixelWideLinesUseParallelogram;
11188 VkBool32 nonStrictWideLinesUseParallelogram;
11189} VkPhysicalDeviceMaintenance5PropertiesKHR;
11190
11191typedef struct VkRenderingAreaInfoKHR {
11192 VkStructureType sType;
11193 const void* pNext;
11194 uint32_t viewMask;
11195 uint32_t colorAttachmentCount;
11196 const VkFormat* pColorAttachmentFormats;
11197 VkFormat depthAttachmentFormat;
11198 VkFormat stencilAttachmentFormat;
11199} VkRenderingAreaInfoKHR;
11200
11201typedef struct VkImageSubresource2KHR {
11202 VkStructureType sType;
11203 void* pNext;
11204 VkImageSubresource imageSubresource;
11205} VkImageSubresource2KHR;
11206
11207typedef struct VkDeviceImageSubresourceInfoKHR {
11208 VkStructureType sType;
11209 const void* pNext;
11210 const VkImageCreateInfo* pCreateInfo;
11211 const VkImageSubresource2KHR* pSubresource;
11212} VkDeviceImageSubresourceInfoKHR;
11213
11214typedef struct VkSubresourceLayout2KHR {
11215 VkStructureType sType;
11216 void* pNext;
11217 VkSubresourceLayout subresourceLayout;
11218} VkSubresourceLayout2KHR;
11219
11220typedef struct VkPipelineCreateFlags2CreateInfoKHR {
11221 VkStructureType sType;
11222 const void* pNext;
11223 VkPipelineCreateFlags2KHR flags;
11224} VkPipelineCreateFlags2CreateInfoKHR;
11225
11226typedef struct VkBufferUsageFlags2CreateInfoKHR {
11227 VkStructureType sType;
11228 const void* pNext;
11229 VkBufferUsageFlags2KHR usage;
11230} VkBufferUsageFlags2CreateInfoKHR;
11231
11232typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
11233typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularityKHR)(VkDevice device, const VkRenderingAreaInfoKHR* pRenderingAreaInfo, VkExtent2D* pGranularity);
11234typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice device, const VkDeviceImageSubresourceInfoKHR* pInfo, VkSubresourceLayout2KHR* pLayout);
11235typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2KHR)(VkDevice device, VkImage image, const VkImageSubresource2KHR* pSubresource, VkSubresourceLayout2KHR* pLayout);
11236
11237#ifndef VK_NO_PROTOTYPES
11238VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2KHR(
11239 VkCommandBuffer commandBuffer,
11240 VkBuffer buffer,
11241 VkDeviceSize offset,
11242 VkDeviceSize size,
11243 VkIndexType indexType);
11244
11245VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularityKHR(
11246 VkDevice device,
11247 const VkRenderingAreaInfoKHR* pRenderingAreaInfo,
11248 VkExtent2D* pGranularity);
11249
11250VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayoutKHR(
11251 VkDevice device,
11252 const VkDeviceImageSubresourceInfoKHR* pInfo,
11253 VkSubresourceLayout2KHR* pLayout);
11254
11255VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2KHR(
11256 VkDevice device,
11257 VkImage image,
11258 const VkImageSubresource2KHR* pSubresource,
11259 VkSubresourceLayout2KHR* pLayout);
11260#endif
11261
11262
11263// VK_KHR_ray_tracing_position_fetch is a preprocessor guard. Do not pass it to API calls.
11264#define VK_KHR_ray_tracing_position_fetch 1
11265#define VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION 1
11266#define VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME "VK_KHR_ray_tracing_position_fetch"
11267typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR {
11268 VkStructureType sType;
11269 void* pNext;
11270 VkBool32 rayTracingPositionFetch;
11271} VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
11272
11273
11274
11275// VK_KHR_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
11276#define VK_KHR_cooperative_matrix 1
11277#define VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION 2
11278#define VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_KHR_cooperative_matrix"
11279
11280typedef enum VkComponentTypeKHR {
11281 VK_COMPONENT_TYPE_FLOAT16_KHR = 0,
11282 VK_COMPONENT_TYPE_FLOAT32_KHR = 1,
11283 VK_COMPONENT_TYPE_FLOAT64_KHR = 2,
11284 VK_COMPONENT_TYPE_SINT8_KHR = 3,
11285 VK_COMPONENT_TYPE_SINT16_KHR = 4,
11286 VK_COMPONENT_TYPE_SINT32_KHR = 5,
11287 VK_COMPONENT_TYPE_SINT64_KHR = 6,
11288 VK_COMPONENT_TYPE_UINT8_KHR = 7,
11289 VK_COMPONENT_TYPE_UINT16_KHR = 8,
11290 VK_COMPONENT_TYPE_UINT32_KHR = 9,
11291 VK_COMPONENT_TYPE_UINT64_KHR = 10,
11292 VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR,
11293 VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR,
11294 VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR,
11295 VK_COMPONENT_TYPE_SINT8_NV = VK_COMPONENT_TYPE_SINT8_KHR,
11296 VK_COMPONENT_TYPE_SINT16_NV = VK_COMPONENT_TYPE_SINT16_KHR,
11297 VK_COMPONENT_TYPE_SINT32_NV = VK_COMPONENT_TYPE_SINT32_KHR,
11298 VK_COMPONENT_TYPE_SINT64_NV = VK_COMPONENT_TYPE_SINT64_KHR,
11299 VK_COMPONENT_TYPE_UINT8_NV = VK_COMPONENT_TYPE_UINT8_KHR,
11300 VK_COMPONENT_TYPE_UINT16_NV = VK_COMPONENT_TYPE_UINT16_KHR,
11301 VK_COMPONENT_TYPE_UINT32_NV = VK_COMPONENT_TYPE_UINT32_KHR,
11302 VK_COMPONENT_TYPE_UINT64_NV = VK_COMPONENT_TYPE_UINT64_KHR,
11303 VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
11304} VkComponentTypeKHR;
11305
11306typedef enum VkScopeKHR {
11307 VK_SCOPE_DEVICE_KHR = 1,
11308 VK_SCOPE_WORKGROUP_KHR = 2,
11309 VK_SCOPE_SUBGROUP_KHR = 3,
11310 VK_SCOPE_QUEUE_FAMILY_KHR = 5,
11311 VK_SCOPE_DEVICE_NV = VK_SCOPE_DEVICE_KHR,
11312 VK_SCOPE_WORKGROUP_NV = VK_SCOPE_WORKGROUP_KHR,
11313 VK_SCOPE_SUBGROUP_NV = VK_SCOPE_SUBGROUP_KHR,
11314 VK_SCOPE_QUEUE_FAMILY_NV = VK_SCOPE_QUEUE_FAMILY_KHR,
11315 VK_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
11316} VkScopeKHR;
11317typedef struct VkCooperativeMatrixPropertiesKHR {
11318 VkStructureType sType;
11319 void* pNext;
11320 uint32_t MSize;
11321 uint32_t NSize;
11322 uint32_t KSize;
11323 VkComponentTypeKHR AType;
11324 VkComponentTypeKHR BType;
11325 VkComponentTypeKHR CType;
11326 VkComponentTypeKHR ResultType;
11327 VkBool32 saturatingAccumulation;
11328 VkScopeKHR scope;
11329} VkCooperativeMatrixPropertiesKHR;
11330
11331typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR {
11332 VkStructureType sType;
11333 void* pNext;
11334 VkBool32 cooperativeMatrix;
11335 VkBool32 cooperativeMatrixRobustBufferAccess;
11336} VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
11337
11338typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR {
11339 VkStructureType sType;
11340 void* pNext;
11341 VkShaderStageFlags cooperativeMatrixSupportedStages;
11342} VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
11343
11344typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties);
11345
11346#ifndef VK_NO_PROTOTYPES
11347VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
11348 VkPhysicalDevice physicalDevice,
11349 uint32_t* pPropertyCount,
11350 VkCooperativeMatrixPropertiesKHR* pProperties);
11351#endif
11352
11353
11354// VK_KHR_video_decode_av1 is a preprocessor guard. Do not pass it to API calls.
11355#define VK_KHR_video_decode_av1 1
11356#include "../vk_video/vulkan_video_codec_av1std.h"
11357#include "../vk_video/vulkan_video_codec_av1std_decode.h"
11358#define VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR 7U
11359#define VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION 1
11360#define VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME "VK_KHR_video_decode_av1"
11361typedef struct VkVideoDecodeAV1ProfileInfoKHR {
11362 VkStructureType sType;
11363 const void* pNext;
11364 StdVideoAV1Profile stdProfile;
11365 VkBool32 filmGrainSupport;
11366} VkVideoDecodeAV1ProfileInfoKHR;
11367
11368typedef struct VkVideoDecodeAV1CapabilitiesKHR {
11369 VkStructureType sType;
11370 void* pNext;
11371 StdVideoAV1Level maxLevel;
11372} VkVideoDecodeAV1CapabilitiesKHR;
11373
11374typedef struct VkVideoDecodeAV1SessionParametersCreateInfoKHR {
11375 VkStructureType sType;
11376 const void* pNext;
11377 const StdVideoAV1SequenceHeader* pStdSequenceHeader;
11378} VkVideoDecodeAV1SessionParametersCreateInfoKHR;
11379
11380typedef struct VkVideoDecodeAV1PictureInfoKHR {
11381 VkStructureType sType;
11382 const void* pNext;
11383 const StdVideoDecodeAV1PictureInfo* pStdPictureInfo;
11384 int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
11385 uint32_t frameHeaderOffset;
11386 uint32_t tileCount;
11387 const uint32_t* pTileOffsets;
11388 const uint32_t* pTileSizes;
11389} VkVideoDecodeAV1PictureInfoKHR;
11390
11391typedef struct VkVideoDecodeAV1DpbSlotInfoKHR {
11392 VkStructureType sType;
11393 const void* pNext;
11394 const StdVideoDecodeAV1ReferenceInfo* pStdReferenceInfo;
11395} VkVideoDecodeAV1DpbSlotInfoKHR;
11396
11397
11398
11399// VK_KHR_video_maintenance1 is a preprocessor guard. Do not pass it to API calls.
11400#define VK_KHR_video_maintenance1 1
11401#define VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION 1
11402#define VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_video_maintenance1"
11403typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR {
11404 VkStructureType sType;
11405 void* pNext;
11406 VkBool32 videoMaintenance1;
11407} VkPhysicalDeviceVideoMaintenance1FeaturesKHR;
11408
11409typedef struct VkVideoInlineQueryInfoKHR {
11410 VkStructureType sType;
11411 const void* pNext;
11412 VkQueryPool queryPool;
11413 uint32_t firstQuery;
11414 uint32_t queryCount;
11415} VkVideoInlineQueryInfoKHR;
11416
11417
11418
11419// VK_KHR_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
11420#define VK_KHR_vertex_attribute_divisor 1
11421#define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1
11422#define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_KHR_vertex_attribute_divisor"
11423typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR {
11424 VkStructureType sType;
11425 void* pNext;
11426 uint32_t maxVertexAttribDivisor;
11427 VkBool32 supportsNonZeroFirstInstance;
11428} VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR;
11429
11430typedef struct VkVertexInputBindingDivisorDescriptionKHR {
11431 uint32_t binding;
11432 uint32_t divisor;
11433} VkVertexInputBindingDivisorDescriptionKHR;
11434
11435typedef struct VkPipelineVertexInputDivisorStateCreateInfoKHR {
11436 VkStructureType sType;
11437 const void* pNext;
11438 uint32_t vertexBindingDivisorCount;
11439 const VkVertexInputBindingDivisorDescriptionKHR* pVertexBindingDivisors;
11440} VkPipelineVertexInputDivisorStateCreateInfoKHR;
11441
11442typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR {
11443 VkStructureType sType;
11444 void* pNext;
11445 VkBool32 vertexAttributeInstanceRateDivisor;
11446 VkBool32 vertexAttributeInstanceRateZeroDivisor;
11447} VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
11448
11449
11450
11451// VK_KHR_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
11452#define VK_KHR_load_store_op_none 1
11453#define VK_KHR_LOAD_STORE_OP_NONE_SPEC_VERSION 1
11454#define VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_KHR_load_store_op_none"
11455
11456
11457// VK_KHR_shader_float_controls2 is a preprocessor guard. Do not pass it to API calls.
11458#define VK_KHR_shader_float_controls2 1
11459#define VK_KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION 1
11460#define VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME "VK_KHR_shader_float_controls2"
11461typedef struct VkPhysicalDeviceShaderFloatControls2FeaturesKHR {
11462 VkStructureType sType;
11463 void* pNext;
11464 VkBool32 shaderFloatControls2;
11465} VkPhysicalDeviceShaderFloatControls2FeaturesKHR;
11466
11467
11468
11469// VK_KHR_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
11470#define VK_KHR_index_type_uint8 1
11471#define VK_KHR_INDEX_TYPE_UINT8_SPEC_VERSION 1
11472#define VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_KHR_index_type_uint8"
11473typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesKHR {
11474 VkStructureType sType;
11475 void* pNext;
11476 VkBool32 indexTypeUint8;
11477} VkPhysicalDeviceIndexTypeUint8FeaturesKHR;
11478
11479
11480
11481// VK_KHR_line_rasterization is a preprocessor guard. Do not pass it to API calls.
11482#define VK_KHR_line_rasterization 1
11483#define VK_KHR_LINE_RASTERIZATION_SPEC_VERSION 1
11484#define VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME "VK_KHR_line_rasterization"
11485
11486typedef enum VkLineRasterizationModeKHR {
11487 VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR = 0,
11488 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR = 1,
11489 VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR = 2,
11490 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR = 3,
11491 VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR,
11492 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR,
11493 VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR,
11494 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR,
11495 VK_LINE_RASTERIZATION_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
11496} VkLineRasterizationModeKHR;
11497typedef struct VkPhysicalDeviceLineRasterizationFeaturesKHR {
11498 VkStructureType sType;
11499 void* pNext;
11500 VkBool32 rectangularLines;
11501 VkBool32 bresenhamLines;
11502 VkBool32 smoothLines;
11503 VkBool32 stippledRectangularLines;
11504 VkBool32 stippledBresenhamLines;
11505 VkBool32 stippledSmoothLines;
11506} VkPhysicalDeviceLineRasterizationFeaturesKHR;
11507
11508typedef struct VkPhysicalDeviceLineRasterizationPropertiesKHR {
11509 VkStructureType sType;
11510 void* pNext;
11511 uint32_t lineSubPixelPrecisionBits;
11512} VkPhysicalDeviceLineRasterizationPropertiesKHR;
11513
11514typedef struct VkPipelineRasterizationLineStateCreateInfoKHR {
11515 VkStructureType sType;
11516 const void* pNext;
11517 VkLineRasterizationModeKHR lineRasterizationMode;
11518 VkBool32 stippledLineEnable;
11519 uint32_t lineStippleFactor;
11520 uint16_t lineStipplePattern;
11521} VkPipelineRasterizationLineStateCreateInfoKHR;
11522
11523typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleKHR)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
11524
11525#ifndef VK_NO_PROTOTYPES
11526VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleKHR(
11527 VkCommandBuffer commandBuffer,
11528 uint32_t lineStippleFactor,
11529 uint16_t lineStipplePattern);
11530#endif
11531
11532
11533// VK_KHR_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
11534#define VK_KHR_calibrated_timestamps 1
11535#define VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
11536#define VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_KHR_calibrated_timestamps"
11537
11538typedef enum VkTimeDomainKHR {
11539 VK_TIME_DOMAIN_DEVICE_KHR = 0,
11540 VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR = 1,
11541 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR = 2,
11542 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR = 3,
11543 VK_TIME_DOMAIN_DEVICE_EXT = VK_TIME_DOMAIN_DEVICE_KHR,
11544 VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
11545 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
11546 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR,
11547 VK_TIME_DOMAIN_MAX_ENUM_KHR = 0x7FFFFFFF
11548} VkTimeDomainKHR;
11549typedef struct VkCalibratedTimestampInfoKHR {
11550 VkStructureType sType;
11551 const void* pNext;
11552 VkTimeDomainKHR timeDomain;
11553} VkCalibratedTimestampInfoKHR;
11554
11555typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
11556typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsKHR)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
11557
11558#ifndef VK_NO_PROTOTYPES
11559VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
11560 VkPhysicalDevice physicalDevice,
11561 uint32_t* pTimeDomainCount,
11562 VkTimeDomainKHR* pTimeDomains);
11563
11564VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsKHR(
11565 VkDevice device,
11566 uint32_t timestampCount,
11567 const VkCalibratedTimestampInfoKHR* pTimestampInfos,
11568 uint64_t* pTimestamps,
11569 uint64_t* pMaxDeviation);
11570#endif
11571
11572
11573// VK_KHR_shader_expect_assume is a preprocessor guard. Do not pass it to API calls.
11574#define VK_KHR_shader_expect_assume 1
11575#define VK_KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION 1
11576#define VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME "VK_KHR_shader_expect_assume"
11577typedef struct VkPhysicalDeviceShaderExpectAssumeFeaturesKHR {
11578 VkStructureType sType;
11579 void* pNext;
11580 VkBool32 shaderExpectAssume;
11581} VkPhysicalDeviceShaderExpectAssumeFeaturesKHR;
11582
11583
11584
11585// VK_KHR_maintenance6 is a preprocessor guard. Do not pass it to API calls.
11586#define VK_KHR_maintenance6 1
11587#define VK_KHR_MAINTENANCE_6_SPEC_VERSION 1
11588#define VK_KHR_MAINTENANCE_6_EXTENSION_NAME "VK_KHR_maintenance6"
11589typedef struct VkPhysicalDeviceMaintenance6FeaturesKHR {
11590 VkStructureType sType;
11591 void* pNext;
11592 VkBool32 maintenance6;
11593} VkPhysicalDeviceMaintenance6FeaturesKHR;
11594
11595typedef struct VkPhysicalDeviceMaintenance6PropertiesKHR {
11596 VkStructureType sType;
11597 void* pNext;
11598 VkBool32 blockTexelViewCompatibleMultipleLayers;
11599 uint32_t maxCombinedImageSamplerDescriptorCount;
11600 VkBool32 fragmentShadingRateClampCombinerInputs;
11601} VkPhysicalDeviceMaintenance6PropertiesKHR;
11602
11603typedef struct VkBindMemoryStatusKHR {
11604 VkStructureType sType;
11605 const void* pNext;
11606 VkResult* pResult;
11607} VkBindMemoryStatusKHR;
11608
11609typedef struct VkBindDescriptorSetsInfoKHR {
11610 VkStructureType sType;
11611 const void* pNext;
11612 VkShaderStageFlags stageFlags;
11613 VkPipelineLayout layout;
11614 uint32_t firstSet;
11615 uint32_t descriptorSetCount;
11616 const VkDescriptorSet* pDescriptorSets;
11617 uint32_t dynamicOffsetCount;
11618 const uint32_t* pDynamicOffsets;
11619} VkBindDescriptorSetsInfoKHR;
11620
11621typedef struct VkPushConstantsInfoKHR {
11622 VkStructureType sType;
11623 const void* pNext;
11624 VkPipelineLayout layout;
11625 VkShaderStageFlags stageFlags;
11626 uint32_t offset;
11627 uint32_t size;
11628 const void* pValues;
11629} VkPushConstantsInfoKHR;
11630
11631typedef struct VkPushDescriptorSetInfoKHR {
11632 VkStructureType sType;
11633 const void* pNext;
11634 VkShaderStageFlags stageFlags;
11635 VkPipelineLayout layout;
11636 uint32_t set;
11637 uint32_t descriptorWriteCount;
11638 const VkWriteDescriptorSet* pDescriptorWrites;
11639} VkPushDescriptorSetInfoKHR;
11640
11641typedef struct VkPushDescriptorSetWithTemplateInfoKHR {
11642 VkStructureType sType;
11643 const void* pNext;
11644 VkDescriptorUpdateTemplate descriptorUpdateTemplate;
11645 VkPipelineLayout layout;
11646 uint32_t set;
11647 const void* pData;
11648} VkPushDescriptorSetWithTemplateInfoKHR;
11649
11650typedef struct VkSetDescriptorBufferOffsetsInfoEXT {
11651 VkStructureType sType;
11652 const void* pNext;
11653 VkShaderStageFlags stageFlags;
11654 VkPipelineLayout layout;
11655 uint32_t firstSet;
11656 uint32_t setCount;
11657 const uint32_t* pBufferIndices;
11658 const VkDeviceSize* pOffsets;
11659} VkSetDescriptorBufferOffsetsInfoEXT;
11660
11661typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT {
11662 VkStructureType sType;
11663 const void* pNext;
11664 VkShaderStageFlags stageFlags;
11665 VkPipelineLayout layout;
11666 uint32_t set;
11667} VkBindDescriptorBufferEmbeddedSamplersInfoEXT;
11668
11669typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfoKHR* pBindDescriptorSetsInfo);
11670typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2KHR)(VkCommandBuffer commandBuffer, const VkPushConstantsInfoKHR* pPushConstantsInfo);
11671typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfoKHR* pPushDescriptorSetInfo);
11672typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfoKHR* pPushDescriptorSetWithTemplateInfo);
11673typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer commandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
11674typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
11675
11676#ifndef VK_NO_PROTOTYPES
11677VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2KHR(
11678 VkCommandBuffer commandBuffer,
11679 const VkBindDescriptorSetsInfoKHR* pBindDescriptorSetsInfo);
11680
11681VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2KHR(
11682 VkCommandBuffer commandBuffer,
11683 const VkPushConstantsInfoKHR* pPushConstantsInfo);
11684
11685VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2KHR(
11686 VkCommandBuffer commandBuffer,
11687 const VkPushDescriptorSetInfoKHR* pPushDescriptorSetInfo);
11688
11689VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2KHR(
11690 VkCommandBuffer commandBuffer,
11691 const VkPushDescriptorSetWithTemplateInfoKHR* pPushDescriptorSetWithTemplateInfo);
11692
11693VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsets2EXT(
11694 VkCommandBuffer commandBuffer,
11695 const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
11696
11697VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
11698 VkCommandBuffer commandBuffer,
11699 const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
11700#endif
11701
11702
11703// VK_EXT_debug_report is a preprocessor guard. Do not pass it to API calls.
11704#define VK_EXT_debug_report 1
11705VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
11706#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10
11707#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
11708
11709typedef enum VkDebugReportObjectTypeEXT {
11710 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
11711 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
11712 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
11713 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
11714 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
11715 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
11716 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
11717 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
11718 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
11719 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
11720 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
11721 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
11722 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
11723 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
11724 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
11725 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
11726 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
11727 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
11728 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
11729 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
11730 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
11731 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
11732 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
11733 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
11734 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
11735 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
11736 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
11737 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
11738 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
11739 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
11740 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
11741 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
11742 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
11743 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
11744 VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000,
11745 VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
11746 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
11747 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
11748 VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000,
11749 VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT = 1000307001,
11750 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000,
11751 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
11752 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
11753 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
11754 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
11755 VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
11756} VkDebugReportObjectTypeEXT;
11757
11758typedef enum VkDebugReportFlagBitsEXT {
11759 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
11760 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
11761 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
11762 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
11763 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
11764 VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
11765} VkDebugReportFlagBitsEXT;
11766typedef VkFlags VkDebugReportFlagsEXT;
11767typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
11768 VkDebugReportFlagsEXT flags,
11769 VkDebugReportObjectTypeEXT objectType,
11770 uint64_t object,
11771 size_t location,
11772 int32_t messageCode,
11773 const char* pLayerPrefix,
11774 const char* pMessage,
11775 void* pUserData);
11776
11777typedef struct VkDebugReportCallbackCreateInfoEXT {
11778 VkStructureType sType;
11779 const void* pNext;
11780 VkDebugReportFlagsEXT flags;
11781 PFN_vkDebugReportCallbackEXT pfnCallback;
11782 void* pUserData;
11783} VkDebugReportCallbackCreateInfoEXT;
11784
11785typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
11786typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
11787typedef 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);
11788
11789#ifndef VK_NO_PROTOTYPES
11790VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
11791 VkInstance instance,
11792 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
11793 const VkAllocationCallbacks* pAllocator,
11794 VkDebugReportCallbackEXT* pCallback);
11795
11796VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
11797 VkInstance instance,
11798 VkDebugReportCallbackEXT callback,
11799 const VkAllocationCallbacks* pAllocator);
11800
11801VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
11802 VkInstance instance,
11803 VkDebugReportFlagsEXT flags,
11804 VkDebugReportObjectTypeEXT objectType,
11805 uint64_t object,
11806 size_t location,
11807 int32_t messageCode,
11808 const char* pLayerPrefix,
11809 const char* pMessage);
11810#endif
11811
11812
11813// VK_NV_glsl_shader is a preprocessor guard. Do not pass it to API calls.
11814#define VK_NV_glsl_shader 1
11815#define VK_NV_GLSL_SHADER_SPEC_VERSION 1
11816#define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader"
11817
11818
11819// VK_EXT_depth_range_unrestricted is a preprocessor guard. Do not pass it to API calls.
11820#define VK_EXT_depth_range_unrestricted 1
11821#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
11822#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
11823
11824
11825// VK_IMG_filter_cubic is a preprocessor guard. Do not pass it to API calls.
11826#define VK_IMG_filter_cubic 1
11827#define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
11828#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
11829
11830
11831// VK_AMD_rasterization_order is a preprocessor guard. Do not pass it to API calls.
11832#define VK_AMD_rasterization_order 1
11833#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
11834#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
11835
11836typedef enum VkRasterizationOrderAMD {
11837 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
11838 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
11839 VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
11840} VkRasterizationOrderAMD;
11841typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
11842 VkStructureType sType;
11843 const void* pNext;
11844 VkRasterizationOrderAMD rasterizationOrder;
11845} VkPipelineRasterizationStateRasterizationOrderAMD;
11846
11847
11848
11849// VK_AMD_shader_trinary_minmax is a preprocessor guard. Do not pass it to API calls.
11850#define VK_AMD_shader_trinary_minmax 1
11851#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
11852#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
11853
11854
11855// VK_AMD_shader_explicit_vertex_parameter is a preprocessor guard. Do not pass it to API calls.
11856#define VK_AMD_shader_explicit_vertex_parameter 1
11857#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
11858#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
11859
11860
11861// VK_EXT_debug_marker is a preprocessor guard. Do not pass it to API calls.
11862#define VK_EXT_debug_marker 1
11863#define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
11864#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
11865typedef struct VkDebugMarkerObjectNameInfoEXT {
11866 VkStructureType sType;
11867 const void* pNext;
11868 VkDebugReportObjectTypeEXT objectType;
11869 uint64_t object;
11870 const char* pObjectName;
11871} VkDebugMarkerObjectNameInfoEXT;
11872
11873typedef struct VkDebugMarkerObjectTagInfoEXT {
11874 VkStructureType sType;
11875 const void* pNext;
11876 VkDebugReportObjectTypeEXT objectType;
11877 uint64_t object;
11878 uint64_t tagName;
11879 size_t tagSize;
11880 const void* pTag;
11881} VkDebugMarkerObjectTagInfoEXT;
11882
11883typedef struct VkDebugMarkerMarkerInfoEXT {
11884 VkStructureType sType;
11885 const void* pNext;
11886 const char* pMarkerName;
11887 float color[4];
11888} VkDebugMarkerMarkerInfoEXT;
11889
11890typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
11891typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
11892typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
11893typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
11894typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
11895
11896#ifndef VK_NO_PROTOTYPES
11897VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
11898 VkDevice device,
11899 const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
11900
11901VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
11902 VkDevice device,
11903 const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
11904
11905VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
11906 VkCommandBuffer commandBuffer,
11907 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
11908
11909VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
11910 VkCommandBuffer commandBuffer);
11911
11912VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
11913 VkCommandBuffer commandBuffer,
11914 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
11915#endif
11916
11917
11918// VK_AMD_gcn_shader is a preprocessor guard. Do not pass it to API calls.
11919#define VK_AMD_gcn_shader 1
11920#define VK_AMD_GCN_SHADER_SPEC_VERSION 1
11921#define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
11922
11923
11924// VK_NV_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
11925#define VK_NV_dedicated_allocation 1
11926#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
11927#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
11928typedef struct VkDedicatedAllocationImageCreateInfoNV {
11929 VkStructureType sType;
11930 const void* pNext;
11931 VkBool32 dedicatedAllocation;
11932} VkDedicatedAllocationImageCreateInfoNV;
11933
11934typedef struct VkDedicatedAllocationBufferCreateInfoNV {
11935 VkStructureType sType;
11936 const void* pNext;
11937 VkBool32 dedicatedAllocation;
11938} VkDedicatedAllocationBufferCreateInfoNV;
11939
11940typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
11941 VkStructureType sType;
11942 const void* pNext;
11943 VkImage image;
11944 VkBuffer buffer;
11945} VkDedicatedAllocationMemoryAllocateInfoNV;
11946
11947
11948
11949// VK_EXT_transform_feedback is a preprocessor guard. Do not pass it to API calls.
11950#define VK_EXT_transform_feedback 1
11951#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
11952#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
11953typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
11954typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
11955 VkStructureType sType;
11956 void* pNext;
11957 VkBool32 transformFeedback;
11958 VkBool32 geometryStreams;
11959} VkPhysicalDeviceTransformFeedbackFeaturesEXT;
11960
11961typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
11962 VkStructureType sType;
11963 void* pNext;
11964 uint32_t maxTransformFeedbackStreams;
11965 uint32_t maxTransformFeedbackBuffers;
11966 VkDeviceSize maxTransformFeedbackBufferSize;
11967 uint32_t maxTransformFeedbackStreamDataSize;
11968 uint32_t maxTransformFeedbackBufferDataSize;
11969 uint32_t maxTransformFeedbackBufferDataStride;
11970 VkBool32 transformFeedbackQueries;
11971 VkBool32 transformFeedbackStreamsLinesTriangles;
11972 VkBool32 transformFeedbackRasterizationStreamSelect;
11973 VkBool32 transformFeedbackDraw;
11974} VkPhysicalDeviceTransformFeedbackPropertiesEXT;
11975
11976typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
11977 VkStructureType sType;
11978 const void* pNext;
11979 VkPipelineRasterizationStateStreamCreateFlagsEXT flags;
11980 uint32_t rasterizationStream;
11981} VkPipelineRasterizationStateStreamCreateInfoEXT;
11982
11983typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
11984typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
11985typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
11986typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
11987typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
11988typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
11989
11990#ifndef VK_NO_PROTOTYPES
11991VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
11992 VkCommandBuffer commandBuffer,
11993 uint32_t firstBinding,
11994 uint32_t bindingCount,
11995 const VkBuffer* pBuffers,
11996 const VkDeviceSize* pOffsets,
11997 const VkDeviceSize* pSizes);
11998
11999VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
12000 VkCommandBuffer commandBuffer,
12001 uint32_t firstCounterBuffer,
12002 uint32_t counterBufferCount,
12003 const VkBuffer* pCounterBuffers,
12004 const VkDeviceSize* pCounterBufferOffsets);
12005
12006VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
12007 VkCommandBuffer commandBuffer,
12008 uint32_t firstCounterBuffer,
12009 uint32_t counterBufferCount,
12010 const VkBuffer* pCounterBuffers,
12011 const VkDeviceSize* pCounterBufferOffsets);
12012
12013VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
12014 VkCommandBuffer commandBuffer,
12015 VkQueryPool queryPool,
12016 uint32_t query,
12017 VkQueryControlFlags flags,
12018 uint32_t index);
12019
12020VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
12021 VkCommandBuffer commandBuffer,
12022 VkQueryPool queryPool,
12023 uint32_t query,
12024 uint32_t index);
12025
12026VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
12027 VkCommandBuffer commandBuffer,
12028 uint32_t instanceCount,
12029 uint32_t firstInstance,
12030 VkBuffer counterBuffer,
12031 VkDeviceSize counterBufferOffset,
12032 uint32_t counterOffset,
12033 uint32_t vertexStride);
12034#endif
12035
12036
12037// VK_NVX_binary_import is a preprocessor guard. Do not pass it to API calls.
12038#define VK_NVX_binary_import 1
12039VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
12040VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
12041#define VK_NVX_BINARY_IMPORT_SPEC_VERSION 1
12042#define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
12043typedef struct VkCuModuleCreateInfoNVX {
12044 VkStructureType sType;
12045 const void* pNext;
12046 size_t dataSize;
12047 const void* pData;
12048} VkCuModuleCreateInfoNVX;
12049
12050typedef struct VkCuFunctionCreateInfoNVX {
12051 VkStructureType sType;
12052 const void* pNext;
12053 VkCuModuleNVX module;
12054 const char* pName;
12055} VkCuFunctionCreateInfoNVX;
12056
12057typedef struct VkCuLaunchInfoNVX {
12058 VkStructureType sType;
12059 const void* pNext;
12060 VkCuFunctionNVX function;
12061 uint32_t gridDimX;
12062 uint32_t gridDimY;
12063 uint32_t gridDimZ;
12064 uint32_t blockDimX;
12065 uint32_t blockDimY;
12066 uint32_t blockDimZ;
12067 uint32_t sharedMemBytes;
12068 size_t paramCount;
12069 const void* const * pParams;
12070 size_t extraCount;
12071 const void* const * pExtras;
12072} VkCuLaunchInfoNVX;
12073
12074typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
12075typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
12076typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
12077typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
12078typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
12079
12080#ifndef VK_NO_PROTOTYPES
12081VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX(
12082 VkDevice device,
12083 const VkCuModuleCreateInfoNVX* pCreateInfo,
12084 const VkAllocationCallbacks* pAllocator,
12085 VkCuModuleNVX* pModule);
12086
12087VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX(
12088 VkDevice device,
12089 const VkCuFunctionCreateInfoNVX* pCreateInfo,
12090 const VkAllocationCallbacks* pAllocator,
12091 VkCuFunctionNVX* pFunction);
12092
12093VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX(
12094 VkDevice device,
12095 VkCuModuleNVX module,
12096 const VkAllocationCallbacks* pAllocator);
12097
12098VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX(
12099 VkDevice device,
12100 VkCuFunctionNVX function,
12101 const VkAllocationCallbacks* pAllocator);
12102
12103VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX(
12104 VkCommandBuffer commandBuffer,
12105 const VkCuLaunchInfoNVX* pLaunchInfo);
12106#endif
12107
12108
12109// VK_NVX_image_view_handle is a preprocessor guard. Do not pass it to API calls.
12110#define VK_NVX_image_view_handle 1
12111#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2
12112#define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
12113typedef struct VkImageViewHandleInfoNVX {
12114 VkStructureType sType;
12115 const void* pNext;
12116 VkImageView imageView;
12117 VkDescriptorType descriptorType;
12118 VkSampler sampler;
12119} VkImageViewHandleInfoNVX;
12120
12121typedef struct VkImageViewAddressPropertiesNVX {
12122 VkStructureType sType;
12123 void* pNext;
12124 VkDeviceAddress deviceAddress;
12125 VkDeviceSize size;
12126} VkImageViewAddressPropertiesNVX;
12127
12128typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
12129typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
12130
12131#ifndef VK_NO_PROTOTYPES
12132VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
12133 VkDevice device,
12134 const VkImageViewHandleInfoNVX* pInfo);
12135
12136VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
12137 VkDevice device,
12138 VkImageView imageView,
12139 VkImageViewAddressPropertiesNVX* pProperties);
12140#endif
12141
12142
12143// VK_AMD_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
12144#define VK_AMD_draw_indirect_count 1
12145#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
12146#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
12147typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
12148typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
12149
12150#ifndef VK_NO_PROTOTYPES
12151VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
12152 VkCommandBuffer commandBuffer,
12153 VkBuffer buffer,
12154 VkDeviceSize offset,
12155 VkBuffer countBuffer,
12156 VkDeviceSize countBufferOffset,
12157 uint32_t maxDrawCount,
12158 uint32_t stride);
12159
12160VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
12161 VkCommandBuffer commandBuffer,
12162 VkBuffer buffer,
12163 VkDeviceSize offset,
12164 VkBuffer countBuffer,
12165 VkDeviceSize countBufferOffset,
12166 uint32_t maxDrawCount,
12167 uint32_t stride);
12168#endif
12169
12170
12171// VK_AMD_negative_viewport_height is a preprocessor guard. Do not pass it to API calls.
12172#define VK_AMD_negative_viewport_height 1
12173#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
12174#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
12175
12176
12177// VK_AMD_gpu_shader_half_float is a preprocessor guard. Do not pass it to API calls.
12178#define VK_AMD_gpu_shader_half_float 1
12179#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
12180#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
12181
12182
12183// VK_AMD_shader_ballot is a preprocessor guard. Do not pass it to API calls.
12184#define VK_AMD_shader_ballot 1
12185#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
12186#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
12187
12188
12189// VK_AMD_texture_gather_bias_lod is a preprocessor guard. Do not pass it to API calls.
12190#define VK_AMD_texture_gather_bias_lod 1
12191#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
12192#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
12193typedef struct VkTextureLODGatherFormatPropertiesAMD {
12194 VkStructureType sType;
12195 void* pNext;
12196 VkBool32 supportsTextureGatherLODBiasAMD;
12197} VkTextureLODGatherFormatPropertiesAMD;
12198
12199
12200
12201// VK_AMD_shader_info is a preprocessor guard. Do not pass it to API calls.
12202#define VK_AMD_shader_info 1
12203#define VK_AMD_SHADER_INFO_SPEC_VERSION 1
12204#define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
12205
12206typedef enum VkShaderInfoTypeAMD {
12207 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
12208 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
12209 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
12210 VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
12211} VkShaderInfoTypeAMD;
12212typedef struct VkShaderResourceUsageAMD {
12213 uint32_t numUsedVgprs;
12214 uint32_t numUsedSgprs;
12215 uint32_t ldsSizePerLocalWorkGroup;
12216 size_t ldsUsageSizeInBytes;
12217 size_t scratchMemUsageInBytes;
12218} VkShaderResourceUsageAMD;
12219
12220typedef struct VkShaderStatisticsInfoAMD {
12221 VkShaderStageFlags shaderStageMask;
12222 VkShaderResourceUsageAMD resourceUsage;
12223 uint32_t numPhysicalVgprs;
12224 uint32_t numPhysicalSgprs;
12225 uint32_t numAvailableVgprs;
12226 uint32_t numAvailableSgprs;
12227 uint32_t computeWorkGroupSize[3];
12228} VkShaderStatisticsInfoAMD;
12229
12230typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
12231
12232#ifndef VK_NO_PROTOTYPES
12233VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
12234 VkDevice device,
12235 VkPipeline pipeline,
12236 VkShaderStageFlagBits shaderStage,
12237 VkShaderInfoTypeAMD infoType,
12238 size_t* pInfoSize,
12239 void* pInfo);
12240#endif
12241
12242
12243// VK_AMD_shader_image_load_store_lod is a preprocessor guard. Do not pass it to API calls.
12244#define VK_AMD_shader_image_load_store_lod 1
12245#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
12246#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
12247
12248
12249// VK_NV_corner_sampled_image is a preprocessor guard. Do not pass it to API calls.
12250#define VK_NV_corner_sampled_image 1
12251#define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
12252#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
12253typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
12254 VkStructureType sType;
12255 void* pNext;
12256 VkBool32 cornerSampledImage;
12257} VkPhysicalDeviceCornerSampledImageFeaturesNV;
12258
12259
12260
12261// VK_IMG_format_pvrtc is a preprocessor guard. Do not pass it to API calls.
12262#define VK_IMG_format_pvrtc 1
12263#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
12264#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
12265
12266
12267// VK_NV_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
12268#define VK_NV_external_memory_capabilities 1
12269#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
12270#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
12271
12272typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
12273 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
12274 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
12275 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
12276 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
12277 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
12278} VkExternalMemoryHandleTypeFlagBitsNV;
12279typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
12280
12281typedef enum VkExternalMemoryFeatureFlagBitsNV {
12282 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
12283 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
12284 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
12285 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
12286} VkExternalMemoryFeatureFlagBitsNV;
12287typedef VkFlags VkExternalMemoryFeatureFlagsNV;
12288typedef struct VkExternalImageFormatPropertiesNV {
12289 VkImageFormatProperties imageFormatProperties;
12290 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures;
12291 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
12292 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
12293} VkExternalImageFormatPropertiesNV;
12294
12295typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
12296
12297#ifndef VK_NO_PROTOTYPES
12298VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
12299 VkPhysicalDevice physicalDevice,
12300 VkFormat format,
12301 VkImageType type,
12302 VkImageTiling tiling,
12303 VkImageUsageFlags usage,
12304 VkImageCreateFlags flags,
12305 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
12306 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
12307#endif
12308
12309
12310// VK_NV_external_memory is a preprocessor guard. Do not pass it to API calls.
12311#define VK_NV_external_memory 1
12312#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
12313#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
12314typedef struct VkExternalMemoryImageCreateInfoNV {
12315 VkStructureType sType;
12316 const void* pNext;
12317 VkExternalMemoryHandleTypeFlagsNV handleTypes;
12318} VkExternalMemoryImageCreateInfoNV;
12319
12320typedef struct VkExportMemoryAllocateInfoNV {
12321 VkStructureType sType;
12322 const void* pNext;
12323 VkExternalMemoryHandleTypeFlagsNV handleTypes;
12324} VkExportMemoryAllocateInfoNV;
12325
12326
12327
12328// VK_EXT_validation_flags is a preprocessor guard. Do not pass it to API calls.
12329#define VK_EXT_validation_flags 1
12330#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 3
12331#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
12332
12333typedef enum VkValidationCheckEXT {
12334 VK_VALIDATION_CHECK_ALL_EXT = 0,
12335 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
12336 VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
12337} VkValidationCheckEXT;
12338typedef struct VkValidationFlagsEXT {
12339 VkStructureType sType;
12340 const void* pNext;
12341 uint32_t disabledValidationCheckCount;
12342 const VkValidationCheckEXT* pDisabledValidationChecks;
12343} VkValidationFlagsEXT;
12344
12345
12346
12347// VK_EXT_shader_subgroup_ballot is a preprocessor guard. Do not pass it to API calls.
12348#define VK_EXT_shader_subgroup_ballot 1
12349#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
12350#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
12351
12352
12353// VK_EXT_shader_subgroup_vote is a preprocessor guard. Do not pass it to API calls.
12354#define VK_EXT_shader_subgroup_vote 1
12355#define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
12356#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
12357
12358
12359// VK_EXT_texture_compression_astc_hdr is a preprocessor guard. Do not pass it to API calls.
12360#define VK_EXT_texture_compression_astc_hdr 1
12361#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
12362#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
12363typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
12364
12365
12366
12367// VK_EXT_astc_decode_mode is a preprocessor guard. Do not pass it to API calls.
12368#define VK_EXT_astc_decode_mode 1
12369#define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
12370#define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
12371typedef struct VkImageViewASTCDecodeModeEXT {
12372 VkStructureType sType;
12373 const void* pNext;
12374 VkFormat decodeMode;
12375} VkImageViewASTCDecodeModeEXT;
12376
12377typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
12378 VkStructureType sType;
12379 void* pNext;
12380 VkBool32 decodeModeSharedExponent;
12381} VkPhysicalDeviceASTCDecodeFeaturesEXT;
12382
12383
12384
12385// VK_EXT_pipeline_robustness is a preprocessor guard. Do not pass it to API calls.
12386#define VK_EXT_pipeline_robustness 1
12387#define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1
12388#define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
12389
12390typedef enum VkPipelineRobustnessBufferBehaviorEXT {
12391 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0,
12392 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1,
12393 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2,
12394 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3,
12395 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM_EXT = 0x7FFFFFFF
12396} VkPipelineRobustnessBufferBehaviorEXT;
12397
12398typedef enum VkPipelineRobustnessImageBehaviorEXT {
12399 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0,
12400 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1,
12401 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2,
12402 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3,
12403 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM_EXT = 0x7FFFFFFF
12404} VkPipelineRobustnessImageBehaviorEXT;
12405typedef struct VkPhysicalDevicePipelineRobustnessFeaturesEXT {
12406 VkStructureType sType;
12407 void* pNext;
12408 VkBool32 pipelineRobustness;
12409} VkPhysicalDevicePipelineRobustnessFeaturesEXT;
12410
12411typedef struct VkPhysicalDevicePipelineRobustnessPropertiesEXT {
12412 VkStructureType sType;
12413 void* pNext;
12414 VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessStorageBuffers;
12415 VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessUniformBuffers;
12416 VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessVertexInputs;
12417 VkPipelineRobustnessImageBehaviorEXT defaultRobustnessImages;
12418} VkPhysicalDevicePipelineRobustnessPropertiesEXT;
12419
12420typedef struct VkPipelineRobustnessCreateInfoEXT {
12421 VkStructureType sType;
12422 const void* pNext;
12423 VkPipelineRobustnessBufferBehaviorEXT storageBuffers;
12424 VkPipelineRobustnessBufferBehaviorEXT uniformBuffers;
12425 VkPipelineRobustnessBufferBehaviorEXT vertexInputs;
12426 VkPipelineRobustnessImageBehaviorEXT images;
12427} VkPipelineRobustnessCreateInfoEXT;
12428
12429
12430
12431// VK_EXT_conditional_rendering is a preprocessor guard. Do not pass it to API calls.
12432#define VK_EXT_conditional_rendering 1
12433#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
12434#define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
12435
12436typedef enum VkConditionalRenderingFlagBitsEXT {
12437 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
12438 VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
12439} VkConditionalRenderingFlagBitsEXT;
12440typedef VkFlags VkConditionalRenderingFlagsEXT;
12441typedef struct VkConditionalRenderingBeginInfoEXT {
12442 VkStructureType sType;
12443 const void* pNext;
12444 VkBuffer buffer;
12445 VkDeviceSize offset;
12446 VkConditionalRenderingFlagsEXT flags;
12447} VkConditionalRenderingBeginInfoEXT;
12448
12449typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
12450 VkStructureType sType;
12451 void* pNext;
12452 VkBool32 conditionalRendering;
12453 VkBool32 inheritedConditionalRendering;
12454} VkPhysicalDeviceConditionalRenderingFeaturesEXT;
12455
12456typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
12457 VkStructureType sType;
12458 const void* pNext;
12459 VkBool32 conditionalRenderingEnable;
12460} VkCommandBufferInheritanceConditionalRenderingInfoEXT;
12461
12462typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
12463typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
12464
12465#ifndef VK_NO_PROTOTYPES
12466VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
12467 VkCommandBuffer commandBuffer,
12468 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
12469
12470VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
12471 VkCommandBuffer commandBuffer);
12472#endif
12473
12474
12475// VK_NV_clip_space_w_scaling is a preprocessor guard. Do not pass it to API calls.
12476#define VK_NV_clip_space_w_scaling 1
12477#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
12478#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
12479typedef struct VkViewportWScalingNV {
12480 float xcoeff;
12481 float ycoeff;
12482} VkViewportWScalingNV;
12483
12484typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
12485 VkStructureType sType;
12486 const void* pNext;
12487 VkBool32 viewportWScalingEnable;
12488 uint32_t viewportCount;
12489 const VkViewportWScalingNV* pViewportWScalings;
12490} VkPipelineViewportWScalingStateCreateInfoNV;
12491
12492typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
12493
12494#ifndef VK_NO_PROTOTYPES
12495VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
12496 VkCommandBuffer commandBuffer,
12497 uint32_t firstViewport,
12498 uint32_t viewportCount,
12499 const VkViewportWScalingNV* pViewportWScalings);
12500#endif
12501
12502
12503// VK_EXT_direct_mode_display is a preprocessor guard. Do not pass it to API calls.
12504#define VK_EXT_direct_mode_display 1
12505#define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
12506#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
12507typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
12508
12509#ifndef VK_NO_PROTOTYPES
12510VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
12511 VkPhysicalDevice physicalDevice,
12512 VkDisplayKHR display);
12513#endif
12514
12515
12516// VK_EXT_display_surface_counter is a preprocessor guard. Do not pass it to API calls.
12517#define VK_EXT_display_surface_counter 1
12518#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
12519#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
12520
12521typedef enum VkSurfaceCounterFlagBitsEXT {
12522 VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001,
12523 VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
12524 VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
12525} VkSurfaceCounterFlagBitsEXT;
12526typedef VkFlags VkSurfaceCounterFlagsEXT;
12527typedef struct VkSurfaceCapabilities2EXT {
12528 VkStructureType sType;
12529 void* pNext;
12530 uint32_t minImageCount;
12531 uint32_t maxImageCount;
12532 VkExtent2D currentExtent;
12533 VkExtent2D minImageExtent;
12534 VkExtent2D maxImageExtent;
12535 uint32_t maxImageArrayLayers;
12536 VkSurfaceTransformFlagsKHR supportedTransforms;
12537 VkSurfaceTransformFlagBitsKHR currentTransform;
12538 VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
12539 VkImageUsageFlags supportedUsageFlags;
12540 VkSurfaceCounterFlagsEXT supportedSurfaceCounters;
12541} VkSurfaceCapabilities2EXT;
12542
12543typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
12544
12545#ifndef VK_NO_PROTOTYPES
12546VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
12547 VkPhysicalDevice physicalDevice,
12548 VkSurfaceKHR surface,
12549 VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
12550#endif
12551
12552
12553// VK_EXT_display_control is a preprocessor guard. Do not pass it to API calls.
12554#define VK_EXT_display_control 1
12555#define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
12556#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
12557
12558typedef enum VkDisplayPowerStateEXT {
12559 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
12560 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
12561 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
12562 VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
12563} VkDisplayPowerStateEXT;
12564
12565typedef enum VkDeviceEventTypeEXT {
12566 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
12567 VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
12568} VkDeviceEventTypeEXT;
12569
12570typedef enum VkDisplayEventTypeEXT {
12571 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
12572 VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
12573} VkDisplayEventTypeEXT;
12574typedef struct VkDisplayPowerInfoEXT {
12575 VkStructureType sType;
12576 const void* pNext;
12577 VkDisplayPowerStateEXT powerState;
12578} VkDisplayPowerInfoEXT;
12579
12580typedef struct VkDeviceEventInfoEXT {
12581 VkStructureType sType;
12582 const void* pNext;
12583 VkDeviceEventTypeEXT deviceEvent;
12584} VkDeviceEventInfoEXT;
12585
12586typedef struct VkDisplayEventInfoEXT {
12587 VkStructureType sType;
12588 const void* pNext;
12589 VkDisplayEventTypeEXT displayEvent;
12590} VkDisplayEventInfoEXT;
12591
12592typedef struct VkSwapchainCounterCreateInfoEXT {
12593 VkStructureType sType;
12594 const void* pNext;
12595 VkSurfaceCounterFlagsEXT surfaceCounters;
12596} VkSwapchainCounterCreateInfoEXT;
12597
12598typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
12599typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
12600typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
12601typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
12602
12603#ifndef VK_NO_PROTOTYPES
12604VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
12605 VkDevice device,
12606 VkDisplayKHR display,
12607 const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
12608
12609VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
12610 VkDevice device,
12611 const VkDeviceEventInfoEXT* pDeviceEventInfo,
12612 const VkAllocationCallbacks* pAllocator,
12613 VkFence* pFence);
12614
12615VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
12616 VkDevice device,
12617 VkDisplayKHR display,
12618 const VkDisplayEventInfoEXT* pDisplayEventInfo,
12619 const VkAllocationCallbacks* pAllocator,
12620 VkFence* pFence);
12621
12622VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
12623 VkDevice device,
12624 VkSwapchainKHR swapchain,
12625 VkSurfaceCounterFlagBitsEXT counter,
12626 uint64_t* pCounterValue);
12627#endif
12628
12629
12630// VK_GOOGLE_display_timing is a preprocessor guard. Do not pass it to API calls.
12631#define VK_GOOGLE_display_timing 1
12632#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
12633#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
12634typedef struct VkRefreshCycleDurationGOOGLE {
12635 uint64_t refreshDuration;
12636} VkRefreshCycleDurationGOOGLE;
12637
12638typedef struct VkPastPresentationTimingGOOGLE {
12639 uint32_t presentID;
12640 uint64_t desiredPresentTime;
12641 uint64_t actualPresentTime;
12642 uint64_t earliestPresentTime;
12643 uint64_t presentMargin;
12644} VkPastPresentationTimingGOOGLE;
12645
12646typedef struct VkPresentTimeGOOGLE {
12647 uint32_t presentID;
12648 uint64_t desiredPresentTime;
12649} VkPresentTimeGOOGLE;
12650
12651typedef struct VkPresentTimesInfoGOOGLE {
12652 VkStructureType sType;
12653 const void* pNext;
12654 uint32_t swapchainCount;
12655 const VkPresentTimeGOOGLE* pTimes;
12656} VkPresentTimesInfoGOOGLE;
12657
12658typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
12659typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
12660
12661#ifndef VK_NO_PROTOTYPES
12662VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
12663 VkDevice device,
12664 VkSwapchainKHR swapchain,
12665 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
12666
12667VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
12668 VkDevice device,
12669 VkSwapchainKHR swapchain,
12670 uint32_t* pPresentationTimingCount,
12671 VkPastPresentationTimingGOOGLE* pPresentationTimings);
12672#endif
12673
12674
12675// VK_NV_sample_mask_override_coverage is a preprocessor guard. Do not pass it to API calls.
12676#define VK_NV_sample_mask_override_coverage 1
12677#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
12678#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
12679
12680
12681// VK_NV_geometry_shader_passthrough is a preprocessor guard. Do not pass it to API calls.
12682#define VK_NV_geometry_shader_passthrough 1
12683#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
12684#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
12685
12686
12687// VK_NV_viewport_array2 is a preprocessor guard. Do not pass it to API calls.
12688#define VK_NV_viewport_array2 1
12689#define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1
12690#define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
12691#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION
12692#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
12693
12694
12695// VK_NVX_multiview_per_view_attributes is a preprocessor guard. Do not pass it to API calls.
12696#define VK_NVX_multiview_per_view_attributes 1
12697#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
12698#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
12699typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
12700 VkStructureType sType;
12701 void* pNext;
12702 VkBool32 perViewPositionAllComponents;
12703} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
12704
12705
12706
12707// VK_NV_viewport_swizzle is a preprocessor guard. Do not pass it to API calls.
12708#define VK_NV_viewport_swizzle 1
12709#define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
12710#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
12711
12712typedef enum VkViewportCoordinateSwizzleNV {
12713 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
12714 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
12715 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
12716 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
12717 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
12718 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
12719 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
12720 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
12721 VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
12722} VkViewportCoordinateSwizzleNV;
12723typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
12724typedef struct VkViewportSwizzleNV {
12725 VkViewportCoordinateSwizzleNV x;
12726 VkViewportCoordinateSwizzleNV y;
12727 VkViewportCoordinateSwizzleNV z;
12728 VkViewportCoordinateSwizzleNV w;
12729} VkViewportSwizzleNV;
12730
12731typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
12732 VkStructureType sType;
12733 const void* pNext;
12734 VkPipelineViewportSwizzleStateCreateFlagsNV flags;
12735 uint32_t viewportCount;
12736 const VkViewportSwizzleNV* pViewportSwizzles;
12737} VkPipelineViewportSwizzleStateCreateInfoNV;
12738
12739
12740
12741// VK_EXT_discard_rectangles is a preprocessor guard. Do not pass it to API calls.
12742#define VK_EXT_discard_rectangles 1
12743#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 2
12744#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
12745
12746typedef enum VkDiscardRectangleModeEXT {
12747 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
12748 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
12749 VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
12750} VkDiscardRectangleModeEXT;
12751typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
12752typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
12753 VkStructureType sType;
12754 void* pNext;
12755 uint32_t maxDiscardRectangles;
12756} VkPhysicalDeviceDiscardRectanglePropertiesEXT;
12757
12758typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
12759 VkStructureType sType;
12760 const void* pNext;
12761 VkPipelineDiscardRectangleStateCreateFlagsEXT flags;
12762 VkDiscardRectangleModeEXT discardRectangleMode;
12763 uint32_t discardRectangleCount;
12764 const VkRect2D* pDiscardRectangles;
12765} VkPipelineDiscardRectangleStateCreateInfoEXT;
12766
12767typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
12768typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable);
12769typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode);
12770
12771#ifndef VK_NO_PROTOTYPES
12772VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
12773 VkCommandBuffer commandBuffer,
12774 uint32_t firstDiscardRectangle,
12775 uint32_t discardRectangleCount,
12776 const VkRect2D* pDiscardRectangles);
12777
12778VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEnableEXT(
12779 VkCommandBuffer commandBuffer,
12780 VkBool32 discardRectangleEnable);
12781
12782VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleModeEXT(
12783 VkCommandBuffer commandBuffer,
12784 VkDiscardRectangleModeEXT discardRectangleMode);
12785#endif
12786
12787
12788// VK_EXT_conservative_rasterization is a preprocessor guard. Do not pass it to API calls.
12789#define VK_EXT_conservative_rasterization 1
12790#define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
12791#define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
12792
12793typedef enum VkConservativeRasterizationModeEXT {
12794 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
12795 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
12796 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
12797 VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
12798} VkConservativeRasterizationModeEXT;
12799typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
12800typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
12801 VkStructureType sType;
12802 void* pNext;
12803 float primitiveOverestimationSize;
12804 float maxExtraPrimitiveOverestimationSize;
12805 float extraPrimitiveOverestimationSizeGranularity;
12806 VkBool32 primitiveUnderestimation;
12807 VkBool32 conservativePointAndLineRasterization;
12808 VkBool32 degenerateTrianglesRasterized;
12809 VkBool32 degenerateLinesRasterized;
12810 VkBool32 fullyCoveredFragmentShaderInputVariable;
12811 VkBool32 conservativeRasterizationPostDepthCoverage;
12812} VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
12813
12814typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
12815 VkStructureType sType;
12816 const void* pNext;
12817 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags;
12818 VkConservativeRasterizationModeEXT conservativeRasterizationMode;
12819 float extraPrimitiveOverestimationSize;
12820} VkPipelineRasterizationConservativeStateCreateInfoEXT;
12821
12822
12823
12824// VK_EXT_depth_clip_enable is a preprocessor guard. Do not pass it to API calls.
12825#define VK_EXT_depth_clip_enable 1
12826#define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
12827#define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
12828typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
12829typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
12830 VkStructureType sType;
12831 void* pNext;
12832 VkBool32 depthClipEnable;
12833} VkPhysicalDeviceDepthClipEnableFeaturesEXT;
12834
12835typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
12836 VkStructureType sType;
12837 const void* pNext;
12838 VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags;
12839 VkBool32 depthClipEnable;
12840} VkPipelineRasterizationDepthClipStateCreateInfoEXT;
12841
12842
12843
12844// VK_EXT_swapchain_colorspace is a preprocessor guard. Do not pass it to API calls.
12845#define VK_EXT_swapchain_colorspace 1
12846#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4
12847#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
12848
12849
12850// VK_EXT_hdr_metadata is a preprocessor guard. Do not pass it to API calls.
12851#define VK_EXT_hdr_metadata 1
12852#define VK_EXT_HDR_METADATA_SPEC_VERSION 2
12853#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
12854typedef struct VkXYColorEXT {
12855 float x;
12856 float y;
12857} VkXYColorEXT;
12858
12859typedef struct VkHdrMetadataEXT {
12860 VkStructureType sType;
12861 const void* pNext;
12862 VkXYColorEXT displayPrimaryRed;
12863 VkXYColorEXT displayPrimaryGreen;
12864 VkXYColorEXT displayPrimaryBlue;
12865 VkXYColorEXT whitePoint;
12866 float maxLuminance;
12867 float minLuminance;
12868 float maxContentLightLevel;
12869 float maxFrameAverageLightLevel;
12870} VkHdrMetadataEXT;
12871
12872typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
12873
12874#ifndef VK_NO_PROTOTYPES
12875VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
12876 VkDevice device,
12877 uint32_t swapchainCount,
12878 const VkSwapchainKHR* pSwapchains,
12879 const VkHdrMetadataEXT* pMetadata);
12880#endif
12881
12882
12883// VK_IMG_relaxed_line_rasterization is a preprocessor guard. Do not pass it to API calls.
12884#define VK_IMG_relaxed_line_rasterization 1
12885#define VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION 1
12886#define VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME "VK_IMG_relaxed_line_rasterization"
12887typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
12888 VkStructureType sType;
12889 void* pNext;
12890 VkBool32 relaxedLineRasterization;
12891} VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
12892
12893
12894
12895// VK_EXT_external_memory_dma_buf is a preprocessor guard. Do not pass it to API calls.
12896#define VK_EXT_external_memory_dma_buf 1
12897#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
12898#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
12899
12900
12901// VK_EXT_queue_family_foreign is a preprocessor guard. Do not pass it to API calls.
12902#define VK_EXT_queue_family_foreign 1
12903#define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
12904#define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
12905#define VK_QUEUE_FAMILY_FOREIGN_EXT (~2U)
12906
12907
12908// VK_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
12909#define VK_EXT_debug_utils 1
12910VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
12911#define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2
12912#define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
12913typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
12914
12915typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
12916 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
12917 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
12918 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
12919 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
12920 VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
12921} VkDebugUtilsMessageSeverityFlagBitsEXT;
12922
12923typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
12924 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
12925 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
12926 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
12927 VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0x00000008,
12928 VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
12929} VkDebugUtilsMessageTypeFlagBitsEXT;
12930typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
12931typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
12932typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
12933typedef struct VkDebugUtilsLabelEXT {
12934 VkStructureType sType;
12935 const void* pNext;
12936 const char* pLabelName;
12937 float color[4];
12938} VkDebugUtilsLabelEXT;
12939
12940typedef struct VkDebugUtilsObjectNameInfoEXT {
12941 VkStructureType sType;
12942 const void* pNext;
12943 VkObjectType objectType;
12944 uint64_t objectHandle;
12945 const char* pObjectName;
12946} VkDebugUtilsObjectNameInfoEXT;
12947
12948typedef struct VkDebugUtilsMessengerCallbackDataEXT {
12949 VkStructureType sType;
12950 const void* pNext;
12951 VkDebugUtilsMessengerCallbackDataFlagsEXT flags;
12952 const char* pMessageIdName;
12953 int32_t messageIdNumber;
12954 const char* pMessage;
12955 uint32_t queueLabelCount;
12956 const VkDebugUtilsLabelEXT* pQueueLabels;
12957 uint32_t cmdBufLabelCount;
12958 const VkDebugUtilsLabelEXT* pCmdBufLabels;
12959 uint32_t objectCount;
12960 const VkDebugUtilsObjectNameInfoEXT* pObjects;
12961} VkDebugUtilsMessengerCallbackDataEXT;
12962
12963typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
12964 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
12965 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
12966 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
12967 void* pUserData);
12968
12969typedef struct VkDebugUtilsMessengerCreateInfoEXT {
12970 VkStructureType sType;
12971 const void* pNext;
12972 VkDebugUtilsMessengerCreateFlagsEXT flags;
12973 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity;
12974 VkDebugUtilsMessageTypeFlagsEXT messageType;
12975 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
12976 void* pUserData;
12977} VkDebugUtilsMessengerCreateInfoEXT;
12978
12979typedef struct VkDebugUtilsObjectTagInfoEXT {
12980 VkStructureType sType;
12981 const void* pNext;
12982 VkObjectType objectType;
12983 uint64_t objectHandle;
12984 uint64_t tagName;
12985 size_t tagSize;
12986 const void* pTag;
12987} VkDebugUtilsObjectTagInfoEXT;
12988
12989typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
12990typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
12991typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
12992typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
12993typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
12994typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
12995typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
12996typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
12997typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
12998typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
12999typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
13000
13001#ifndef VK_NO_PROTOTYPES
13002VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
13003 VkDevice device,
13004 const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
13005
13006VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
13007 VkDevice device,
13008 const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
13009
13010VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
13011 VkQueue queue,
13012 const VkDebugUtilsLabelEXT* pLabelInfo);
13013
13014VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
13015 VkQueue queue);
13016
13017VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
13018 VkQueue queue,
13019 const VkDebugUtilsLabelEXT* pLabelInfo);
13020
13021VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
13022 VkCommandBuffer commandBuffer,
13023 const VkDebugUtilsLabelEXT* pLabelInfo);
13024
13025VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
13026 VkCommandBuffer commandBuffer);
13027
13028VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
13029 VkCommandBuffer commandBuffer,
13030 const VkDebugUtilsLabelEXT* pLabelInfo);
13031
13032VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
13033 VkInstance instance,
13034 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
13035 const VkAllocationCallbacks* pAllocator,
13036 VkDebugUtilsMessengerEXT* pMessenger);
13037
13038VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
13039 VkInstance instance,
13040 VkDebugUtilsMessengerEXT messenger,
13041 const VkAllocationCallbacks* pAllocator);
13042
13043VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
13044 VkInstance instance,
13045 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
13046 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
13047 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
13048#endif
13049
13050
13051// VK_EXT_sampler_filter_minmax is a preprocessor guard. Do not pass it to API calls.
13052#define VK_EXT_sampler_filter_minmax 1
13053#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
13054#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
13055typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
13056
13057typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
13058
13059typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
13060
13061
13062
13063// VK_AMD_gpu_shader_int16 is a preprocessor guard. Do not pass it to API calls.
13064#define VK_AMD_gpu_shader_int16 1
13065#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
13066#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
13067
13068
13069// VK_AMD_mixed_attachment_samples is a preprocessor guard. Do not pass it to API calls.
13070#define VK_AMD_mixed_attachment_samples 1
13071#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
13072#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
13073
13074
13075// VK_AMD_shader_fragment_mask is a preprocessor guard. Do not pass it to API calls.
13076#define VK_AMD_shader_fragment_mask 1
13077#define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
13078#define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
13079
13080
13081// VK_EXT_inline_uniform_block is a preprocessor guard. Do not pass it to API calls.
13082#define VK_EXT_inline_uniform_block 1
13083#define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
13084#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
13085typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
13086
13087typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
13088
13089typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
13090
13091typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
13092
13093
13094
13095// VK_EXT_shader_stencil_export is a preprocessor guard. Do not pass it to API calls.
13096#define VK_EXT_shader_stencil_export 1
13097#define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
13098#define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
13099
13100
13101// VK_EXT_sample_locations is a preprocessor guard. Do not pass it to API calls.
13102#define VK_EXT_sample_locations 1
13103#define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
13104#define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
13105typedef struct VkSampleLocationEXT {
13106 float x;
13107 float y;
13108} VkSampleLocationEXT;
13109
13110typedef struct VkSampleLocationsInfoEXT {
13111 VkStructureType sType;
13112 const void* pNext;
13113 VkSampleCountFlagBits sampleLocationsPerPixel;
13114 VkExtent2D sampleLocationGridSize;
13115 uint32_t sampleLocationsCount;
13116 const VkSampleLocationEXT* pSampleLocations;
13117} VkSampleLocationsInfoEXT;
13118
13119typedef struct VkAttachmentSampleLocationsEXT {
13120 uint32_t attachmentIndex;
13121 VkSampleLocationsInfoEXT sampleLocationsInfo;
13122} VkAttachmentSampleLocationsEXT;
13123
13124typedef struct VkSubpassSampleLocationsEXT {
13125 uint32_t subpassIndex;
13126 VkSampleLocationsInfoEXT sampleLocationsInfo;
13127} VkSubpassSampleLocationsEXT;
13128
13129typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
13130 VkStructureType sType;
13131 const void* pNext;
13132 uint32_t attachmentInitialSampleLocationsCount;
13133 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
13134 uint32_t postSubpassSampleLocationsCount;
13135 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations;
13136} VkRenderPassSampleLocationsBeginInfoEXT;
13137
13138typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
13139 VkStructureType sType;
13140 const void* pNext;
13141 VkBool32 sampleLocationsEnable;
13142 VkSampleLocationsInfoEXT sampleLocationsInfo;
13143} VkPipelineSampleLocationsStateCreateInfoEXT;
13144
13145typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
13146 VkStructureType sType;
13147 void* pNext;
13148 VkSampleCountFlags sampleLocationSampleCounts;
13149 VkExtent2D maxSampleLocationGridSize;
13150 float sampleLocationCoordinateRange[2];
13151 uint32_t sampleLocationSubPixelBits;
13152 VkBool32 variableSampleLocations;
13153} VkPhysicalDeviceSampleLocationsPropertiesEXT;
13154
13155typedef struct VkMultisamplePropertiesEXT {
13156 VkStructureType sType;
13157 void* pNext;
13158 VkExtent2D maxSampleLocationGridSize;
13159} VkMultisamplePropertiesEXT;
13160
13161typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
13162typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
13163
13164#ifndef VK_NO_PROTOTYPES
13165VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
13166 VkCommandBuffer commandBuffer,
13167 const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
13168
13169VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
13170 VkPhysicalDevice physicalDevice,
13171 VkSampleCountFlagBits samples,
13172 VkMultisamplePropertiesEXT* pMultisampleProperties);
13173#endif
13174
13175
13176// VK_EXT_blend_operation_advanced is a preprocessor guard. Do not pass it to API calls.
13177#define VK_EXT_blend_operation_advanced 1
13178#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
13179#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
13180
13181typedef enum VkBlendOverlapEXT {
13182 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
13183 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
13184 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
13185 VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
13186} VkBlendOverlapEXT;
13187typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
13188 VkStructureType sType;
13189 void* pNext;
13190 VkBool32 advancedBlendCoherentOperations;
13191} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
13192
13193typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
13194 VkStructureType sType;
13195 void* pNext;
13196 uint32_t advancedBlendMaxColorAttachments;
13197 VkBool32 advancedBlendIndependentBlend;
13198 VkBool32 advancedBlendNonPremultipliedSrcColor;
13199 VkBool32 advancedBlendNonPremultipliedDstColor;
13200 VkBool32 advancedBlendCorrelatedOverlap;
13201 VkBool32 advancedBlendAllOperations;
13202} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
13203
13204typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
13205 VkStructureType sType;
13206 const void* pNext;
13207 VkBool32 srcPremultiplied;
13208 VkBool32 dstPremultiplied;
13209 VkBlendOverlapEXT blendOverlap;
13210} VkPipelineColorBlendAdvancedStateCreateInfoEXT;
13211
13212
13213
13214// VK_NV_fragment_coverage_to_color is a preprocessor guard. Do not pass it to API calls.
13215#define VK_NV_fragment_coverage_to_color 1
13216#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
13217#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
13218typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
13219typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
13220 VkStructureType sType;
13221 const void* pNext;
13222 VkPipelineCoverageToColorStateCreateFlagsNV flags;
13223 VkBool32 coverageToColorEnable;
13224 uint32_t coverageToColorLocation;
13225} VkPipelineCoverageToColorStateCreateInfoNV;
13226
13227
13228
13229// VK_NV_framebuffer_mixed_samples is a preprocessor guard. Do not pass it to API calls.
13230#define VK_NV_framebuffer_mixed_samples 1
13231#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
13232#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
13233
13234typedef enum VkCoverageModulationModeNV {
13235 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
13236 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
13237 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
13238 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
13239 VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
13240} VkCoverageModulationModeNV;
13241typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
13242typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
13243 VkStructureType sType;
13244 const void* pNext;
13245 VkPipelineCoverageModulationStateCreateFlagsNV flags;
13246 VkCoverageModulationModeNV coverageModulationMode;
13247 VkBool32 coverageModulationTableEnable;
13248 uint32_t coverageModulationTableCount;
13249 const float* pCoverageModulationTable;
13250} VkPipelineCoverageModulationStateCreateInfoNV;
13251
13252
13253
13254// VK_NV_fill_rectangle is a preprocessor guard. Do not pass it to API calls.
13255#define VK_NV_fill_rectangle 1
13256#define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
13257#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
13258
13259
13260// VK_NV_shader_sm_builtins is a preprocessor guard. Do not pass it to API calls.
13261#define VK_NV_shader_sm_builtins 1
13262#define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
13263#define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
13264typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
13265 VkStructureType sType;
13266 void* pNext;
13267 uint32_t shaderSMCount;
13268 uint32_t shaderWarpsPerSM;
13269} VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
13270
13271typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
13272 VkStructureType sType;
13273 void* pNext;
13274 VkBool32 shaderSMBuiltins;
13275} VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
13276
13277
13278
13279// VK_EXT_post_depth_coverage is a preprocessor guard. Do not pass it to API calls.
13280#define VK_EXT_post_depth_coverage 1
13281#define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
13282#define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
13283
13284
13285// VK_EXT_image_drm_format_modifier is a preprocessor guard. Do not pass it to API calls.
13286#define VK_EXT_image_drm_format_modifier 1
13287#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
13288#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
13289typedef struct VkDrmFormatModifierPropertiesEXT {
13290 uint64_t drmFormatModifier;
13291 uint32_t drmFormatModifierPlaneCount;
13292 VkFormatFeatureFlags drmFormatModifierTilingFeatures;
13293} VkDrmFormatModifierPropertiesEXT;
13294
13295typedef struct VkDrmFormatModifierPropertiesListEXT {
13296 VkStructureType sType;
13297 void* pNext;
13298 uint32_t drmFormatModifierCount;
13299 VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties;
13300} VkDrmFormatModifierPropertiesListEXT;
13301
13302typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
13303 VkStructureType sType;
13304 const void* pNext;
13305 uint64_t drmFormatModifier;
13306 VkSharingMode sharingMode;
13307 uint32_t queueFamilyIndexCount;
13308 const uint32_t* pQueueFamilyIndices;
13309} VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
13310
13311typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
13312 VkStructureType sType;
13313 const void* pNext;
13314 uint32_t drmFormatModifierCount;
13315 const uint64_t* pDrmFormatModifiers;
13316} VkImageDrmFormatModifierListCreateInfoEXT;
13317
13318typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
13319 VkStructureType sType;
13320 const void* pNext;
13321 uint64_t drmFormatModifier;
13322 uint32_t drmFormatModifierPlaneCount;
13323 const VkSubresourceLayout* pPlaneLayouts;
13324} VkImageDrmFormatModifierExplicitCreateInfoEXT;
13325
13326typedef struct VkImageDrmFormatModifierPropertiesEXT {
13327 VkStructureType sType;
13328 void* pNext;
13329 uint64_t drmFormatModifier;
13330} VkImageDrmFormatModifierPropertiesEXT;
13331
13332typedef struct VkDrmFormatModifierProperties2EXT {
13333 uint64_t drmFormatModifier;
13334 uint32_t drmFormatModifierPlaneCount;
13335 VkFormatFeatureFlags2 drmFormatModifierTilingFeatures;
13336} VkDrmFormatModifierProperties2EXT;
13337
13338typedef struct VkDrmFormatModifierPropertiesList2EXT {
13339 VkStructureType sType;
13340 void* pNext;
13341 uint32_t drmFormatModifierCount;
13342 VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties;
13343} VkDrmFormatModifierPropertiesList2EXT;
13344
13345typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
13346
13347#ifndef VK_NO_PROTOTYPES
13348VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
13349 VkDevice device,
13350 VkImage image,
13351 VkImageDrmFormatModifierPropertiesEXT* pProperties);
13352#endif
13353
13354
13355// VK_EXT_validation_cache is a preprocessor guard. Do not pass it to API calls.
13356#define VK_EXT_validation_cache 1
13357VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
13358#define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
13359#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
13360
13361typedef enum VkValidationCacheHeaderVersionEXT {
13362 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
13363 VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
13364} VkValidationCacheHeaderVersionEXT;
13365typedef VkFlags VkValidationCacheCreateFlagsEXT;
13366typedef struct VkValidationCacheCreateInfoEXT {
13367 VkStructureType sType;
13368 const void* pNext;
13369 VkValidationCacheCreateFlagsEXT flags;
13370 size_t initialDataSize;
13371 const void* pInitialData;
13372} VkValidationCacheCreateInfoEXT;
13373
13374typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
13375 VkStructureType sType;
13376 const void* pNext;
13377 VkValidationCacheEXT validationCache;
13378} VkShaderModuleValidationCacheCreateInfoEXT;
13379
13380typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
13381typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
13382typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
13383typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
13384
13385#ifndef VK_NO_PROTOTYPES
13386VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
13387 VkDevice device,
13388 const VkValidationCacheCreateInfoEXT* pCreateInfo,
13389 const VkAllocationCallbacks* pAllocator,
13390 VkValidationCacheEXT* pValidationCache);
13391
13392VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
13393 VkDevice device,
13394 VkValidationCacheEXT validationCache,
13395 const VkAllocationCallbacks* pAllocator);
13396
13397VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
13398 VkDevice device,
13399 VkValidationCacheEXT dstCache,
13400 uint32_t srcCacheCount,
13401 const VkValidationCacheEXT* pSrcCaches);
13402
13403VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
13404 VkDevice device,
13405 VkValidationCacheEXT validationCache,
13406 size_t* pDataSize,
13407 void* pData);
13408#endif
13409
13410
13411// VK_EXT_descriptor_indexing is a preprocessor guard. Do not pass it to API calls.
13412#define VK_EXT_descriptor_indexing 1
13413#define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
13414#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
13415typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
13416
13417typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
13418
13419typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
13420
13421typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
13422
13423typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
13424
13425typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
13426
13427typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
13428
13429
13430
13431// VK_EXT_shader_viewport_index_layer is a preprocessor guard. Do not pass it to API calls.
13432#define VK_EXT_shader_viewport_index_layer 1
13433#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
13434#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
13435
13436
13437// VK_NV_shading_rate_image is a preprocessor guard. Do not pass it to API calls.
13438#define VK_NV_shading_rate_image 1
13439#define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
13440#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
13441
13442typedef enum VkShadingRatePaletteEntryNV {
13443 VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
13444 VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
13445 VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
13446 VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
13447 VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
13448 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
13449 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
13450 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
13451 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
13452 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
13453 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
13454 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
13455 VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
13456} VkShadingRatePaletteEntryNV;
13457
13458typedef enum VkCoarseSampleOrderTypeNV {
13459 VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
13460 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
13461 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
13462 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
13463 VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
13464} VkCoarseSampleOrderTypeNV;
13465typedef struct VkShadingRatePaletteNV {
13466 uint32_t shadingRatePaletteEntryCount;
13467 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries;
13468} VkShadingRatePaletteNV;
13469
13470typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
13471 VkStructureType sType;
13472 const void* pNext;
13473 VkBool32 shadingRateImageEnable;
13474 uint32_t viewportCount;
13475 const VkShadingRatePaletteNV* pShadingRatePalettes;
13476} VkPipelineViewportShadingRateImageStateCreateInfoNV;
13477
13478typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
13479 VkStructureType sType;
13480 void* pNext;
13481 VkBool32 shadingRateImage;
13482 VkBool32 shadingRateCoarseSampleOrder;
13483} VkPhysicalDeviceShadingRateImageFeaturesNV;
13484
13485typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
13486 VkStructureType sType;
13487 void* pNext;
13488 VkExtent2D shadingRateTexelSize;
13489 uint32_t shadingRatePaletteSize;
13490 uint32_t shadingRateMaxCoarseSamples;
13491} VkPhysicalDeviceShadingRateImagePropertiesNV;
13492
13493typedef struct VkCoarseSampleLocationNV {
13494 uint32_t pixelX;
13495 uint32_t pixelY;
13496 uint32_t sample;
13497} VkCoarseSampleLocationNV;
13498
13499typedef struct VkCoarseSampleOrderCustomNV {
13500 VkShadingRatePaletteEntryNV shadingRate;
13501 uint32_t sampleCount;
13502 uint32_t sampleLocationCount;
13503 const VkCoarseSampleLocationNV* pSampleLocations;
13504} VkCoarseSampleOrderCustomNV;
13505
13506typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
13507 VkStructureType sType;
13508 const void* pNext;
13509 VkCoarseSampleOrderTypeNV sampleOrderType;
13510 uint32_t customSampleOrderCount;
13511 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders;
13512} VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
13513
13514typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
13515typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
13516typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
13517
13518#ifndef VK_NO_PROTOTYPES
13519VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
13520 VkCommandBuffer commandBuffer,
13521 VkImageView imageView,
13522 VkImageLayout imageLayout);
13523
13524VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
13525 VkCommandBuffer commandBuffer,
13526 uint32_t firstViewport,
13527 uint32_t viewportCount,
13528 const VkShadingRatePaletteNV* pShadingRatePalettes);
13529
13530VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
13531 VkCommandBuffer commandBuffer,
13532 VkCoarseSampleOrderTypeNV sampleOrderType,
13533 uint32_t customSampleOrderCount,
13534 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
13535#endif
13536
13537
13538// VK_NV_ray_tracing is a preprocessor guard. Do not pass it to API calls.
13539#define VK_NV_ray_tracing 1
13540VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
13541#define VK_NV_RAY_TRACING_SPEC_VERSION 3
13542#define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing"
13543#define VK_SHADER_UNUSED_KHR (~0U)
13544#define VK_SHADER_UNUSED_NV VK_SHADER_UNUSED_KHR
13545
13546typedef enum VkRayTracingShaderGroupTypeKHR {
13547 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
13548 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
13549 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
13550 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
13551 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
13552 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
13553 VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
13554} VkRayTracingShaderGroupTypeKHR;
13555typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
13556
13557
13558typedef enum VkGeometryTypeKHR {
13559 VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
13560 VK_GEOMETRY_TYPE_AABBS_KHR = 1,
13561 VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
13562 VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
13563 VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
13564 VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
13565} VkGeometryTypeKHR;
13566typedef VkGeometryTypeKHR VkGeometryTypeNV;
13567
13568
13569typedef enum VkAccelerationStructureTypeKHR {
13570 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
13571 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
13572 VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2,
13573 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
13574 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
13575 VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
13576} VkAccelerationStructureTypeKHR;
13577typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
13578
13579
13580typedef enum VkCopyAccelerationStructureModeKHR {
13581 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
13582 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
13583 VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
13584 VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
13585 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
13586 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
13587 VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
13588} VkCopyAccelerationStructureModeKHR;
13589typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
13590
13591
13592typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
13593 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
13594 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
13595 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
13596 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
13597} VkAccelerationStructureMemoryRequirementsTypeNV;
13598
13599typedef enum VkGeometryFlagBitsKHR {
13600 VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
13601 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
13602 VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
13603 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
13604 VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13605} VkGeometryFlagBitsKHR;
13606typedef VkFlags VkGeometryFlagsKHR;
13607typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
13608
13609typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
13610
13611
13612typedef enum VkGeometryInstanceFlagBitsKHR {
13613 VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
13614 VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
13615 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
13616 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
13617 VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 0x00000010,
13618 VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000020,
13619 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
13620 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
13621 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
13622 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
13623 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
13624 VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13625} VkGeometryInstanceFlagBitsKHR;
13626typedef VkFlags VkGeometryInstanceFlagsKHR;
13627typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
13628
13629typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
13630
13631
13632typedef enum VkBuildAccelerationStructureFlagBitsKHR {
13633 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
13634 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
13635 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
13636 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
13637 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
13638 VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020,
13639 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 0x00000040,
13640 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 0x00000080,
13641 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 0x00000100,
13642#ifdef VK_ENABLE_BETA_EXTENSIONS
13643 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = 0x00000200,
13644#endif
13645 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = 0x00000800,
13646 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
13647 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
13648 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
13649 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
13650 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
13651 VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13652} VkBuildAccelerationStructureFlagBitsKHR;
13653typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
13654typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
13655
13656typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
13657
13658typedef struct VkRayTracingShaderGroupCreateInfoNV {
13659 VkStructureType sType;
13660 const void* pNext;
13661 VkRayTracingShaderGroupTypeKHR type;
13662 uint32_t generalShader;
13663 uint32_t closestHitShader;
13664 uint32_t anyHitShader;
13665 uint32_t intersectionShader;
13666} VkRayTracingShaderGroupCreateInfoNV;
13667
13668typedef struct VkRayTracingPipelineCreateInfoNV {
13669 VkStructureType sType;
13670 const void* pNext;
13671 VkPipelineCreateFlags flags;
13672 uint32_t stageCount;
13673 const VkPipelineShaderStageCreateInfo* pStages;
13674 uint32_t groupCount;
13675 const VkRayTracingShaderGroupCreateInfoNV* pGroups;
13676 uint32_t maxRecursionDepth;
13677 VkPipelineLayout layout;
13678 VkPipeline basePipelineHandle;
13679 int32_t basePipelineIndex;
13680} VkRayTracingPipelineCreateInfoNV;
13681
13682typedef struct VkGeometryTrianglesNV {
13683 VkStructureType sType;
13684 const void* pNext;
13685 VkBuffer vertexData;
13686 VkDeviceSize vertexOffset;
13687 uint32_t vertexCount;
13688 VkDeviceSize vertexStride;
13689 VkFormat vertexFormat;
13690 VkBuffer indexData;
13691 VkDeviceSize indexOffset;
13692 uint32_t indexCount;
13693 VkIndexType indexType;
13694 VkBuffer transformData;
13695 VkDeviceSize transformOffset;
13696} VkGeometryTrianglesNV;
13697
13698typedef struct VkGeometryAABBNV {
13699 VkStructureType sType;
13700 const void* pNext;
13701 VkBuffer aabbData;
13702 uint32_t numAABBs;
13703 uint32_t stride;
13704 VkDeviceSize offset;
13705} VkGeometryAABBNV;
13706
13707typedef struct VkGeometryDataNV {
13708 VkGeometryTrianglesNV triangles;
13709 VkGeometryAABBNV aabbs;
13710} VkGeometryDataNV;
13711
13712typedef struct VkGeometryNV {
13713 VkStructureType sType;
13714 const void* pNext;
13715 VkGeometryTypeKHR geometryType;
13716 VkGeometryDataNV geometry;
13717 VkGeometryFlagsKHR flags;
13718} VkGeometryNV;
13719
13720typedef struct VkAccelerationStructureInfoNV {
13721 VkStructureType sType;
13722 const void* pNext;
13723 VkAccelerationStructureTypeNV type;
13724 VkBuildAccelerationStructureFlagsNV flags;
13725 uint32_t instanceCount;
13726 uint32_t geometryCount;
13727 const VkGeometryNV* pGeometries;
13728} VkAccelerationStructureInfoNV;
13729
13730typedef struct VkAccelerationStructureCreateInfoNV {
13731 VkStructureType sType;
13732 const void* pNext;
13733 VkDeviceSize compactedSize;
13734 VkAccelerationStructureInfoNV info;
13735} VkAccelerationStructureCreateInfoNV;
13736
13737typedef struct VkBindAccelerationStructureMemoryInfoNV {
13738 VkStructureType sType;
13739 const void* pNext;
13740 VkAccelerationStructureNV accelerationStructure;
13741 VkDeviceMemory memory;
13742 VkDeviceSize memoryOffset;
13743 uint32_t deviceIndexCount;
13744 const uint32_t* pDeviceIndices;
13745} VkBindAccelerationStructureMemoryInfoNV;
13746
13747typedef struct VkWriteDescriptorSetAccelerationStructureNV {
13748 VkStructureType sType;
13749 const void* pNext;
13750 uint32_t accelerationStructureCount;
13751 const VkAccelerationStructureNV* pAccelerationStructures;
13752} VkWriteDescriptorSetAccelerationStructureNV;
13753
13754typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
13755 VkStructureType sType;
13756 const void* pNext;
13757 VkAccelerationStructureMemoryRequirementsTypeNV type;
13758 VkAccelerationStructureNV accelerationStructure;
13759} VkAccelerationStructureMemoryRequirementsInfoNV;
13760
13761typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
13762 VkStructureType sType;
13763 void* pNext;
13764 uint32_t shaderGroupHandleSize;
13765 uint32_t maxRecursionDepth;
13766 uint32_t maxShaderGroupStride;
13767 uint32_t shaderGroupBaseAlignment;
13768 uint64_t maxGeometryCount;
13769 uint64_t maxInstanceCount;
13770 uint64_t maxTriangleCount;
13771 uint32_t maxDescriptorSetAccelerationStructures;
13772} VkPhysicalDeviceRayTracingPropertiesNV;
13773
13774typedef struct VkTransformMatrixKHR {
13775 float matrix[3][4];
13776} VkTransformMatrixKHR;
13777
13778typedef VkTransformMatrixKHR VkTransformMatrixNV;
13779
13780typedef struct VkAabbPositionsKHR {
13781 float minX;
13782 float minY;
13783 float minZ;
13784 float maxX;
13785 float maxY;
13786 float maxZ;
13787} VkAabbPositionsKHR;
13788
13789typedef VkAabbPositionsKHR VkAabbPositionsNV;
13790
13791typedef struct VkAccelerationStructureInstanceKHR {
13792 VkTransformMatrixKHR transform;
13793 uint32_t instanceCustomIndex:24;
13794 uint32_t mask:8;
13795 uint32_t instanceShaderBindingTableRecordOffset:24;
13796 VkGeometryInstanceFlagsKHR flags:8;
13797 uint64_t accelerationStructureReference;
13798} VkAccelerationStructureInstanceKHR;
13799
13800typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
13801
13802typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
13803typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
13804typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
13805typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
13806typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset);
13807typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
13808typedef 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);
13809typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
13810typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
13811typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
13812typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
13813typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
13814typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
13815
13816#ifndef VK_NO_PROTOTYPES
13817VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
13818 VkDevice device,
13819 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
13820 const VkAllocationCallbacks* pAllocator,
13821 VkAccelerationStructureNV* pAccelerationStructure);
13822
13823VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
13824 VkDevice device,
13825 VkAccelerationStructureNV accelerationStructure,
13826 const VkAllocationCallbacks* pAllocator);
13827
13828VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
13829 VkDevice device,
13830 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
13831 VkMemoryRequirements2KHR* pMemoryRequirements);
13832
13833VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
13834 VkDevice device,
13835 uint32_t bindInfoCount,
13836 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
13837
13838VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
13839 VkCommandBuffer commandBuffer,
13840 const VkAccelerationStructureInfoNV* pInfo,
13841 VkBuffer instanceData,
13842 VkDeviceSize instanceOffset,
13843 VkBool32 update,
13844 VkAccelerationStructureNV dst,
13845 VkAccelerationStructureNV src,
13846 VkBuffer scratch,
13847 VkDeviceSize scratchOffset);
13848
13849VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
13850 VkCommandBuffer commandBuffer,
13851 VkAccelerationStructureNV dst,
13852 VkAccelerationStructureNV src,
13853 VkCopyAccelerationStructureModeKHR mode);
13854
13855VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
13856 VkCommandBuffer commandBuffer,
13857 VkBuffer raygenShaderBindingTableBuffer,
13858 VkDeviceSize raygenShaderBindingOffset,
13859 VkBuffer missShaderBindingTableBuffer,
13860 VkDeviceSize missShaderBindingOffset,
13861 VkDeviceSize missShaderBindingStride,
13862 VkBuffer hitShaderBindingTableBuffer,
13863 VkDeviceSize hitShaderBindingOffset,
13864 VkDeviceSize hitShaderBindingStride,
13865 VkBuffer callableShaderBindingTableBuffer,
13866 VkDeviceSize callableShaderBindingOffset,
13867 VkDeviceSize callableShaderBindingStride,
13868 uint32_t width,
13869 uint32_t height,
13870 uint32_t depth);
13871
13872VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
13873 VkDevice device,
13874 VkPipelineCache pipelineCache,
13875 uint32_t createInfoCount,
13876 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
13877 const VkAllocationCallbacks* pAllocator,
13878 VkPipeline* pPipelines);
13879
13880VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
13881 VkDevice device,
13882 VkPipeline pipeline,
13883 uint32_t firstGroup,
13884 uint32_t groupCount,
13885 size_t dataSize,
13886 void* pData);
13887
13888VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
13889 VkDevice device,
13890 VkPipeline pipeline,
13891 uint32_t firstGroup,
13892 uint32_t groupCount,
13893 size_t dataSize,
13894 void* pData);
13895
13896VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
13897 VkDevice device,
13898 VkAccelerationStructureNV accelerationStructure,
13899 size_t dataSize,
13900 void* pData);
13901
13902VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
13903 VkCommandBuffer commandBuffer,
13904 uint32_t accelerationStructureCount,
13905 const VkAccelerationStructureNV* pAccelerationStructures,
13906 VkQueryType queryType,
13907 VkQueryPool queryPool,
13908 uint32_t firstQuery);
13909
13910VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
13911 VkDevice device,
13912 VkPipeline pipeline,
13913 uint32_t shader);
13914#endif
13915
13916
13917// VK_NV_representative_fragment_test is a preprocessor guard. Do not pass it to API calls.
13918#define VK_NV_representative_fragment_test 1
13919#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
13920#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
13921typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
13922 VkStructureType sType;
13923 void* pNext;
13924 VkBool32 representativeFragmentTest;
13925} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
13926
13927typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
13928 VkStructureType sType;
13929 const void* pNext;
13930 VkBool32 representativeFragmentTestEnable;
13931} VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
13932
13933
13934
13935// VK_EXT_filter_cubic is a preprocessor guard. Do not pass it to API calls.
13936#define VK_EXT_filter_cubic 1
13937#define VK_EXT_FILTER_CUBIC_SPEC_VERSION 3
13938#define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
13939typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
13940 VkStructureType sType;
13941 void* pNext;
13942 VkImageViewType imageViewType;
13943} VkPhysicalDeviceImageViewImageFormatInfoEXT;
13944
13945typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
13946 VkStructureType sType;
13947 void* pNext;
13948 VkBool32 filterCubic;
13949 VkBool32 filterCubicMinmax;
13950} VkFilterCubicImageViewImageFormatPropertiesEXT;
13951
13952
13953
13954// VK_QCOM_render_pass_shader_resolve is a preprocessor guard. Do not pass it to API calls.
13955#define VK_QCOM_render_pass_shader_resolve 1
13956#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
13957#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
13958
13959
13960// VK_EXT_global_priority is a preprocessor guard. Do not pass it to API calls.
13961#define VK_EXT_global_priority 1
13962#define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
13963#define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
13964typedef VkQueueGlobalPriorityKHR VkQueueGlobalPriorityEXT;
13965
13966typedef VkDeviceQueueGlobalPriorityCreateInfoKHR VkDeviceQueueGlobalPriorityCreateInfoEXT;
13967
13968
13969
13970// VK_EXT_external_memory_host is a preprocessor guard. Do not pass it to API calls.
13971#define VK_EXT_external_memory_host 1
13972#define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
13973#define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
13974typedef struct VkImportMemoryHostPointerInfoEXT {
13975 VkStructureType sType;
13976 const void* pNext;
13977 VkExternalMemoryHandleTypeFlagBits handleType;
13978 void* pHostPointer;
13979} VkImportMemoryHostPointerInfoEXT;
13980
13981typedef struct VkMemoryHostPointerPropertiesEXT {
13982 VkStructureType sType;
13983 void* pNext;
13984 uint32_t memoryTypeBits;
13985} VkMemoryHostPointerPropertiesEXT;
13986
13987typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
13988 VkStructureType sType;
13989 void* pNext;
13990 VkDeviceSize minImportedHostPointerAlignment;
13991} VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
13992
13993typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
13994
13995#ifndef VK_NO_PROTOTYPES
13996VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
13997 VkDevice device,
13998 VkExternalMemoryHandleTypeFlagBits handleType,
13999 const void* pHostPointer,
14000 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
14001#endif
14002
14003
14004// VK_AMD_buffer_marker is a preprocessor guard. Do not pass it to API calls.
14005#define VK_AMD_buffer_marker 1
14006#define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
14007#define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
14008typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
14009
14010#ifndef VK_NO_PROTOTYPES
14011VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
14012 VkCommandBuffer commandBuffer,
14013 VkPipelineStageFlagBits pipelineStage,
14014 VkBuffer dstBuffer,
14015 VkDeviceSize dstOffset,
14016 uint32_t marker);
14017#endif
14018
14019
14020// VK_AMD_pipeline_compiler_control is a preprocessor guard. Do not pass it to API calls.
14021#define VK_AMD_pipeline_compiler_control 1
14022#define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
14023#define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
14024
14025typedef enum VkPipelineCompilerControlFlagBitsAMD {
14026 VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
14027} VkPipelineCompilerControlFlagBitsAMD;
14028typedef VkFlags VkPipelineCompilerControlFlagsAMD;
14029typedef struct VkPipelineCompilerControlCreateInfoAMD {
14030 VkStructureType sType;
14031 const void* pNext;
14032 VkPipelineCompilerControlFlagsAMD compilerControlFlags;
14033} VkPipelineCompilerControlCreateInfoAMD;
14034
14035
14036
14037// VK_EXT_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
14038#define VK_EXT_calibrated_timestamps 1
14039#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
14040#define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
14041typedef VkTimeDomainKHR VkTimeDomainEXT;
14042
14043typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT;
14044
14045typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
14046typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
14047
14048#ifndef VK_NO_PROTOTYPES
14049VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
14050 VkPhysicalDevice physicalDevice,
14051 uint32_t* pTimeDomainCount,
14052 VkTimeDomainKHR* pTimeDomains);
14053
14054VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
14055 VkDevice device,
14056 uint32_t timestampCount,
14057 const VkCalibratedTimestampInfoKHR* pTimestampInfos,
14058 uint64_t* pTimestamps,
14059 uint64_t* pMaxDeviation);
14060#endif
14061
14062
14063// VK_AMD_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
14064#define VK_AMD_shader_core_properties 1
14065#define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
14066#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
14067typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
14068 VkStructureType sType;
14069 void* pNext;
14070 uint32_t shaderEngineCount;
14071 uint32_t shaderArraysPerEngineCount;
14072 uint32_t computeUnitsPerShaderArray;
14073 uint32_t simdPerComputeUnit;
14074 uint32_t wavefrontsPerSimd;
14075 uint32_t wavefrontSize;
14076 uint32_t sgprsPerSimd;
14077 uint32_t minSgprAllocation;
14078 uint32_t maxSgprAllocation;
14079 uint32_t sgprAllocationGranularity;
14080 uint32_t vgprsPerSimd;
14081 uint32_t minVgprAllocation;
14082 uint32_t maxVgprAllocation;
14083 uint32_t vgprAllocationGranularity;
14084} VkPhysicalDeviceShaderCorePropertiesAMD;
14085
14086
14087
14088// VK_AMD_memory_overallocation_behavior is a preprocessor guard. Do not pass it to API calls.
14089#define VK_AMD_memory_overallocation_behavior 1
14090#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
14091#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
14092
14093typedef enum VkMemoryOverallocationBehaviorAMD {
14094 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
14095 VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
14096 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
14097 VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
14098} VkMemoryOverallocationBehaviorAMD;
14099typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
14100 VkStructureType sType;
14101 const void* pNext;
14102 VkMemoryOverallocationBehaviorAMD overallocationBehavior;
14103} VkDeviceMemoryOverallocationCreateInfoAMD;
14104
14105
14106
14107// VK_EXT_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
14108#define VK_EXT_vertex_attribute_divisor 1
14109#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
14110#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
14111typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
14112 VkStructureType sType;
14113 void* pNext;
14114 uint32_t maxVertexAttribDivisor;
14115} VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
14116
14117typedef VkVertexInputBindingDivisorDescriptionKHR VkVertexInputBindingDivisorDescriptionEXT;
14118
14119typedef VkPipelineVertexInputDivisorStateCreateInfoKHR VkPipelineVertexInputDivisorStateCreateInfoEXT;
14120
14121typedef VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
14122
14123
14124
14125// VK_EXT_pipeline_creation_feedback is a preprocessor guard. Do not pass it to API calls.
14126#define VK_EXT_pipeline_creation_feedback 1
14127#define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
14128#define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
14129typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT;
14130
14131typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
14132
14133typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
14134
14135typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
14136
14137
14138
14139// VK_NV_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
14140#define VK_NV_shader_subgroup_partitioned 1
14141#define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
14142#define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
14143
14144
14145// VK_NV_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
14146#define VK_NV_compute_shader_derivatives 1
14147#define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
14148#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
14149typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
14150 VkStructureType sType;
14151 void* pNext;
14152 VkBool32 computeDerivativeGroupQuads;
14153 VkBool32 computeDerivativeGroupLinear;
14154} VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
14155
14156
14157
14158// VK_NV_mesh_shader is a preprocessor guard. Do not pass it to API calls.
14159#define VK_NV_mesh_shader 1
14160#define VK_NV_MESH_SHADER_SPEC_VERSION 1
14161#define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
14162typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
14163 VkStructureType sType;
14164 void* pNext;
14165 VkBool32 taskShader;
14166 VkBool32 meshShader;
14167} VkPhysicalDeviceMeshShaderFeaturesNV;
14168
14169typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
14170 VkStructureType sType;
14171 void* pNext;
14172 uint32_t maxDrawMeshTasksCount;
14173 uint32_t maxTaskWorkGroupInvocations;
14174 uint32_t maxTaskWorkGroupSize[3];
14175 uint32_t maxTaskTotalMemorySize;
14176 uint32_t maxTaskOutputCount;
14177 uint32_t maxMeshWorkGroupInvocations;
14178 uint32_t maxMeshWorkGroupSize[3];
14179 uint32_t maxMeshTotalMemorySize;
14180 uint32_t maxMeshOutputVertices;
14181 uint32_t maxMeshOutputPrimitives;
14182 uint32_t maxMeshMultiviewViewCount;
14183 uint32_t meshOutputPerVertexGranularity;
14184 uint32_t meshOutputPerPrimitiveGranularity;
14185} VkPhysicalDeviceMeshShaderPropertiesNV;
14186
14187typedef struct VkDrawMeshTasksIndirectCommandNV {
14188 uint32_t taskCount;
14189 uint32_t firstTask;
14190} VkDrawMeshTasksIndirectCommandNV;
14191
14192typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
14193typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
14194typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
14195
14196#ifndef VK_NO_PROTOTYPES
14197VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
14198 VkCommandBuffer commandBuffer,
14199 uint32_t taskCount,
14200 uint32_t firstTask);
14201
14202VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
14203 VkCommandBuffer commandBuffer,
14204 VkBuffer buffer,
14205 VkDeviceSize offset,
14206 uint32_t drawCount,
14207 uint32_t stride);
14208
14209VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
14210 VkCommandBuffer commandBuffer,
14211 VkBuffer buffer,
14212 VkDeviceSize offset,
14213 VkBuffer countBuffer,
14214 VkDeviceSize countBufferOffset,
14215 uint32_t maxDrawCount,
14216 uint32_t stride);
14217#endif
14218
14219
14220// VK_NV_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
14221#define VK_NV_fragment_shader_barycentric 1
14222#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
14223#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
14224typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
14225
14226
14227
14228// VK_NV_shader_image_footprint is a preprocessor guard. Do not pass it to API calls.
14229#define VK_NV_shader_image_footprint 1
14230#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
14231#define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
14232typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
14233 VkStructureType sType;
14234 void* pNext;
14235 VkBool32 imageFootprint;
14236} VkPhysicalDeviceShaderImageFootprintFeaturesNV;
14237
14238
14239
14240// VK_NV_scissor_exclusive is a preprocessor guard. Do not pass it to API calls.
14241#define VK_NV_scissor_exclusive 1
14242#define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 2
14243#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
14244typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
14245 VkStructureType sType;
14246 const void* pNext;
14247 uint32_t exclusiveScissorCount;
14248 const VkRect2D* pExclusiveScissors;
14249} VkPipelineViewportExclusiveScissorStateCreateInfoNV;
14250
14251typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
14252 VkStructureType sType;
14253 void* pNext;
14254 VkBool32 exclusiveScissor;
14255} VkPhysicalDeviceExclusiveScissorFeaturesNV;
14256
14257typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables);
14258typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
14259
14260#ifndef VK_NO_PROTOTYPES
14261VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorEnableNV(
14262 VkCommandBuffer commandBuffer,
14263 uint32_t firstExclusiveScissor,
14264 uint32_t exclusiveScissorCount,
14265 const VkBool32* pExclusiveScissorEnables);
14266
14267VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
14268 VkCommandBuffer commandBuffer,
14269 uint32_t firstExclusiveScissor,
14270 uint32_t exclusiveScissorCount,
14271 const VkRect2D* pExclusiveScissors);
14272#endif
14273
14274
14275// VK_NV_device_diagnostic_checkpoints is a preprocessor guard. Do not pass it to API calls.
14276#define VK_NV_device_diagnostic_checkpoints 1
14277#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
14278#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
14279typedef struct VkQueueFamilyCheckpointPropertiesNV {
14280 VkStructureType sType;
14281 void* pNext;
14282 VkPipelineStageFlags checkpointExecutionStageMask;
14283} VkQueueFamilyCheckpointPropertiesNV;
14284
14285typedef struct VkCheckpointDataNV {
14286 VkStructureType sType;
14287 void* pNext;
14288 VkPipelineStageFlagBits stage;
14289 void* pCheckpointMarker;
14290} VkCheckpointDataNV;
14291
14292typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
14293typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
14294
14295#ifndef VK_NO_PROTOTYPES
14296VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
14297 VkCommandBuffer commandBuffer,
14298 const void* pCheckpointMarker);
14299
14300VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
14301 VkQueue queue,
14302 uint32_t* pCheckpointDataCount,
14303 VkCheckpointDataNV* pCheckpointData);
14304#endif
14305
14306
14307// VK_INTEL_shader_integer_functions2 is a preprocessor guard. Do not pass it to API calls.
14308#define VK_INTEL_shader_integer_functions2 1
14309#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
14310#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
14311typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
14312 VkStructureType sType;
14313 void* pNext;
14314 VkBool32 shaderIntegerFunctions2;
14315} VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
14316
14317
14318
14319// VK_INTEL_performance_query is a preprocessor guard. Do not pass it to API calls.
14320#define VK_INTEL_performance_query 1
14321VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
14322#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
14323#define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
14324
14325typedef enum VkPerformanceConfigurationTypeINTEL {
14326 VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
14327 VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
14328} VkPerformanceConfigurationTypeINTEL;
14329
14330typedef enum VkQueryPoolSamplingModeINTEL {
14331 VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
14332 VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
14333} VkQueryPoolSamplingModeINTEL;
14334
14335typedef enum VkPerformanceOverrideTypeINTEL {
14336 VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
14337 VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
14338 VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
14339} VkPerformanceOverrideTypeINTEL;
14340
14341typedef enum VkPerformanceParameterTypeINTEL {
14342 VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
14343 VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
14344 VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
14345} VkPerformanceParameterTypeINTEL;
14346
14347typedef enum VkPerformanceValueTypeINTEL {
14348 VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
14349 VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
14350 VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
14351 VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
14352 VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
14353 VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
14354} VkPerformanceValueTypeINTEL;
14355typedef union VkPerformanceValueDataINTEL {
14356 uint32_t value32;
14357 uint64_t value64;
14358 float valueFloat;
14359 VkBool32 valueBool;
14360 const char* valueString;
14361} VkPerformanceValueDataINTEL;
14362
14363typedef struct VkPerformanceValueINTEL {
14364 VkPerformanceValueTypeINTEL type;
14365 VkPerformanceValueDataINTEL data;
14366} VkPerformanceValueINTEL;
14367
14368typedef struct VkInitializePerformanceApiInfoINTEL {
14369 VkStructureType sType;
14370 const void* pNext;
14371 void* pUserData;
14372} VkInitializePerformanceApiInfoINTEL;
14373
14374typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
14375 VkStructureType sType;
14376 const void* pNext;
14377 VkQueryPoolSamplingModeINTEL performanceCountersSampling;
14378} VkQueryPoolPerformanceQueryCreateInfoINTEL;
14379
14380typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
14381
14382typedef struct VkPerformanceMarkerInfoINTEL {
14383 VkStructureType sType;
14384 const void* pNext;
14385 uint64_t marker;
14386} VkPerformanceMarkerInfoINTEL;
14387
14388typedef struct VkPerformanceStreamMarkerInfoINTEL {
14389 VkStructureType sType;
14390 const void* pNext;
14391 uint32_t marker;
14392} VkPerformanceStreamMarkerInfoINTEL;
14393
14394typedef struct VkPerformanceOverrideInfoINTEL {
14395 VkStructureType sType;
14396 const void* pNext;
14397 VkPerformanceOverrideTypeINTEL type;
14398 VkBool32 enable;
14399 uint64_t parameter;
14400} VkPerformanceOverrideInfoINTEL;
14401
14402typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
14403 VkStructureType sType;
14404 const void* pNext;
14405 VkPerformanceConfigurationTypeINTEL type;
14406} VkPerformanceConfigurationAcquireInfoINTEL;
14407
14408typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
14409typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
14410typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
14411typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
14412typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
14413typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
14414typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
14415typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
14416typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
14417
14418#ifndef VK_NO_PROTOTYPES
14419VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
14420 VkDevice device,
14421 const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
14422
14423VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
14424 VkDevice device);
14425
14426VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
14427 VkCommandBuffer commandBuffer,
14428 const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
14429
14430VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
14431 VkCommandBuffer commandBuffer,
14432 const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
14433
14434VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
14435 VkCommandBuffer commandBuffer,
14436 const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
14437
14438VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
14439 VkDevice device,
14440 const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
14441 VkPerformanceConfigurationINTEL* pConfiguration);
14442
14443VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
14444 VkDevice device,
14445 VkPerformanceConfigurationINTEL configuration);
14446
14447VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
14448 VkQueue queue,
14449 VkPerformanceConfigurationINTEL configuration);
14450
14451VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
14452 VkDevice device,
14453 VkPerformanceParameterTypeINTEL parameter,
14454 VkPerformanceValueINTEL* pValue);
14455#endif
14456
14457
14458// VK_EXT_pci_bus_info is a preprocessor guard. Do not pass it to API calls.
14459#define VK_EXT_pci_bus_info 1
14460#define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2
14461#define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
14462typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
14463 VkStructureType sType;
14464 void* pNext;
14465 uint32_t pciDomain;
14466 uint32_t pciBus;
14467 uint32_t pciDevice;
14468 uint32_t pciFunction;
14469} VkPhysicalDevicePCIBusInfoPropertiesEXT;
14470
14471
14472
14473// VK_AMD_display_native_hdr is a preprocessor guard. Do not pass it to API calls.
14474#define VK_AMD_display_native_hdr 1
14475#define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
14476#define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
14477typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
14478 VkStructureType sType;
14479 void* pNext;
14480 VkBool32 localDimmingSupport;
14481} VkDisplayNativeHdrSurfaceCapabilitiesAMD;
14482
14483typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
14484 VkStructureType sType;
14485 const void* pNext;
14486 VkBool32 localDimmingEnable;
14487} VkSwapchainDisplayNativeHdrCreateInfoAMD;
14488
14489typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
14490
14491#ifndef VK_NO_PROTOTYPES
14492VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
14493 VkDevice device,
14494 VkSwapchainKHR swapChain,
14495 VkBool32 localDimmingEnable);
14496#endif
14497
14498
14499// VK_EXT_fragment_density_map is a preprocessor guard. Do not pass it to API calls.
14500#define VK_EXT_fragment_density_map 1
14501#define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2
14502#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
14503typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
14504 VkStructureType sType;
14505 void* pNext;
14506 VkBool32 fragmentDensityMap;
14507 VkBool32 fragmentDensityMapDynamic;
14508 VkBool32 fragmentDensityMapNonSubsampledImages;
14509} VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
14510
14511typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
14512 VkStructureType sType;
14513 void* pNext;
14514 VkExtent2D minFragmentDensityTexelSize;
14515 VkExtent2D maxFragmentDensityTexelSize;
14516 VkBool32 fragmentDensityInvocations;
14517} VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
14518
14519typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
14520 VkStructureType sType;
14521 const void* pNext;
14522 VkAttachmentReference fragmentDensityMapAttachment;
14523} VkRenderPassFragmentDensityMapCreateInfoEXT;
14524
14525
14526
14527// VK_EXT_scalar_block_layout is a preprocessor guard. Do not pass it to API calls.
14528#define VK_EXT_scalar_block_layout 1
14529#define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
14530#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
14531typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
14532
14533
14534
14535// VK_GOOGLE_hlsl_functionality1 is a preprocessor guard. Do not pass it to API calls.
14536#define VK_GOOGLE_hlsl_functionality1 1
14537#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
14538#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
14539#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
14540#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
14541
14542
14543// VK_GOOGLE_decorate_string is a preprocessor guard. Do not pass it to API calls.
14544#define VK_GOOGLE_decorate_string 1
14545#define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
14546#define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
14547
14548
14549// VK_EXT_subgroup_size_control is a preprocessor guard. Do not pass it to API calls.
14550#define VK_EXT_subgroup_size_control 1
14551#define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
14552#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
14553typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
14554
14555typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
14556
14557typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
14558
14559
14560
14561// VK_AMD_shader_core_properties2 is a preprocessor guard. Do not pass it to API calls.
14562#define VK_AMD_shader_core_properties2 1
14563#define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
14564#define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
14565
14566typedef enum VkShaderCorePropertiesFlagBitsAMD {
14567 VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
14568} VkShaderCorePropertiesFlagBitsAMD;
14569typedef VkFlags VkShaderCorePropertiesFlagsAMD;
14570typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
14571 VkStructureType sType;
14572 void* pNext;
14573 VkShaderCorePropertiesFlagsAMD shaderCoreFeatures;
14574 uint32_t activeComputeUnitCount;
14575} VkPhysicalDeviceShaderCoreProperties2AMD;
14576
14577
14578
14579// VK_AMD_device_coherent_memory is a preprocessor guard. Do not pass it to API calls.
14580#define VK_AMD_device_coherent_memory 1
14581#define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
14582#define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
14583typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
14584 VkStructureType sType;
14585 void* pNext;
14586 VkBool32 deviceCoherentMemory;
14587} VkPhysicalDeviceCoherentMemoryFeaturesAMD;
14588
14589
14590
14591// VK_EXT_shader_image_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
14592#define VK_EXT_shader_image_atomic_int64 1
14593#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
14594#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
14595typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
14596 VkStructureType sType;
14597 void* pNext;
14598 VkBool32 shaderImageInt64Atomics;
14599 VkBool32 sparseImageInt64Atomics;
14600} VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
14601
14602
14603
14604// VK_EXT_memory_budget is a preprocessor guard. Do not pass it to API calls.
14605#define VK_EXT_memory_budget 1
14606#define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
14607#define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
14608typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
14609 VkStructureType sType;
14610 void* pNext;
14611 VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS];
14612 VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS];
14613} VkPhysicalDeviceMemoryBudgetPropertiesEXT;
14614
14615
14616
14617// VK_EXT_memory_priority is a preprocessor guard. Do not pass it to API calls.
14618#define VK_EXT_memory_priority 1
14619#define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
14620#define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
14621typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
14622 VkStructureType sType;
14623 void* pNext;
14624 VkBool32 memoryPriority;
14625} VkPhysicalDeviceMemoryPriorityFeaturesEXT;
14626
14627typedef struct VkMemoryPriorityAllocateInfoEXT {
14628 VkStructureType sType;
14629 const void* pNext;
14630 float priority;
14631} VkMemoryPriorityAllocateInfoEXT;
14632
14633
14634
14635// VK_NV_dedicated_allocation_image_aliasing is a preprocessor guard. Do not pass it to API calls.
14636#define VK_NV_dedicated_allocation_image_aliasing 1
14637#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
14638#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
14639typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
14640 VkStructureType sType;
14641 void* pNext;
14642 VkBool32 dedicatedAllocationImageAliasing;
14643} VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
14644
14645
14646
14647// VK_EXT_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
14648#define VK_EXT_buffer_device_address 1
14649#define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
14650#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
14651typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
14652 VkStructureType sType;
14653 void* pNext;
14654 VkBool32 bufferDeviceAddress;
14655 VkBool32 bufferDeviceAddressCaptureReplay;
14656 VkBool32 bufferDeviceAddressMultiDevice;
14657} VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
14658
14659typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
14660
14661typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
14662
14663typedef struct VkBufferDeviceAddressCreateInfoEXT {
14664 VkStructureType sType;
14665 const void* pNext;
14666 VkDeviceAddress deviceAddress;
14667} VkBufferDeviceAddressCreateInfoEXT;
14668
14669typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
14670
14671#ifndef VK_NO_PROTOTYPES
14672VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
14673 VkDevice device,
14674 const VkBufferDeviceAddressInfo* pInfo);
14675#endif
14676
14677
14678// VK_EXT_tooling_info is a preprocessor guard. Do not pass it to API calls.
14679#define VK_EXT_tooling_info 1
14680#define VK_EXT_TOOLING_INFO_SPEC_VERSION 1
14681#define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
14682typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT;
14683
14684typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
14685
14686typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
14687
14688typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
14689
14690#ifndef VK_NO_PROTOTYPES
14691VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
14692 VkPhysicalDevice physicalDevice,
14693 uint32_t* pToolCount,
14694 VkPhysicalDeviceToolProperties* pToolProperties);
14695#endif
14696
14697
14698// VK_EXT_separate_stencil_usage is a preprocessor guard. Do not pass it to API calls.
14699#define VK_EXT_separate_stencil_usage 1
14700#define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
14701#define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
14702typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
14703
14704
14705
14706// VK_EXT_validation_features is a preprocessor guard. Do not pass it to API calls.
14707#define VK_EXT_validation_features 1
14708#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 6
14709#define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
14710
14711typedef enum VkValidationFeatureEnableEXT {
14712 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
14713 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
14714 VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
14715 VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
14716 VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
14717 VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
14718} VkValidationFeatureEnableEXT;
14719
14720typedef enum VkValidationFeatureDisableEXT {
14721 VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
14722 VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
14723 VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
14724 VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
14725 VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
14726 VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
14727 VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
14728 VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
14729 VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
14730} VkValidationFeatureDisableEXT;
14731typedef struct VkValidationFeaturesEXT {
14732 VkStructureType sType;
14733 const void* pNext;
14734 uint32_t enabledValidationFeatureCount;
14735 const VkValidationFeatureEnableEXT* pEnabledValidationFeatures;
14736 uint32_t disabledValidationFeatureCount;
14737 const VkValidationFeatureDisableEXT* pDisabledValidationFeatures;
14738} VkValidationFeaturesEXT;
14739
14740
14741
14742// VK_NV_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
14743#define VK_NV_cooperative_matrix 1
14744#define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
14745#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
14746typedef VkComponentTypeKHR VkComponentTypeNV;
14747
14748typedef VkScopeKHR VkScopeNV;
14749
14750typedef struct VkCooperativeMatrixPropertiesNV {
14751 VkStructureType sType;
14752 void* pNext;
14753 uint32_t MSize;
14754 uint32_t NSize;
14755 uint32_t KSize;
14756 VkComponentTypeNV AType;
14757 VkComponentTypeNV BType;
14758 VkComponentTypeNV CType;
14759 VkComponentTypeNV DType;
14760 VkScopeNV scope;
14761} VkCooperativeMatrixPropertiesNV;
14762
14763typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
14764 VkStructureType sType;
14765 void* pNext;
14766 VkBool32 cooperativeMatrix;
14767 VkBool32 cooperativeMatrixRobustBufferAccess;
14768} VkPhysicalDeviceCooperativeMatrixFeaturesNV;
14769
14770typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
14771 VkStructureType sType;
14772 void* pNext;
14773 VkShaderStageFlags cooperativeMatrixSupportedStages;
14774} VkPhysicalDeviceCooperativeMatrixPropertiesNV;
14775
14776typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
14777
14778#ifndef VK_NO_PROTOTYPES
14779VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
14780 VkPhysicalDevice physicalDevice,
14781 uint32_t* pPropertyCount,
14782 VkCooperativeMatrixPropertiesNV* pProperties);
14783#endif
14784
14785
14786// VK_NV_coverage_reduction_mode is a preprocessor guard. Do not pass it to API calls.
14787#define VK_NV_coverage_reduction_mode 1
14788#define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
14789#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
14790
14791typedef enum VkCoverageReductionModeNV {
14792 VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
14793 VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
14794 VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
14795} VkCoverageReductionModeNV;
14796typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
14797typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
14798 VkStructureType sType;
14799 void* pNext;
14800 VkBool32 coverageReductionMode;
14801} VkPhysicalDeviceCoverageReductionModeFeaturesNV;
14802
14803typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
14804 VkStructureType sType;
14805 const void* pNext;
14806 VkPipelineCoverageReductionStateCreateFlagsNV flags;
14807 VkCoverageReductionModeNV coverageReductionMode;
14808} VkPipelineCoverageReductionStateCreateInfoNV;
14809
14810typedef struct VkFramebufferMixedSamplesCombinationNV {
14811 VkStructureType sType;
14812 void* pNext;
14813 VkCoverageReductionModeNV coverageReductionMode;
14814 VkSampleCountFlagBits rasterizationSamples;
14815 VkSampleCountFlags depthStencilSamples;
14816 VkSampleCountFlags colorSamples;
14817} VkFramebufferMixedSamplesCombinationNV;
14818
14819typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
14820
14821#ifndef VK_NO_PROTOTYPES
14822VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
14823 VkPhysicalDevice physicalDevice,
14824 uint32_t* pCombinationCount,
14825 VkFramebufferMixedSamplesCombinationNV* pCombinations);
14826#endif
14827
14828
14829// VK_EXT_fragment_shader_interlock is a preprocessor guard. Do not pass it to API calls.
14830#define VK_EXT_fragment_shader_interlock 1
14831#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
14832#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
14833typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
14834 VkStructureType sType;
14835 void* pNext;
14836 VkBool32 fragmentShaderSampleInterlock;
14837 VkBool32 fragmentShaderPixelInterlock;
14838 VkBool32 fragmentShaderShadingRateInterlock;
14839} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
14840
14841
14842
14843// VK_EXT_ycbcr_image_arrays is a preprocessor guard. Do not pass it to API calls.
14844#define VK_EXT_ycbcr_image_arrays 1
14845#define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
14846#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
14847typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
14848 VkStructureType sType;
14849 void* pNext;
14850 VkBool32 ycbcrImageArrays;
14851} VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
14852
14853
14854
14855// VK_EXT_provoking_vertex is a preprocessor guard. Do not pass it to API calls.
14856#define VK_EXT_provoking_vertex 1
14857#define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
14858#define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
14859
14860typedef enum VkProvokingVertexModeEXT {
14861 VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0,
14862 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1,
14863 VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
14864} VkProvokingVertexModeEXT;
14865typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT {
14866 VkStructureType sType;
14867 void* pNext;
14868 VkBool32 provokingVertexLast;
14869 VkBool32 transformFeedbackPreservesProvokingVertex;
14870} VkPhysicalDeviceProvokingVertexFeaturesEXT;
14871
14872typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT {
14873 VkStructureType sType;
14874 void* pNext;
14875 VkBool32 provokingVertexModePerPipeline;
14876 VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex;
14877} VkPhysicalDeviceProvokingVertexPropertiesEXT;
14878
14879typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
14880 VkStructureType sType;
14881 const void* pNext;
14882 VkProvokingVertexModeEXT provokingVertexMode;
14883} VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
14884
14885
14886
14887// VK_EXT_headless_surface is a preprocessor guard. Do not pass it to API calls.
14888#define VK_EXT_headless_surface 1
14889#define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
14890#define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
14891typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
14892typedef struct VkHeadlessSurfaceCreateInfoEXT {
14893 VkStructureType sType;
14894 const void* pNext;
14895 VkHeadlessSurfaceCreateFlagsEXT flags;
14896} VkHeadlessSurfaceCreateInfoEXT;
14897
14898typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
14899
14900#ifndef VK_NO_PROTOTYPES
14901VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
14902 VkInstance instance,
14903 const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo,
14904 const VkAllocationCallbacks* pAllocator,
14905 VkSurfaceKHR* pSurface);
14906#endif
14907
14908
14909// VK_EXT_line_rasterization is a preprocessor guard. Do not pass it to API calls.
14910#define VK_EXT_line_rasterization 1
14911#define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
14912#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
14913typedef VkLineRasterizationModeKHR VkLineRasterizationModeEXT;
14914
14915typedef VkPhysicalDeviceLineRasterizationFeaturesKHR VkPhysicalDeviceLineRasterizationFeaturesEXT;
14916
14917typedef VkPhysicalDeviceLineRasterizationPropertiesKHR VkPhysicalDeviceLineRasterizationPropertiesEXT;
14918
14919typedef VkPipelineRasterizationLineStateCreateInfoKHR VkPipelineRasterizationLineStateCreateInfoEXT;
14920
14921typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
14922
14923#ifndef VK_NO_PROTOTYPES
14924VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
14925 VkCommandBuffer commandBuffer,
14926 uint32_t lineStippleFactor,
14927 uint16_t lineStipplePattern);
14928#endif
14929
14930
14931// VK_EXT_shader_atomic_float is a preprocessor guard. Do not pass it to API calls.
14932#define VK_EXT_shader_atomic_float 1
14933#define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
14934#define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
14935typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
14936 VkStructureType sType;
14937 void* pNext;
14938 VkBool32 shaderBufferFloat32Atomics;
14939 VkBool32 shaderBufferFloat32AtomicAdd;
14940 VkBool32 shaderBufferFloat64Atomics;
14941 VkBool32 shaderBufferFloat64AtomicAdd;
14942 VkBool32 shaderSharedFloat32Atomics;
14943 VkBool32 shaderSharedFloat32AtomicAdd;
14944 VkBool32 shaderSharedFloat64Atomics;
14945 VkBool32 shaderSharedFloat64AtomicAdd;
14946 VkBool32 shaderImageFloat32Atomics;
14947 VkBool32 shaderImageFloat32AtomicAdd;
14948 VkBool32 sparseImageFloat32Atomics;
14949 VkBool32 sparseImageFloat32AtomicAdd;
14950} VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
14951
14952
14953
14954// VK_EXT_host_query_reset is a preprocessor guard. Do not pass it to API calls.
14955#define VK_EXT_host_query_reset 1
14956#define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
14957#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
14958typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
14959
14960typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
14961
14962#ifndef VK_NO_PROTOTYPES
14963VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
14964 VkDevice device,
14965 VkQueryPool queryPool,
14966 uint32_t firstQuery,
14967 uint32_t queryCount);
14968#endif
14969
14970
14971// VK_EXT_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
14972#define VK_EXT_index_type_uint8 1
14973#define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
14974#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
14975typedef VkPhysicalDeviceIndexTypeUint8FeaturesKHR VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
14976
14977
14978
14979// VK_EXT_extended_dynamic_state is a preprocessor guard. Do not pass it to API calls.
14980#define VK_EXT_extended_dynamic_state 1
14981#define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
14982#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
14983typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
14984 VkStructureType sType;
14985 void* pNext;
14986 VkBool32 extendedDynamicState;
14987} VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
14988
14989typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
14990typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
14991typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
14992typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
14993typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
14994typedef 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);
14995typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
14996typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
14997typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
14998typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
14999typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
15000typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
15001
15002#ifndef VK_NO_PROTOTYPES
15003VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
15004 VkCommandBuffer commandBuffer,
15005 VkCullModeFlags cullMode);
15006
15007VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
15008 VkCommandBuffer commandBuffer,
15009 VkFrontFace frontFace);
15010
15011VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
15012 VkCommandBuffer commandBuffer,
15013 VkPrimitiveTopology primitiveTopology);
15014
15015VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
15016 VkCommandBuffer commandBuffer,
15017 uint32_t viewportCount,
15018 const VkViewport* pViewports);
15019
15020VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
15021 VkCommandBuffer commandBuffer,
15022 uint32_t scissorCount,
15023 const VkRect2D* pScissors);
15024
15025VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
15026 VkCommandBuffer commandBuffer,
15027 uint32_t firstBinding,
15028 uint32_t bindingCount,
15029 const VkBuffer* pBuffers,
15030 const VkDeviceSize* pOffsets,
15031 const VkDeviceSize* pSizes,
15032 const VkDeviceSize* pStrides);
15033
15034VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
15035 VkCommandBuffer commandBuffer,
15036 VkBool32 depthTestEnable);
15037
15038VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
15039 VkCommandBuffer commandBuffer,
15040 VkBool32 depthWriteEnable);
15041
15042VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
15043 VkCommandBuffer commandBuffer,
15044 VkCompareOp depthCompareOp);
15045
15046VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
15047 VkCommandBuffer commandBuffer,
15048 VkBool32 depthBoundsTestEnable);
15049
15050VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
15051 VkCommandBuffer commandBuffer,
15052 VkBool32 stencilTestEnable);
15053
15054VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
15055 VkCommandBuffer commandBuffer,
15056 VkStencilFaceFlags faceMask,
15057 VkStencilOp failOp,
15058 VkStencilOp passOp,
15059 VkStencilOp depthFailOp,
15060 VkCompareOp compareOp);
15061#endif
15062
15063
15064// VK_EXT_host_image_copy is a preprocessor guard. Do not pass it to API calls.
15065#define VK_EXT_host_image_copy 1
15066#define VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION 1
15067#define VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME "VK_EXT_host_image_copy"
15068
15069typedef enum VkHostImageCopyFlagBitsEXT {
15070 VK_HOST_IMAGE_COPY_MEMCPY_EXT = 0x00000001,
15071 VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15072} VkHostImageCopyFlagBitsEXT;
15073typedef VkFlags VkHostImageCopyFlagsEXT;
15074typedef struct VkPhysicalDeviceHostImageCopyFeaturesEXT {
15075 VkStructureType sType;
15076 void* pNext;
15077 VkBool32 hostImageCopy;
15078} VkPhysicalDeviceHostImageCopyFeaturesEXT;
15079
15080typedef struct VkPhysicalDeviceHostImageCopyPropertiesEXT {
15081 VkStructureType sType;
15082 void* pNext;
15083 uint32_t copySrcLayoutCount;
15084 VkImageLayout* pCopySrcLayouts;
15085 uint32_t copyDstLayoutCount;
15086 VkImageLayout* pCopyDstLayouts;
15087 uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE];
15088 VkBool32 identicalMemoryTypeRequirements;
15089} VkPhysicalDeviceHostImageCopyPropertiesEXT;
15090
15091typedef struct VkMemoryToImageCopyEXT {
15092 VkStructureType sType;
15093 const void* pNext;
15094 const void* pHostPointer;
15095 uint32_t memoryRowLength;
15096 uint32_t memoryImageHeight;
15097 VkImageSubresourceLayers imageSubresource;
15098 VkOffset3D imageOffset;
15099 VkExtent3D imageExtent;
15100} VkMemoryToImageCopyEXT;
15101
15102typedef struct VkImageToMemoryCopyEXT {
15103 VkStructureType sType;
15104 const void* pNext;
15105 void* pHostPointer;
15106 uint32_t memoryRowLength;
15107 uint32_t memoryImageHeight;
15108 VkImageSubresourceLayers imageSubresource;
15109 VkOffset3D imageOffset;
15110 VkExtent3D imageExtent;
15111} VkImageToMemoryCopyEXT;
15112
15113typedef struct VkCopyMemoryToImageInfoEXT {
15114 VkStructureType sType;
15115 const void* pNext;
15116 VkHostImageCopyFlagsEXT flags;
15117 VkImage dstImage;
15118 VkImageLayout dstImageLayout;
15119 uint32_t regionCount;
15120 const VkMemoryToImageCopyEXT* pRegions;
15121} VkCopyMemoryToImageInfoEXT;
15122
15123typedef struct VkCopyImageToMemoryInfoEXT {
15124 VkStructureType sType;
15125 const void* pNext;
15126 VkHostImageCopyFlagsEXT flags;
15127 VkImage srcImage;
15128 VkImageLayout srcImageLayout;
15129 uint32_t regionCount;
15130 const VkImageToMemoryCopyEXT* pRegions;
15131} VkCopyImageToMemoryInfoEXT;
15132
15133typedef struct VkCopyImageToImageInfoEXT {
15134 VkStructureType sType;
15135 const void* pNext;
15136 VkHostImageCopyFlagsEXT flags;
15137 VkImage srcImage;
15138 VkImageLayout srcImageLayout;
15139 VkImage dstImage;
15140 VkImageLayout dstImageLayout;
15141 uint32_t regionCount;
15142 const VkImageCopy2* pRegions;
15143} VkCopyImageToImageInfoEXT;
15144
15145typedef struct VkHostImageLayoutTransitionInfoEXT {
15146 VkStructureType sType;
15147 const void* pNext;
15148 VkImage image;
15149 VkImageLayout oldLayout;
15150 VkImageLayout newLayout;
15151 VkImageSubresourceRange subresourceRange;
15152} VkHostImageLayoutTransitionInfoEXT;
15153
15154typedef struct VkSubresourceHostMemcpySizeEXT {
15155 VkStructureType sType;
15156 void* pNext;
15157 VkDeviceSize size;
15158} VkSubresourceHostMemcpySizeEXT;
15159
15160typedef struct VkHostImageCopyDevicePerformanceQueryEXT {
15161 VkStructureType sType;
15162 void* pNext;
15163 VkBool32 optimalDeviceAccess;
15164 VkBool32 identicalMemoryLayout;
15165} VkHostImageCopyDevicePerformanceQueryEXT;
15166
15167typedef VkSubresourceLayout2KHR VkSubresourceLayout2EXT;
15168
15169typedef VkImageSubresource2KHR VkImageSubresource2EXT;
15170
15171typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImageEXT)(VkDevice device, const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo);
15172typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemoryEXT)(VkDevice device, const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo);
15173typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImageEXT)(VkDevice device, const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo);
15174typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayoutEXT)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfoEXT* pTransitions);
15175typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2KHR* pSubresource, VkSubresourceLayout2KHR* pLayout);
15176
15177#ifndef VK_NO_PROTOTYPES
15178VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImageEXT(
15179 VkDevice device,
15180 const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo);
15181
15182VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemoryEXT(
15183 VkDevice device,
15184 const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo);
15185
15186VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImageEXT(
15187 VkDevice device,
15188 const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo);
15189
15190VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayoutEXT(
15191 VkDevice device,
15192 uint32_t transitionCount,
15193 const VkHostImageLayoutTransitionInfoEXT* pTransitions);
15194
15195VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
15196 VkDevice device,
15197 VkImage image,
15198 const VkImageSubresource2KHR* pSubresource,
15199 VkSubresourceLayout2KHR* pLayout);
15200#endif
15201
15202
15203// VK_EXT_map_memory_placed is a preprocessor guard. Do not pass it to API calls.
15204#define VK_EXT_map_memory_placed 1
15205#define VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION 1
15206#define VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME "VK_EXT_map_memory_placed"
15207typedef struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT {
15208 VkStructureType sType;
15209 void* pNext;
15210 VkBool32 memoryMapPlaced;
15211 VkBool32 memoryMapRangePlaced;
15212 VkBool32 memoryUnmapReserve;
15213} VkPhysicalDeviceMapMemoryPlacedFeaturesEXT;
15214
15215typedef struct VkPhysicalDeviceMapMemoryPlacedPropertiesEXT {
15216 VkStructureType sType;
15217 void* pNext;
15218 VkDeviceSize minPlacedMemoryMapAlignment;
15219} VkPhysicalDeviceMapMemoryPlacedPropertiesEXT;
15220
15221typedef struct VkMemoryMapPlacedInfoEXT {
15222 VkStructureType sType;
15223 const void* pNext;
15224 void* pPlacedAddress;
15225} VkMemoryMapPlacedInfoEXT;
15226
15227
15228
15229// VK_EXT_shader_atomic_float2 is a preprocessor guard. Do not pass it to API calls.
15230#define VK_EXT_shader_atomic_float2 1
15231#define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
15232#define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
15233typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
15234 VkStructureType sType;
15235 void* pNext;
15236 VkBool32 shaderBufferFloat16Atomics;
15237 VkBool32 shaderBufferFloat16AtomicAdd;
15238 VkBool32 shaderBufferFloat16AtomicMinMax;
15239 VkBool32 shaderBufferFloat32AtomicMinMax;
15240 VkBool32 shaderBufferFloat64AtomicMinMax;
15241 VkBool32 shaderSharedFloat16Atomics;
15242 VkBool32 shaderSharedFloat16AtomicAdd;
15243 VkBool32 shaderSharedFloat16AtomicMinMax;
15244 VkBool32 shaderSharedFloat32AtomicMinMax;
15245 VkBool32 shaderSharedFloat64AtomicMinMax;
15246 VkBool32 shaderImageFloat32AtomicMinMax;
15247 VkBool32 sparseImageFloat32AtomicMinMax;
15248} VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
15249
15250
15251
15252// VK_EXT_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
15253#define VK_EXT_surface_maintenance1 1
15254#define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
15255#define VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_surface_maintenance1"
15256
15257typedef enum VkPresentScalingFlagBitsEXT {
15258 VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 0x00000001,
15259 VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 0x00000002,
15260 VK_PRESENT_SCALING_STRETCH_BIT_EXT = 0x00000004,
15261 VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15262} VkPresentScalingFlagBitsEXT;
15263typedef VkFlags VkPresentScalingFlagsEXT;
15264
15265typedef enum VkPresentGravityFlagBitsEXT {
15266 VK_PRESENT_GRAVITY_MIN_BIT_EXT = 0x00000001,
15267 VK_PRESENT_GRAVITY_MAX_BIT_EXT = 0x00000002,
15268 VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 0x00000004,
15269 VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15270} VkPresentGravityFlagBitsEXT;
15271typedef VkFlags VkPresentGravityFlagsEXT;
15272typedef struct VkSurfacePresentModeEXT {
15273 VkStructureType sType;
15274 void* pNext;
15275 VkPresentModeKHR presentMode;
15276} VkSurfacePresentModeEXT;
15277
15278typedef struct VkSurfacePresentScalingCapabilitiesEXT {
15279 VkStructureType sType;
15280 void* pNext;
15281 VkPresentScalingFlagsEXT supportedPresentScaling;
15282 VkPresentGravityFlagsEXT supportedPresentGravityX;
15283 VkPresentGravityFlagsEXT supportedPresentGravityY;
15284 VkExtent2D minScaledImageExtent;
15285 VkExtent2D maxScaledImageExtent;
15286} VkSurfacePresentScalingCapabilitiesEXT;
15287
15288typedef struct VkSurfacePresentModeCompatibilityEXT {
15289 VkStructureType sType;
15290 void* pNext;
15291 uint32_t presentModeCount;
15292 VkPresentModeKHR* pPresentModes;
15293} VkSurfacePresentModeCompatibilityEXT;
15294
15295
15296
15297// VK_EXT_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
15298#define VK_EXT_swapchain_maintenance1 1
15299#define VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
15300#define VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_swapchain_maintenance1"
15301typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT {
15302 VkStructureType sType;
15303 void* pNext;
15304 VkBool32 swapchainMaintenance1;
15305} VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT;
15306
15307typedef struct VkSwapchainPresentFenceInfoEXT {
15308 VkStructureType sType;
15309 const void* pNext;
15310 uint32_t swapchainCount;
15311 const VkFence* pFences;
15312} VkSwapchainPresentFenceInfoEXT;
15313
15314typedef struct VkSwapchainPresentModesCreateInfoEXT {
15315 VkStructureType sType;
15316 const void* pNext;
15317 uint32_t presentModeCount;
15318 const VkPresentModeKHR* pPresentModes;
15319} VkSwapchainPresentModesCreateInfoEXT;
15320
15321typedef struct VkSwapchainPresentModeInfoEXT {
15322 VkStructureType sType;
15323 const void* pNext;
15324 uint32_t swapchainCount;
15325 const VkPresentModeKHR* pPresentModes;
15326} VkSwapchainPresentModeInfoEXT;
15327
15328typedef struct VkSwapchainPresentScalingCreateInfoEXT {
15329 VkStructureType sType;
15330 const void* pNext;
15331 VkPresentScalingFlagsEXT scalingBehavior;
15332 VkPresentGravityFlagsEXT presentGravityX;
15333 VkPresentGravityFlagsEXT presentGravityY;
15334} VkSwapchainPresentScalingCreateInfoEXT;
15335
15336typedef struct VkReleaseSwapchainImagesInfoEXT {
15337 VkStructureType sType;
15338 const void* pNext;
15339 VkSwapchainKHR swapchain;
15340 uint32_t imageIndexCount;
15341 const uint32_t* pImageIndices;
15342} VkReleaseSwapchainImagesInfoEXT;
15343
15344typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesEXT)(VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo);
15345
15346#ifndef VK_NO_PROTOTYPES
15347VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesEXT(
15348 VkDevice device,
15349 const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo);
15350#endif
15351
15352
15353// VK_EXT_shader_demote_to_helper_invocation is a preprocessor guard. Do not pass it to API calls.
15354#define VK_EXT_shader_demote_to_helper_invocation 1
15355#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
15356#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
15357typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
15358
15359
15360
15361// VK_NV_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
15362#define VK_NV_device_generated_commands 1
15363VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
15364#define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
15365#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
15366
15367typedef enum VkIndirectCommandsTokenTypeNV {
15368 VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
15369 VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
15370 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
15371 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
15372 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
15373 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
15374 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
15375 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
15376 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000,
15377 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = 1000428003,
15378 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = 1000428004,
15379 VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
15380} VkIndirectCommandsTokenTypeNV;
15381
15382typedef enum VkIndirectStateFlagBitsNV {
15383 VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
15384 VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
15385} VkIndirectStateFlagBitsNV;
15386typedef VkFlags VkIndirectStateFlagsNV;
15387
15388typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
15389 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
15390 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
15391 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
15392 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
15393} VkIndirectCommandsLayoutUsageFlagBitsNV;
15394typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
15395typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
15396 VkStructureType sType;
15397 void* pNext;
15398 uint32_t maxGraphicsShaderGroupCount;
15399 uint32_t maxIndirectSequenceCount;
15400 uint32_t maxIndirectCommandsTokenCount;
15401 uint32_t maxIndirectCommandsStreamCount;
15402 uint32_t maxIndirectCommandsTokenOffset;
15403 uint32_t maxIndirectCommandsStreamStride;
15404 uint32_t minSequencesCountBufferOffsetAlignment;
15405 uint32_t minSequencesIndexBufferOffsetAlignment;
15406 uint32_t minIndirectCommandsBufferOffsetAlignment;
15407} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
15408
15409typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
15410 VkStructureType sType;
15411 void* pNext;
15412 VkBool32 deviceGeneratedCommands;
15413} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
15414
15415typedef struct VkGraphicsShaderGroupCreateInfoNV {
15416 VkStructureType sType;
15417 const void* pNext;
15418 uint32_t stageCount;
15419 const VkPipelineShaderStageCreateInfo* pStages;
15420 const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
15421 const VkPipelineTessellationStateCreateInfo* pTessellationState;
15422} VkGraphicsShaderGroupCreateInfoNV;
15423
15424typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
15425 VkStructureType sType;
15426 const void* pNext;
15427 uint32_t groupCount;
15428 const VkGraphicsShaderGroupCreateInfoNV* pGroups;
15429 uint32_t pipelineCount;
15430 const VkPipeline* pPipelines;
15431} VkGraphicsPipelineShaderGroupsCreateInfoNV;
15432
15433typedef struct VkBindShaderGroupIndirectCommandNV {
15434 uint32_t groupIndex;
15435} VkBindShaderGroupIndirectCommandNV;
15436
15437typedef struct VkBindIndexBufferIndirectCommandNV {
15438 VkDeviceAddress bufferAddress;
15439 uint32_t size;
15440 VkIndexType indexType;
15441} VkBindIndexBufferIndirectCommandNV;
15442
15443typedef struct VkBindVertexBufferIndirectCommandNV {
15444 VkDeviceAddress bufferAddress;
15445 uint32_t size;
15446 uint32_t stride;
15447} VkBindVertexBufferIndirectCommandNV;
15448
15449typedef struct VkSetStateFlagsIndirectCommandNV {
15450 uint32_t data;
15451} VkSetStateFlagsIndirectCommandNV;
15452
15453typedef struct VkIndirectCommandsStreamNV {
15454 VkBuffer buffer;
15455 VkDeviceSize offset;
15456} VkIndirectCommandsStreamNV;
15457
15458typedef struct VkIndirectCommandsLayoutTokenNV {
15459 VkStructureType sType;
15460 const void* pNext;
15461 VkIndirectCommandsTokenTypeNV tokenType;
15462 uint32_t stream;
15463 uint32_t offset;
15464 uint32_t vertexBindingUnit;
15465 VkBool32 vertexDynamicStride;
15466 VkPipelineLayout pushconstantPipelineLayout;
15467 VkShaderStageFlags pushconstantShaderStageFlags;
15468 uint32_t pushconstantOffset;
15469 uint32_t pushconstantSize;
15470 VkIndirectStateFlagsNV indirectStateFlags;
15471 uint32_t indexTypeCount;
15472 const VkIndexType* pIndexTypes;
15473 const uint32_t* pIndexTypeValues;
15474} VkIndirectCommandsLayoutTokenNV;
15475
15476typedef struct VkIndirectCommandsLayoutCreateInfoNV {
15477 VkStructureType sType;
15478 const void* pNext;
15479 VkIndirectCommandsLayoutUsageFlagsNV flags;
15480 VkPipelineBindPoint pipelineBindPoint;
15481 uint32_t tokenCount;
15482 const VkIndirectCommandsLayoutTokenNV* pTokens;
15483 uint32_t streamCount;
15484 const uint32_t* pStreamStrides;
15485} VkIndirectCommandsLayoutCreateInfoNV;
15486
15487typedef struct VkGeneratedCommandsInfoNV {
15488 VkStructureType sType;
15489 const void* pNext;
15490 VkPipelineBindPoint pipelineBindPoint;
15491 VkPipeline pipeline;
15492 VkIndirectCommandsLayoutNV indirectCommandsLayout;
15493 uint32_t streamCount;
15494 const VkIndirectCommandsStreamNV* pStreams;
15495 uint32_t sequencesCount;
15496 VkBuffer preprocessBuffer;
15497 VkDeviceSize preprocessOffset;
15498 VkDeviceSize preprocessSize;
15499 VkBuffer sequencesCountBuffer;
15500 VkDeviceSize sequencesCountOffset;
15501 VkBuffer sequencesIndexBuffer;
15502 VkDeviceSize sequencesIndexOffset;
15503} VkGeneratedCommandsInfoNV;
15504
15505typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
15506 VkStructureType sType;
15507 const void* pNext;
15508 VkPipelineBindPoint pipelineBindPoint;
15509 VkPipeline pipeline;
15510 VkIndirectCommandsLayoutNV indirectCommandsLayout;
15511 uint32_t maxSequencesCount;
15512} VkGeneratedCommandsMemoryRequirementsInfoNV;
15513
15514typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
15515typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
15516typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
15517typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
15518typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
15519typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
15520
15521#ifndef VK_NO_PROTOTYPES
15522VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
15523 VkDevice device,
15524 const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
15525 VkMemoryRequirements2* pMemoryRequirements);
15526
15527VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
15528 VkCommandBuffer commandBuffer,
15529 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
15530
15531VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
15532 VkCommandBuffer commandBuffer,
15533 VkBool32 isPreprocessed,
15534 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
15535
15536VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
15537 VkCommandBuffer commandBuffer,
15538 VkPipelineBindPoint pipelineBindPoint,
15539 VkPipeline pipeline,
15540 uint32_t groupIndex);
15541
15542VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
15543 VkDevice device,
15544 const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
15545 const VkAllocationCallbacks* pAllocator,
15546 VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
15547
15548VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
15549 VkDevice device,
15550 VkIndirectCommandsLayoutNV indirectCommandsLayout,
15551 const VkAllocationCallbacks* pAllocator);
15552#endif
15553
15554
15555// VK_NV_inherited_viewport_scissor is a preprocessor guard. Do not pass it to API calls.
15556#define VK_NV_inherited_viewport_scissor 1
15557#define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
15558#define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
15559typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV {
15560 VkStructureType sType;
15561 void* pNext;
15562 VkBool32 inheritedViewportScissor2D;
15563} VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
15564
15565typedef struct VkCommandBufferInheritanceViewportScissorInfoNV {
15566 VkStructureType sType;
15567 const void* pNext;
15568 VkBool32 viewportScissor2D;
15569 uint32_t viewportDepthCount;
15570 const VkViewport* pViewportDepths;
15571} VkCommandBufferInheritanceViewportScissorInfoNV;
15572
15573
15574
15575// VK_EXT_texel_buffer_alignment is a preprocessor guard. Do not pass it to API calls.
15576#define VK_EXT_texel_buffer_alignment 1
15577#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
15578#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
15579typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
15580 VkStructureType sType;
15581 void* pNext;
15582 VkBool32 texelBufferAlignment;
15583} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
15584
15585typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
15586
15587
15588
15589// VK_QCOM_render_pass_transform is a preprocessor guard. Do not pass it to API calls.
15590#define VK_QCOM_render_pass_transform 1
15591#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 4
15592#define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
15593typedef struct VkRenderPassTransformBeginInfoQCOM {
15594 VkStructureType sType;
15595 void* pNext;
15596 VkSurfaceTransformFlagBitsKHR transform;
15597} VkRenderPassTransformBeginInfoQCOM;
15598
15599typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
15600 VkStructureType sType;
15601 void* pNext;
15602 VkSurfaceTransformFlagBitsKHR transform;
15603 VkRect2D renderArea;
15604} VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
15605
15606
15607
15608// VK_EXT_depth_bias_control is a preprocessor guard. Do not pass it to API calls.
15609#define VK_EXT_depth_bias_control 1
15610#define VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION 1
15611#define VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME "VK_EXT_depth_bias_control"
15612
15613typedef enum VkDepthBiasRepresentationEXT {
15614 VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = 0,
15615 VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = 1,
15616 VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = 2,
15617 VK_DEPTH_BIAS_REPRESENTATION_MAX_ENUM_EXT = 0x7FFFFFFF
15618} VkDepthBiasRepresentationEXT;
15619typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT {
15620 VkStructureType sType;
15621 void* pNext;
15622 VkBool32 depthBiasControl;
15623 VkBool32 leastRepresentableValueForceUnormRepresentation;
15624 VkBool32 floatRepresentation;
15625 VkBool32 depthBiasExact;
15626} VkPhysicalDeviceDepthBiasControlFeaturesEXT;
15627
15628typedef struct VkDepthBiasInfoEXT {
15629 VkStructureType sType;
15630 const void* pNext;
15631 float depthBiasConstantFactor;
15632 float depthBiasClamp;
15633 float depthBiasSlopeFactor;
15634} VkDepthBiasInfoEXT;
15635
15636typedef struct VkDepthBiasRepresentationInfoEXT {
15637 VkStructureType sType;
15638 const void* pNext;
15639 VkDepthBiasRepresentationEXT depthBiasRepresentation;
15640 VkBool32 depthBiasExact;
15641} VkDepthBiasRepresentationInfoEXT;
15642
15643typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias2EXT)(VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT* pDepthBiasInfo);
15644
15645#ifndef VK_NO_PROTOTYPES
15646VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias2EXT(
15647 VkCommandBuffer commandBuffer,
15648 const VkDepthBiasInfoEXT* pDepthBiasInfo);
15649#endif
15650
15651
15652// VK_EXT_device_memory_report is a preprocessor guard. Do not pass it to API calls.
15653#define VK_EXT_device_memory_report 1
15654#define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
15655#define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
15656
15657typedef enum VkDeviceMemoryReportEventTypeEXT {
15658 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
15659 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
15660 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
15661 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
15662 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
15663 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
15664} VkDeviceMemoryReportEventTypeEXT;
15665typedef VkFlags VkDeviceMemoryReportFlagsEXT;
15666typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
15667 VkStructureType sType;
15668 void* pNext;
15669 VkBool32 deviceMemoryReport;
15670} VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
15671
15672typedef struct VkDeviceMemoryReportCallbackDataEXT {
15673 VkStructureType sType;
15674 void* pNext;
15675 VkDeviceMemoryReportFlagsEXT flags;
15676 VkDeviceMemoryReportEventTypeEXT type;
15677 uint64_t memoryObjectId;
15678 VkDeviceSize size;
15679 VkObjectType objectType;
15680 uint64_t objectHandle;
15681 uint32_t heapIndex;
15682} VkDeviceMemoryReportCallbackDataEXT;
15683
15684typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
15685 const VkDeviceMemoryReportCallbackDataEXT* pCallbackData,
15686 void* pUserData);
15687
15688typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
15689 VkStructureType sType;
15690 const void* pNext;
15691 VkDeviceMemoryReportFlagsEXT flags;
15692 PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback;
15693 void* pUserData;
15694} VkDeviceDeviceMemoryReportCreateInfoEXT;
15695
15696
15697
15698// VK_EXT_acquire_drm_display is a preprocessor guard. Do not pass it to API calls.
15699#define VK_EXT_acquire_drm_display 1
15700#define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
15701#define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
15702typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
15703typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
15704
15705#ifndef VK_NO_PROTOTYPES
15706VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT(
15707 VkPhysicalDevice physicalDevice,
15708 int32_t drmFd,
15709 VkDisplayKHR display);
15710
15711VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT(
15712 VkPhysicalDevice physicalDevice,
15713 int32_t drmFd,
15714 uint32_t connectorId,
15715 VkDisplayKHR* display);
15716#endif
15717
15718
15719// VK_EXT_robustness2 is a preprocessor guard. Do not pass it to API calls.
15720#define VK_EXT_robustness2 1
15721#define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1
15722#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
15723typedef struct VkPhysicalDeviceRobustness2FeaturesEXT {
15724 VkStructureType sType;
15725 void* pNext;
15726 VkBool32 robustBufferAccess2;
15727 VkBool32 robustImageAccess2;
15728 VkBool32 nullDescriptor;
15729} VkPhysicalDeviceRobustness2FeaturesEXT;
15730
15731typedef struct VkPhysicalDeviceRobustness2PropertiesEXT {
15732 VkStructureType sType;
15733 void* pNext;
15734 VkDeviceSize robustStorageBufferAccessSizeAlignment;
15735 VkDeviceSize robustUniformBufferAccessSizeAlignment;
15736} VkPhysicalDeviceRobustness2PropertiesEXT;
15737
15738
15739
15740// VK_EXT_custom_border_color is a preprocessor guard. Do not pass it to API calls.
15741#define VK_EXT_custom_border_color 1
15742#define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
15743#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
15744typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
15745 VkStructureType sType;
15746 const void* pNext;
15747 VkClearColorValue customBorderColor;
15748 VkFormat format;
15749} VkSamplerCustomBorderColorCreateInfoEXT;
15750
15751typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
15752 VkStructureType sType;
15753 void* pNext;
15754 uint32_t maxCustomBorderColorSamplers;
15755} VkPhysicalDeviceCustomBorderColorPropertiesEXT;
15756
15757typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
15758 VkStructureType sType;
15759 void* pNext;
15760 VkBool32 customBorderColors;
15761 VkBool32 customBorderColorWithoutFormat;
15762} VkPhysicalDeviceCustomBorderColorFeaturesEXT;
15763
15764
15765
15766// VK_GOOGLE_user_type is a preprocessor guard. Do not pass it to API calls.
15767#define VK_GOOGLE_user_type 1
15768#define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1
15769#define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
15770
15771
15772// VK_NV_present_barrier is a preprocessor guard. Do not pass it to API calls.
15773#define VK_NV_present_barrier 1
15774#define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1
15775#define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier"
15776typedef struct VkPhysicalDevicePresentBarrierFeaturesNV {
15777 VkStructureType sType;
15778 void* pNext;
15779 VkBool32 presentBarrier;
15780} VkPhysicalDevicePresentBarrierFeaturesNV;
15781
15782typedef struct VkSurfaceCapabilitiesPresentBarrierNV {
15783 VkStructureType sType;
15784 void* pNext;
15785 VkBool32 presentBarrierSupported;
15786} VkSurfaceCapabilitiesPresentBarrierNV;
15787
15788typedef struct VkSwapchainPresentBarrierCreateInfoNV {
15789 VkStructureType sType;
15790 void* pNext;
15791 VkBool32 presentBarrierEnable;
15792} VkSwapchainPresentBarrierCreateInfoNV;
15793
15794
15795
15796// VK_EXT_private_data is a preprocessor guard. Do not pass it to API calls.
15797#define VK_EXT_private_data 1
15798typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
15799
15800#define VK_EXT_PRIVATE_DATA_SPEC_VERSION 1
15801#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
15802typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
15803
15804typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
15805
15806typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
15807
15808typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
15809
15810typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
15811typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
15812typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
15813typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
15814
15815#ifndef VK_NO_PROTOTYPES
15816VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
15817 VkDevice device,
15818 const VkPrivateDataSlotCreateInfo* pCreateInfo,
15819 const VkAllocationCallbacks* pAllocator,
15820 VkPrivateDataSlot* pPrivateDataSlot);
15821
15822VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
15823 VkDevice device,
15824 VkPrivateDataSlot privateDataSlot,
15825 const VkAllocationCallbacks* pAllocator);
15826
15827VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
15828 VkDevice device,
15829 VkObjectType objectType,
15830 uint64_t objectHandle,
15831 VkPrivateDataSlot privateDataSlot,
15832 uint64_t data);
15833
15834VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
15835 VkDevice device,
15836 VkObjectType objectType,
15837 uint64_t objectHandle,
15838 VkPrivateDataSlot privateDataSlot,
15839 uint64_t* pData);
15840#endif
15841
15842
15843// VK_EXT_pipeline_creation_cache_control is a preprocessor guard. Do not pass it to API calls.
15844#define VK_EXT_pipeline_creation_cache_control 1
15845#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
15846#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
15847typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
15848
15849
15850
15851// VK_NV_device_diagnostics_config is a preprocessor guard. Do not pass it to API calls.
15852#define VK_NV_device_diagnostics_config 1
15853#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
15854#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
15855
15856typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
15857 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
15858 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
15859 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
15860 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008,
15861 VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
15862} VkDeviceDiagnosticsConfigFlagBitsNV;
15863typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
15864typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
15865 VkStructureType sType;
15866 void* pNext;
15867 VkBool32 diagnosticsConfig;
15868} VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
15869
15870typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
15871 VkStructureType sType;
15872 const void* pNext;
15873 VkDeviceDiagnosticsConfigFlagsNV flags;
15874} VkDeviceDiagnosticsConfigCreateInfoNV;
15875
15876
15877
15878// VK_QCOM_render_pass_store_ops is a preprocessor guard. Do not pass it to API calls.
15879#define VK_QCOM_render_pass_store_ops 1
15880#define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
15881#define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
15882
15883
15884// VK_NV_cuda_kernel_launch is a preprocessor guard. Do not pass it to API calls.
15885#define VK_NV_cuda_kernel_launch 1
15886VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaModuleNV)
15887VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCudaFunctionNV)
15888#define VK_NV_CUDA_KERNEL_LAUNCH_SPEC_VERSION 2
15889#define VK_NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME "VK_NV_cuda_kernel_launch"
15890typedef struct VkCudaModuleCreateInfoNV {
15891 VkStructureType sType;
15892 const void* pNext;
15893 size_t dataSize;
15894 const void* pData;
15895} VkCudaModuleCreateInfoNV;
15896
15897typedef struct VkCudaFunctionCreateInfoNV {
15898 VkStructureType sType;
15899 const void* pNext;
15900 VkCudaModuleNV module;
15901 const char* pName;
15902} VkCudaFunctionCreateInfoNV;
15903
15904typedef struct VkCudaLaunchInfoNV {
15905 VkStructureType sType;
15906 const void* pNext;
15907 VkCudaFunctionNV function;
15908 uint32_t gridDimX;
15909 uint32_t gridDimY;
15910 uint32_t gridDimZ;
15911 uint32_t blockDimX;
15912 uint32_t blockDimY;
15913 uint32_t blockDimZ;
15914 uint32_t sharedMemBytes;
15915 size_t paramCount;
15916 const void* const * pParams;
15917 size_t extraCount;
15918 const void* const * pExtras;
15919} VkCudaLaunchInfoNV;
15920
15921typedef struct VkPhysicalDeviceCudaKernelLaunchFeaturesNV {
15922 VkStructureType sType;
15923 void* pNext;
15924 VkBool32 cudaKernelLaunchFeatures;
15925} VkPhysicalDeviceCudaKernelLaunchFeaturesNV;
15926
15927typedef struct VkPhysicalDeviceCudaKernelLaunchPropertiesNV {
15928 VkStructureType sType;
15929 void* pNext;
15930 uint32_t computeCapabilityMinor;
15931 uint32_t computeCapabilityMajor;
15932} VkPhysicalDeviceCudaKernelLaunchPropertiesNV;
15933
15934typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaModuleNV)(VkDevice device, const VkCudaModuleCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaModuleNV* pModule);
15935typedef VkResult (VKAPI_PTR *PFN_vkGetCudaModuleCacheNV)(VkDevice device, VkCudaModuleNV module, size_t* pCacheSize, void* pCacheData);
15936typedef VkResult (VKAPI_PTR *PFN_vkCreateCudaFunctionNV)(VkDevice device, const VkCudaFunctionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCudaFunctionNV* pFunction);
15937typedef void (VKAPI_PTR *PFN_vkDestroyCudaModuleNV)(VkDevice device, VkCudaModuleNV module, const VkAllocationCallbacks* pAllocator);
15938typedef void (VKAPI_PTR *PFN_vkDestroyCudaFunctionNV)(VkDevice device, VkCudaFunctionNV function, const VkAllocationCallbacks* pAllocator);
15939typedef void (VKAPI_PTR *PFN_vkCmdCudaLaunchKernelNV)(VkCommandBuffer commandBuffer, const VkCudaLaunchInfoNV* pLaunchInfo);
15940
15941#ifndef VK_NO_PROTOTYPES
15942VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaModuleNV(
15943 VkDevice device,
15944 const VkCudaModuleCreateInfoNV* pCreateInfo,
15945 const VkAllocationCallbacks* pAllocator,
15946 VkCudaModuleNV* pModule);
15947
15948VKAPI_ATTR VkResult VKAPI_CALL vkGetCudaModuleCacheNV(
15949 VkDevice device,
15950 VkCudaModuleNV module,
15951 size_t* pCacheSize,
15952 void* pCacheData);
15953
15954VKAPI_ATTR VkResult VKAPI_CALL vkCreateCudaFunctionNV(
15955 VkDevice device,
15956 const VkCudaFunctionCreateInfoNV* pCreateInfo,
15957 const VkAllocationCallbacks* pAllocator,
15958 VkCudaFunctionNV* pFunction);
15959
15960VKAPI_ATTR void VKAPI_CALL vkDestroyCudaModuleNV(
15961 VkDevice device,
15962 VkCudaModuleNV module,
15963 const VkAllocationCallbacks* pAllocator);
15964
15965VKAPI_ATTR void VKAPI_CALL vkDestroyCudaFunctionNV(
15966 VkDevice device,
15967 VkCudaFunctionNV function,
15968 const VkAllocationCallbacks* pAllocator);
15969
15970VKAPI_ATTR void VKAPI_CALL vkCmdCudaLaunchKernelNV(
15971 VkCommandBuffer commandBuffer,
15972 const VkCudaLaunchInfoNV* pLaunchInfo);
15973#endif
15974
15975
15976// VK_NV_low_latency is a preprocessor guard. Do not pass it to API calls.
15977#define VK_NV_low_latency 1
15978#define VK_NV_LOW_LATENCY_SPEC_VERSION 1
15979#define VK_NV_LOW_LATENCY_EXTENSION_NAME "VK_NV_low_latency"
15980typedef struct VkQueryLowLatencySupportNV {
15981 VkStructureType sType;
15982 const void* pNext;
15983 void* pQueriedLowLatencyData;
15984} VkQueryLowLatencySupportNV;
15985
15986
15987
15988// VK_EXT_descriptor_buffer is a preprocessor guard. Do not pass it to API calls.
15989#define VK_EXT_descriptor_buffer 1
15990VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
15991#define VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION 1
15992#define VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME "VK_EXT_descriptor_buffer"
15993typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT {
15994 VkStructureType sType;
15995 void* pNext;
15996 VkBool32 combinedImageSamplerDescriptorSingleArray;
15997 VkBool32 bufferlessPushDescriptors;
15998 VkBool32 allowSamplerImageViewPostSubmitCreation;
15999 VkDeviceSize descriptorBufferOffsetAlignment;
16000 uint32_t maxDescriptorBufferBindings;
16001 uint32_t maxResourceDescriptorBufferBindings;
16002 uint32_t maxSamplerDescriptorBufferBindings;
16003 uint32_t maxEmbeddedImmutableSamplerBindings;
16004 uint32_t maxEmbeddedImmutableSamplers;
16005 size_t bufferCaptureReplayDescriptorDataSize;
16006 size_t imageCaptureReplayDescriptorDataSize;
16007 size_t imageViewCaptureReplayDescriptorDataSize;
16008 size_t samplerCaptureReplayDescriptorDataSize;
16009 size_t accelerationStructureCaptureReplayDescriptorDataSize;
16010 size_t samplerDescriptorSize;
16011 size_t combinedImageSamplerDescriptorSize;
16012 size_t sampledImageDescriptorSize;
16013 size_t storageImageDescriptorSize;
16014 size_t uniformTexelBufferDescriptorSize;
16015 size_t robustUniformTexelBufferDescriptorSize;
16016 size_t storageTexelBufferDescriptorSize;
16017 size_t robustStorageTexelBufferDescriptorSize;
16018 size_t uniformBufferDescriptorSize;
16019 size_t robustUniformBufferDescriptorSize;
16020 size_t storageBufferDescriptorSize;
16021 size_t robustStorageBufferDescriptorSize;
16022 size_t inputAttachmentDescriptorSize;
16023 size_t accelerationStructureDescriptorSize;
16024 VkDeviceSize maxSamplerDescriptorBufferRange;
16025 VkDeviceSize maxResourceDescriptorBufferRange;
16026 VkDeviceSize samplerDescriptorBufferAddressSpaceSize;
16027 VkDeviceSize resourceDescriptorBufferAddressSpaceSize;
16028 VkDeviceSize descriptorBufferAddressSpaceSize;
16029} VkPhysicalDeviceDescriptorBufferPropertiesEXT;
16030
16031typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
16032 VkStructureType sType;
16033 void* pNext;
16034 size_t combinedImageSamplerDensityMapDescriptorSize;
16035} VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
16036
16037typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT {
16038 VkStructureType sType;
16039 void* pNext;
16040 VkBool32 descriptorBuffer;
16041 VkBool32 descriptorBufferCaptureReplay;
16042 VkBool32 descriptorBufferImageLayoutIgnored;
16043 VkBool32 descriptorBufferPushDescriptors;
16044} VkPhysicalDeviceDescriptorBufferFeaturesEXT;
16045
16046typedef struct VkDescriptorAddressInfoEXT {
16047 VkStructureType sType;
16048 void* pNext;
16049 VkDeviceAddress address;
16050 VkDeviceSize range;
16051 VkFormat format;
16052} VkDescriptorAddressInfoEXT;
16053
16054typedef struct VkDescriptorBufferBindingInfoEXT {
16055 VkStructureType sType;
16056 void* pNext;
16057 VkDeviceAddress address;
16058 VkBufferUsageFlags usage;
16059} VkDescriptorBufferBindingInfoEXT;
16060
16061typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT {
16062 VkStructureType sType;
16063 void* pNext;
16064 VkBuffer buffer;
16065} VkDescriptorBufferBindingPushDescriptorBufferHandleEXT;
16066
16067typedef union VkDescriptorDataEXT {
16068 const VkSampler* pSampler;
16069 const VkDescriptorImageInfo* pCombinedImageSampler;
16070 const VkDescriptorImageInfo* pInputAttachmentImage;
16071 const VkDescriptorImageInfo* pSampledImage;
16072 const VkDescriptorImageInfo* pStorageImage;
16073 const VkDescriptorAddressInfoEXT* pUniformTexelBuffer;
16074 const VkDescriptorAddressInfoEXT* pStorageTexelBuffer;
16075 const VkDescriptorAddressInfoEXT* pUniformBuffer;
16076 const VkDescriptorAddressInfoEXT* pStorageBuffer;
16077 VkDeviceAddress accelerationStructure;
16078} VkDescriptorDataEXT;
16079
16080typedef struct VkDescriptorGetInfoEXT {
16081 VkStructureType sType;
16082 const void* pNext;
16083 VkDescriptorType type;
16084 VkDescriptorDataEXT data;
16085} VkDescriptorGetInfoEXT;
16086
16087typedef struct VkBufferCaptureDescriptorDataInfoEXT {
16088 VkStructureType sType;
16089 const void* pNext;
16090 VkBuffer buffer;
16091} VkBufferCaptureDescriptorDataInfoEXT;
16092
16093typedef struct VkImageCaptureDescriptorDataInfoEXT {
16094 VkStructureType sType;
16095 const void* pNext;
16096 VkImage image;
16097} VkImageCaptureDescriptorDataInfoEXT;
16098
16099typedef struct VkImageViewCaptureDescriptorDataInfoEXT {
16100 VkStructureType sType;
16101 const void* pNext;
16102 VkImageView imageView;
16103} VkImageViewCaptureDescriptorDataInfoEXT;
16104
16105typedef struct VkSamplerCaptureDescriptorDataInfoEXT {
16106 VkStructureType sType;
16107 const void* pNext;
16108 VkSampler sampler;
16109} VkSamplerCaptureDescriptorDataInfoEXT;
16110
16111typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT {
16112 VkStructureType sType;
16113 const void* pNext;
16114 const void* opaqueCaptureDescriptorData;
16115} VkOpaqueCaptureDescriptorDataCreateInfoEXT;
16116
16117typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT {
16118 VkStructureType sType;
16119 const void* pNext;
16120 VkAccelerationStructureKHR accelerationStructure;
16121 VkAccelerationStructureNV accelerationStructureNV;
16122} VkAccelerationStructureCaptureDescriptorDataInfoEXT;
16123
16124typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSizeEXT)(VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes);
16125typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset);
16126typedef void (VKAPI_PTR *PFN_vkGetDescriptorEXT)(VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor);
16127typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
16128typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsetsEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const uint32_t* pBufferIndices, const VkDeviceSize* pOffsets);
16129typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set);
16130typedef VkResult (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16131typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16132typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16133typedef VkResult (VKAPI_PTR *PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16134typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData);
16135
16136#ifndef VK_NO_PROTOTYPES
16137VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT(
16138 VkDevice device,
16139 VkDescriptorSetLayout layout,
16140 VkDeviceSize* pLayoutSizeInBytes);
16141
16142VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutBindingOffsetEXT(
16143 VkDevice device,
16144 VkDescriptorSetLayout layout,
16145 uint32_t binding,
16146 VkDeviceSize* pOffset);
16147
16148VKAPI_ATTR void VKAPI_CALL vkGetDescriptorEXT(
16149 VkDevice device,
16150 const VkDescriptorGetInfoEXT* pDescriptorInfo,
16151 size_t dataSize,
16152 void* pDescriptor);
16153
16154VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBuffersEXT(
16155 VkCommandBuffer commandBuffer,
16156 uint32_t bufferCount,
16157 const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
16158
16159VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsetsEXT(
16160 VkCommandBuffer commandBuffer,
16161 VkPipelineBindPoint pipelineBindPoint,
16162 VkPipelineLayout layout,
16163 uint32_t firstSet,
16164 uint32_t setCount,
16165 const uint32_t* pBufferIndices,
16166 const VkDeviceSize* pOffsets);
16167
16168VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
16169 VkCommandBuffer commandBuffer,
16170 VkPipelineBindPoint pipelineBindPoint,
16171 VkPipelineLayout layout,
16172 uint32_t set);
16173
16174VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferOpaqueCaptureDescriptorDataEXT(
16175 VkDevice device,
16176 const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
16177 void* pData);
16178
16179VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDescriptorDataEXT(
16180 VkDevice device,
16181 const VkImageCaptureDescriptorDataInfoEXT* pInfo,
16182 void* pData);
16183
16184VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT(
16185 VkDevice device,
16186 const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
16187 void* pData);
16188
16189VKAPI_ATTR VkResult VKAPI_CALL vkGetSamplerOpaqueCaptureDescriptorDataEXT(
16190 VkDevice device,
16191 const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
16192 void* pData);
16193
16194VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
16195 VkDevice device,
16196 const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
16197 void* pData);
16198#endif
16199
16200
16201// VK_EXT_graphics_pipeline_library is a preprocessor guard. Do not pass it to API calls.
16202#define VK_EXT_graphics_pipeline_library 1
16203#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
16204#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
16205
16206typedef enum VkGraphicsPipelineLibraryFlagBitsEXT {
16207 VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001,
16208 VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002,
16209 VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004,
16210 VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008,
16211 VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16212} VkGraphicsPipelineLibraryFlagBitsEXT;
16213typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT;
16214typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
16215 VkStructureType sType;
16216 void* pNext;
16217 VkBool32 graphicsPipelineLibrary;
16218} VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
16219
16220typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
16221 VkStructureType sType;
16222 void* pNext;
16223 VkBool32 graphicsPipelineLibraryFastLinking;
16224 VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration;
16225} VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
16226
16227typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {
16228 VkStructureType sType;
16229 const void* pNext;
16230 VkGraphicsPipelineLibraryFlagsEXT flags;
16231} VkGraphicsPipelineLibraryCreateInfoEXT;
16232
16233
16234
16235// VK_AMD_shader_early_and_late_fragment_tests is a preprocessor guard. Do not pass it to API calls.
16236#define VK_AMD_shader_early_and_late_fragment_tests 1
16237#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
16238#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
16239typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
16240 VkStructureType sType;
16241 void* pNext;
16242 VkBool32 shaderEarlyAndLateFragmentTests;
16243} VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
16244
16245
16246
16247// VK_NV_fragment_shading_rate_enums is a preprocessor guard. Do not pass it to API calls.
16248#define VK_NV_fragment_shading_rate_enums 1
16249#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
16250#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
16251
16252typedef enum VkFragmentShadingRateTypeNV {
16253 VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0,
16254 VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1,
16255 VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
16256} VkFragmentShadingRateTypeNV;
16257
16258typedef enum VkFragmentShadingRateNV {
16259 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0,
16260 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
16261 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
16262 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
16263 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
16264 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
16265 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
16266 VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11,
16267 VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12,
16268 VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13,
16269 VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14,
16270 VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15,
16271 VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF
16272} VkFragmentShadingRateNV;
16273typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
16274 VkStructureType sType;
16275 void* pNext;
16276 VkBool32 fragmentShadingRateEnums;
16277 VkBool32 supersampleFragmentShadingRates;
16278 VkBool32 noInvocationFragmentShadingRates;
16279} VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
16280
16281typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
16282 VkStructureType sType;
16283 void* pNext;
16284 VkSampleCountFlagBits maxFragmentShadingRateInvocationCount;
16285} VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
16286
16287typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV {
16288 VkStructureType sType;
16289 const void* pNext;
16290 VkFragmentShadingRateTypeNV shadingRateType;
16291 VkFragmentShadingRateNV shadingRate;
16292 VkFragmentShadingRateCombinerOpKHR combinerOps[2];
16293} VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
16294
16295typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
16296
16297#ifndef VK_NO_PROTOTYPES
16298VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV(
16299 VkCommandBuffer commandBuffer,
16300 VkFragmentShadingRateNV shadingRate,
16301 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
16302#endif
16303
16304
16305// VK_NV_ray_tracing_motion_blur is a preprocessor guard. Do not pass it to API calls.
16306#define VK_NV_ray_tracing_motion_blur 1
16307#define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
16308#define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
16309
16310typedef enum VkAccelerationStructureMotionInstanceTypeNV {
16311 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
16312 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
16313 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2,
16314 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
16315} VkAccelerationStructureMotionInstanceTypeNV;
16316typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV;
16317typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV;
16318typedef union VkDeviceOrHostAddressConstKHR {
16319 VkDeviceAddress deviceAddress;
16320 const void* hostAddress;
16321} VkDeviceOrHostAddressConstKHR;
16322
16323typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV {
16324 VkStructureType sType;
16325 const void* pNext;
16326 VkDeviceOrHostAddressConstKHR vertexData;
16327} VkAccelerationStructureGeometryMotionTrianglesDataNV;
16328
16329typedef struct VkAccelerationStructureMotionInfoNV {
16330 VkStructureType sType;
16331 const void* pNext;
16332 uint32_t maxInstances;
16333 VkAccelerationStructureMotionInfoFlagsNV flags;
16334} VkAccelerationStructureMotionInfoNV;
16335
16336typedef struct VkAccelerationStructureMatrixMotionInstanceNV {
16337 VkTransformMatrixKHR transformT0;
16338 VkTransformMatrixKHR transformT1;
16339 uint32_t instanceCustomIndex:24;
16340 uint32_t mask:8;
16341 uint32_t instanceShaderBindingTableRecordOffset:24;
16342 VkGeometryInstanceFlagsKHR flags:8;
16343 uint64_t accelerationStructureReference;
16344} VkAccelerationStructureMatrixMotionInstanceNV;
16345
16346typedef struct VkSRTDataNV {
16347 float sx;
16348 float a;
16349 float b;
16350 float pvx;
16351 float sy;
16352 float c;
16353 float pvy;
16354 float sz;
16355 float pvz;
16356 float qx;
16357 float qy;
16358 float qz;
16359 float qw;
16360 float tx;
16361 float ty;
16362 float tz;
16363} VkSRTDataNV;
16364
16365typedef struct VkAccelerationStructureSRTMotionInstanceNV {
16366 VkSRTDataNV transformT0;
16367 VkSRTDataNV transformT1;
16368 uint32_t instanceCustomIndex:24;
16369 uint32_t mask:8;
16370 uint32_t instanceShaderBindingTableRecordOffset:24;
16371 VkGeometryInstanceFlagsKHR flags:8;
16372 uint64_t accelerationStructureReference;
16373} VkAccelerationStructureSRTMotionInstanceNV;
16374
16375typedef union VkAccelerationStructureMotionInstanceDataNV {
16376 VkAccelerationStructureInstanceKHR staticInstance;
16377 VkAccelerationStructureMatrixMotionInstanceNV matrixMotionInstance;
16378 VkAccelerationStructureSRTMotionInstanceNV srtMotionInstance;
16379} VkAccelerationStructureMotionInstanceDataNV;
16380
16381typedef struct VkAccelerationStructureMotionInstanceNV {
16382 VkAccelerationStructureMotionInstanceTypeNV type;
16383 VkAccelerationStructureMotionInstanceFlagsNV flags;
16384 VkAccelerationStructureMotionInstanceDataNV data;
16385} VkAccelerationStructureMotionInstanceNV;
16386
16387typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
16388 VkStructureType sType;
16389 void* pNext;
16390 VkBool32 rayTracingMotionBlur;
16391 VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect;
16392} VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
16393
16394
16395
16396// VK_EXT_ycbcr_2plane_444_formats is a preprocessor guard. Do not pass it to API calls.
16397#define VK_EXT_ycbcr_2plane_444_formats 1
16398#define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
16399#define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
16400typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
16401 VkStructureType sType;
16402 void* pNext;
16403 VkBool32 ycbcr2plane444Formats;
16404} VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
16405
16406
16407
16408// VK_EXT_fragment_density_map2 is a preprocessor guard. Do not pass it to API calls.
16409#define VK_EXT_fragment_density_map2 1
16410#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
16411#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
16412typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
16413 VkStructureType sType;
16414 void* pNext;
16415 VkBool32 fragmentDensityMapDeferred;
16416} VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
16417
16418typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
16419 VkStructureType sType;
16420 void* pNext;
16421 VkBool32 subsampledLoads;
16422 VkBool32 subsampledCoarseReconstructionEarlyAccess;
16423 uint32_t maxSubsampledArrayLayers;
16424 uint32_t maxDescriptorSetSubsampledSamplers;
16425} VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
16426
16427
16428
16429// VK_QCOM_rotated_copy_commands is a preprocessor guard. Do not pass it to API calls.
16430#define VK_QCOM_rotated_copy_commands 1
16431#define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 2
16432#define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
16433typedef struct VkCopyCommandTransformInfoQCOM {
16434 VkStructureType sType;
16435 const void* pNext;
16436 VkSurfaceTransformFlagBitsKHR transform;
16437} VkCopyCommandTransformInfoQCOM;
16438
16439
16440
16441// VK_EXT_image_robustness is a preprocessor guard. Do not pass it to API calls.
16442#define VK_EXT_image_robustness 1
16443#define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
16444#define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
16445typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT;
16446
16447
16448
16449// VK_EXT_image_compression_control is a preprocessor guard. Do not pass it to API calls.
16450#define VK_EXT_image_compression_control 1
16451#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
16452#define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
16453
16454typedef enum VkImageCompressionFlagBitsEXT {
16455 VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0,
16456 VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001,
16457 VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002,
16458 VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004,
16459 VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16460} VkImageCompressionFlagBitsEXT;
16461typedef VkFlags VkImageCompressionFlagsEXT;
16462
16463typedef enum VkImageCompressionFixedRateFlagBitsEXT {
16464 VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0,
16465 VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001,
16466 VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002,
16467 VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004,
16468 VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008,
16469 VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010,
16470 VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020,
16471 VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040,
16472 VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080,
16473 VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100,
16474 VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200,
16475 VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400,
16476 VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800,
16477 VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000,
16478 VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000,
16479 VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000,
16480 VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000,
16481 VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000,
16482 VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000,
16483 VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000,
16484 VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000,
16485 VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000,
16486 VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000,
16487 VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000,
16488 VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000,
16489 VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16490} VkImageCompressionFixedRateFlagBitsEXT;
16491typedef VkFlags VkImageCompressionFixedRateFlagsEXT;
16492typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT {
16493 VkStructureType sType;
16494 void* pNext;
16495 VkBool32 imageCompressionControl;
16496} VkPhysicalDeviceImageCompressionControlFeaturesEXT;
16497
16498typedef struct VkImageCompressionControlEXT {
16499 VkStructureType sType;
16500 const void* pNext;
16501 VkImageCompressionFlagsEXT flags;
16502 uint32_t compressionControlPlaneCount;
16503 VkImageCompressionFixedRateFlagsEXT* pFixedRateFlags;
16504} VkImageCompressionControlEXT;
16505
16506typedef struct VkImageCompressionPropertiesEXT {
16507 VkStructureType sType;
16508 void* pNext;
16509 VkImageCompressionFlagsEXT imageCompressionFlags;
16510 VkImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags;
16511} VkImageCompressionPropertiesEXT;
16512
16513
16514
16515// VK_EXT_attachment_feedback_loop_layout is a preprocessor guard. Do not pass it to API calls.
16516#define VK_EXT_attachment_feedback_loop_layout 1
16517#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2
16518#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout"
16519typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
16520 VkStructureType sType;
16521 void* pNext;
16522 VkBool32 attachmentFeedbackLoopLayout;
16523} VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
16524
16525
16526
16527// VK_EXT_4444_formats is a preprocessor guard. Do not pass it to API calls.
16528#define VK_EXT_4444_formats 1
16529#define VK_EXT_4444_FORMATS_SPEC_VERSION 1
16530#define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
16531typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
16532 VkStructureType sType;
16533 void* pNext;
16534 VkBool32 formatA4R4G4B4;
16535 VkBool32 formatA4B4G4R4;
16536} VkPhysicalDevice4444FormatsFeaturesEXT;
16537
16538
16539
16540// VK_EXT_device_fault is a preprocessor guard. Do not pass it to API calls.
16541#define VK_EXT_device_fault 1
16542#define VK_EXT_DEVICE_FAULT_SPEC_VERSION 2
16543#define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault"
16544
16545typedef enum VkDeviceFaultAddressTypeEXT {
16546 VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0,
16547 VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1,
16548 VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2,
16549 VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3,
16550 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4,
16551 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5,
16552 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6,
16553 VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
16554} VkDeviceFaultAddressTypeEXT;
16555
16556typedef enum VkDeviceFaultVendorBinaryHeaderVersionEXT {
16557 VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1,
16558 VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
16559} VkDeviceFaultVendorBinaryHeaderVersionEXT;
16560typedef struct VkPhysicalDeviceFaultFeaturesEXT {
16561 VkStructureType sType;
16562 void* pNext;
16563 VkBool32 deviceFault;
16564 VkBool32 deviceFaultVendorBinary;
16565} VkPhysicalDeviceFaultFeaturesEXT;
16566
16567typedef struct VkDeviceFaultCountsEXT {
16568 VkStructureType sType;
16569 void* pNext;
16570 uint32_t addressInfoCount;
16571 uint32_t vendorInfoCount;
16572 VkDeviceSize vendorBinarySize;
16573} VkDeviceFaultCountsEXT;
16574
16575typedef struct VkDeviceFaultAddressInfoEXT {
16576 VkDeviceFaultAddressTypeEXT addressType;
16577 VkDeviceAddress reportedAddress;
16578 VkDeviceSize addressPrecision;
16579} VkDeviceFaultAddressInfoEXT;
16580
16581typedef struct VkDeviceFaultVendorInfoEXT {
16582 char description[VK_MAX_DESCRIPTION_SIZE];
16583 uint64_t vendorFaultCode;
16584 uint64_t vendorFaultData;
16585} VkDeviceFaultVendorInfoEXT;
16586
16587typedef struct VkDeviceFaultInfoEXT {
16588 VkStructureType sType;
16589 void* pNext;
16590 char description[VK_MAX_DESCRIPTION_SIZE];
16591 VkDeviceFaultAddressInfoEXT* pAddressInfos;
16592 VkDeviceFaultVendorInfoEXT* pVendorInfos;
16593 void* pVendorBinaryData;
16594} VkDeviceFaultInfoEXT;
16595
16596typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT {
16597 uint32_t headerSize;
16598 VkDeviceFaultVendorBinaryHeaderVersionEXT headerVersion;
16599 uint32_t vendorID;
16600 uint32_t deviceID;
16601 uint32_t driverVersion;
16602 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
16603 uint32_t applicationNameOffset;
16604 uint32_t applicationVersion;
16605 uint32_t engineNameOffset;
16606 uint32_t engineVersion;
16607 uint32_t apiVersion;
16608} VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
16609
16610typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo);
16611
16612#ifndef VK_NO_PROTOTYPES
16613VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT(
16614 VkDevice device,
16615 VkDeviceFaultCountsEXT* pFaultCounts,
16616 VkDeviceFaultInfoEXT* pFaultInfo);
16617#endif
16618
16619
16620// VK_ARM_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
16621#define VK_ARM_rasterization_order_attachment_access 1
16622#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
16623#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
16624typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
16625 VkStructureType sType;
16626 void* pNext;
16627 VkBool32 rasterizationOrderColorAttachmentAccess;
16628 VkBool32 rasterizationOrderDepthAttachmentAccess;
16629 VkBool32 rasterizationOrderStencilAttachmentAccess;
16630} VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
16631
16632typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
16633
16634
16635
16636// VK_EXT_rgba10x6_formats is a preprocessor guard. Do not pass it to API calls.
16637#define VK_EXT_rgba10x6_formats 1
16638#define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
16639#define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
16640typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT {
16641 VkStructureType sType;
16642 void* pNext;
16643 VkBool32 formatRgba10x6WithoutYCbCrSampler;
16644} VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
16645
16646
16647
16648// VK_VALVE_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
16649#define VK_VALVE_mutable_descriptor_type 1
16650#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
16651#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
16652typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT {
16653 VkStructureType sType;
16654 void* pNext;
16655 VkBool32 mutableDescriptorType;
16656} VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
16657
16658typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
16659
16660typedef struct VkMutableDescriptorTypeListEXT {
16661 uint32_t descriptorTypeCount;
16662 const VkDescriptorType* pDescriptorTypes;
16663} VkMutableDescriptorTypeListEXT;
16664
16665typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE;
16666
16667typedef struct VkMutableDescriptorTypeCreateInfoEXT {
16668 VkStructureType sType;
16669 const void* pNext;
16670 uint32_t mutableDescriptorTypeListCount;
16671 const VkMutableDescriptorTypeListEXT* pMutableDescriptorTypeLists;
16672} VkMutableDescriptorTypeCreateInfoEXT;
16673
16674typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE;
16675
16676
16677
16678// VK_EXT_vertex_input_dynamic_state is a preprocessor guard. Do not pass it to API calls.
16679#define VK_EXT_vertex_input_dynamic_state 1
16680#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
16681#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
16682typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT {
16683 VkStructureType sType;
16684 void* pNext;
16685 VkBool32 vertexInputDynamicState;
16686} VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
16687
16688typedef struct VkVertexInputBindingDescription2EXT {
16689 VkStructureType sType;
16690 void* pNext;
16691 uint32_t binding;
16692 uint32_t stride;
16693 VkVertexInputRate inputRate;
16694 uint32_t divisor;
16695} VkVertexInputBindingDescription2EXT;
16696
16697typedef struct VkVertexInputAttributeDescription2EXT {
16698 VkStructureType sType;
16699 void* pNext;
16700 uint32_t location;
16701 uint32_t binding;
16702 VkFormat format;
16703 uint32_t offset;
16704} VkVertexInputAttributeDescription2EXT;
16705
16706typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
16707
16708#ifndef VK_NO_PROTOTYPES
16709VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT(
16710 VkCommandBuffer commandBuffer,
16711 uint32_t vertexBindingDescriptionCount,
16712 const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions,
16713 uint32_t vertexAttributeDescriptionCount,
16714 const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
16715#endif
16716
16717
16718// VK_EXT_physical_device_drm is a preprocessor guard. Do not pass it to API calls.
16719#define VK_EXT_physical_device_drm 1
16720#define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
16721#define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
16722typedef struct VkPhysicalDeviceDrmPropertiesEXT {
16723 VkStructureType sType;
16724 void* pNext;
16725 VkBool32 hasPrimary;
16726 VkBool32 hasRender;
16727 int64_t primaryMajor;
16728 int64_t primaryMinor;
16729 int64_t renderMajor;
16730 int64_t renderMinor;
16731} VkPhysicalDeviceDrmPropertiesEXT;
16732
16733
16734
16735// VK_EXT_device_address_binding_report is a preprocessor guard. Do not pass it to API calls.
16736#define VK_EXT_device_address_binding_report 1
16737#define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1
16738#define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report"
16739
16740typedef enum VkDeviceAddressBindingTypeEXT {
16741 VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0,
16742 VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1,
16743 VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
16744} VkDeviceAddressBindingTypeEXT;
16745
16746typedef enum VkDeviceAddressBindingFlagBitsEXT {
16747 VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0x00000001,
16748 VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16749} VkDeviceAddressBindingFlagBitsEXT;
16750typedef VkFlags VkDeviceAddressBindingFlagsEXT;
16751typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT {
16752 VkStructureType sType;
16753 void* pNext;
16754 VkBool32 reportAddressBinding;
16755} VkPhysicalDeviceAddressBindingReportFeaturesEXT;
16756
16757typedef struct VkDeviceAddressBindingCallbackDataEXT {
16758 VkStructureType sType;
16759 void* pNext;
16760 VkDeviceAddressBindingFlagsEXT flags;
16761 VkDeviceAddress baseAddress;
16762 VkDeviceSize size;
16763 VkDeviceAddressBindingTypeEXT bindingType;
16764} VkDeviceAddressBindingCallbackDataEXT;
16765
16766
16767
16768// VK_EXT_depth_clip_control is a preprocessor guard. Do not pass it to API calls.
16769#define VK_EXT_depth_clip_control 1
16770#define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
16771#define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
16772typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT {
16773 VkStructureType sType;
16774 void* pNext;
16775 VkBool32 depthClipControl;
16776} VkPhysicalDeviceDepthClipControlFeaturesEXT;
16777
16778typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT {
16779 VkStructureType sType;
16780 const void* pNext;
16781 VkBool32 negativeOneToOne;
16782} VkPipelineViewportDepthClipControlCreateInfoEXT;
16783
16784
16785
16786// VK_EXT_primitive_topology_list_restart is a preprocessor guard. Do not pass it to API calls.
16787#define VK_EXT_primitive_topology_list_restart 1
16788#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
16789#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
16790typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
16791 VkStructureType sType;
16792 void* pNext;
16793 VkBool32 primitiveTopologyListRestart;
16794 VkBool32 primitiveTopologyPatchListRestart;
16795} VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
16796
16797
16798
16799// VK_HUAWEI_subpass_shading is a preprocessor guard. Do not pass it to API calls.
16800#define VK_HUAWEI_subpass_shading 1
16801#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 3
16802#define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
16803typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
16804 VkStructureType sType;
16805 void* pNext;
16806 VkRenderPass renderPass;
16807 uint32_t subpass;
16808} VkSubpassShadingPipelineCreateInfoHUAWEI;
16809
16810typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI {
16811 VkStructureType sType;
16812 void* pNext;
16813 VkBool32 subpassShading;
16814} VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
16815
16816typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
16817 VkStructureType sType;
16818 void* pNext;
16819 uint32_t maxSubpassShadingWorkgroupSizeAspectRatio;
16820} VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
16821
16822typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
16823typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
16824
16825#ifndef VK_NO_PROTOTYPES
16826VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
16827 VkDevice device,
16828 VkRenderPass renderpass,
16829 VkExtent2D* pMaxWorkgroupSize);
16830
16831VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
16832 VkCommandBuffer commandBuffer);
16833#endif
16834
16835
16836// VK_HUAWEI_invocation_mask is a preprocessor guard. Do not pass it to API calls.
16837#define VK_HUAWEI_invocation_mask 1
16838#define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
16839#define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
16840typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
16841 VkStructureType sType;
16842 void* pNext;
16843 VkBool32 invocationMask;
16844} VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
16845
16846typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
16847
16848#ifndef VK_NO_PROTOTYPES
16849VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
16850 VkCommandBuffer commandBuffer,
16851 VkImageView imageView,
16852 VkImageLayout imageLayout);
16853#endif
16854
16855
16856// VK_NV_external_memory_rdma is a preprocessor guard. Do not pass it to API calls.
16857#define VK_NV_external_memory_rdma 1
16858typedef void* VkRemoteAddressNV;
16859#define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
16860#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
16861typedef struct VkMemoryGetRemoteAddressInfoNV {
16862 VkStructureType sType;
16863 const void* pNext;
16864 VkDeviceMemory memory;
16865 VkExternalMemoryHandleTypeFlagBits handleType;
16866} VkMemoryGetRemoteAddressInfoNV;
16867
16868typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
16869 VkStructureType sType;
16870 void* pNext;
16871 VkBool32 externalMemoryRDMA;
16872} VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
16873
16874typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
16875
16876#ifndef VK_NO_PROTOTYPES
16877VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
16878 VkDevice device,
16879 const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo,
16880 VkRemoteAddressNV* pAddress);
16881#endif
16882
16883
16884// VK_EXT_pipeline_properties is a preprocessor guard. Do not pass it to API calls.
16885#define VK_EXT_pipeline_properties 1
16886#define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
16887#define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
16888typedef VkPipelineInfoKHR VkPipelineInfoEXT;
16889
16890typedef struct VkPipelinePropertiesIdentifierEXT {
16891 VkStructureType sType;
16892 void* pNext;
16893 uint8_t pipelineIdentifier[VK_UUID_SIZE];
16894} VkPipelinePropertiesIdentifierEXT;
16895
16896typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT {
16897 VkStructureType sType;
16898 void* pNext;
16899 VkBool32 pipelinePropertiesIdentifier;
16900} VkPhysicalDevicePipelinePropertiesFeaturesEXT;
16901
16902typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
16903
16904#ifndef VK_NO_PROTOTYPES
16905VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT(
16906 VkDevice device,
16907 const VkPipelineInfoEXT* pPipelineInfo,
16908 VkBaseOutStructure* pPipelineProperties);
16909#endif
16910
16911
16912// VK_EXT_frame_boundary is a preprocessor guard. Do not pass it to API calls.
16913#define VK_EXT_frame_boundary 1
16914#define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1
16915#define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary"
16916
16917typedef enum VkFrameBoundaryFlagBitsEXT {
16918 VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001,
16919 VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16920} VkFrameBoundaryFlagBitsEXT;
16921typedef VkFlags VkFrameBoundaryFlagsEXT;
16922typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT {
16923 VkStructureType sType;
16924 void* pNext;
16925 VkBool32 frameBoundary;
16926} VkPhysicalDeviceFrameBoundaryFeaturesEXT;
16927
16928typedef struct VkFrameBoundaryEXT {
16929 VkStructureType sType;
16930 const void* pNext;
16931 VkFrameBoundaryFlagsEXT flags;
16932 uint64_t frameID;
16933 uint32_t imageCount;
16934 const VkImage* pImages;
16935 uint32_t bufferCount;
16936 const VkBuffer* pBuffers;
16937 uint64_t tagName;
16938 size_t tagSize;
16939 const void* pTag;
16940} VkFrameBoundaryEXT;
16941
16942
16943
16944// VK_EXT_multisampled_render_to_single_sampled is a preprocessor guard. Do not pass it to API calls.
16945#define VK_EXT_multisampled_render_to_single_sampled 1
16946#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1
16947#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
16948typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
16949 VkStructureType sType;
16950 void* pNext;
16951 VkBool32 multisampledRenderToSingleSampled;
16952} VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
16953
16954typedef struct VkSubpassResolvePerformanceQueryEXT {
16955 VkStructureType sType;
16956 void* pNext;
16957 VkBool32 optimal;
16958} VkSubpassResolvePerformanceQueryEXT;
16959
16960typedef struct VkMultisampledRenderToSingleSampledInfoEXT {
16961 VkStructureType sType;
16962 const void* pNext;
16963 VkBool32 multisampledRenderToSingleSampledEnable;
16964 VkSampleCountFlagBits rasterizationSamples;
16965} VkMultisampledRenderToSingleSampledInfoEXT;
16966
16967
16968
16969// VK_EXT_extended_dynamic_state2 is a preprocessor guard. Do not pass it to API calls.
16970#define VK_EXT_extended_dynamic_state2 1
16971#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
16972#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
16973typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT {
16974 VkStructureType sType;
16975 void* pNext;
16976 VkBool32 extendedDynamicState2;
16977 VkBool32 extendedDynamicState2LogicOp;
16978 VkBool32 extendedDynamicState2PatchControlPoints;
16979} VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
16980
16981typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
16982typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
16983typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
16984typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp);
16985typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
16986
16987#ifndef VK_NO_PROTOTYPES
16988VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT(
16989 VkCommandBuffer commandBuffer,
16990 uint32_t patchControlPoints);
16991
16992VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT(
16993 VkCommandBuffer commandBuffer,
16994 VkBool32 rasterizerDiscardEnable);
16995
16996VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT(
16997 VkCommandBuffer commandBuffer,
16998 VkBool32 depthBiasEnable);
16999
17000VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT(
17001 VkCommandBuffer commandBuffer,
17002 VkLogicOp logicOp);
17003
17004VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT(
17005 VkCommandBuffer commandBuffer,
17006 VkBool32 primitiveRestartEnable);
17007#endif
17008
17009
17010// VK_EXT_color_write_enable is a preprocessor guard. Do not pass it to API calls.
17011#define VK_EXT_color_write_enable 1
17012#define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
17013#define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
17014typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT {
17015 VkStructureType sType;
17016 void* pNext;
17017 VkBool32 colorWriteEnable;
17018} VkPhysicalDeviceColorWriteEnableFeaturesEXT;
17019
17020typedef struct VkPipelineColorWriteCreateInfoEXT {
17021 VkStructureType sType;
17022 const void* pNext;
17023 uint32_t attachmentCount;
17024 const VkBool32* pColorWriteEnables;
17025} VkPipelineColorWriteCreateInfoEXT;
17026
17027typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables);
17028
17029#ifndef VK_NO_PROTOTYPES
17030VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteEnableEXT(
17031 VkCommandBuffer commandBuffer,
17032 uint32_t attachmentCount,
17033 const VkBool32* pColorWriteEnables);
17034#endif
17035
17036
17037// VK_EXT_primitives_generated_query is a preprocessor guard. Do not pass it to API calls.
17038#define VK_EXT_primitives_generated_query 1
17039#define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
17040#define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
17041typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
17042 VkStructureType sType;
17043 void* pNext;
17044 VkBool32 primitivesGeneratedQuery;
17045 VkBool32 primitivesGeneratedQueryWithRasterizerDiscard;
17046 VkBool32 primitivesGeneratedQueryWithNonZeroStreams;
17047} VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
17048
17049
17050
17051// VK_EXT_global_priority_query is a preprocessor guard. Do not pass it to API calls.
17052#define VK_EXT_global_priority_query 1
17053#define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
17054#define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
17055#define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT VK_MAX_GLOBAL_PRIORITY_SIZE_KHR
17056typedef VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
17057
17058typedef VkQueueFamilyGlobalPriorityPropertiesKHR VkQueueFamilyGlobalPriorityPropertiesEXT;
17059
17060
17061
17062// VK_EXT_image_view_min_lod is a preprocessor guard. Do not pass it to API calls.
17063#define VK_EXT_image_view_min_lod 1
17064#define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
17065#define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
17066typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT {
17067 VkStructureType sType;
17068 void* pNext;
17069 VkBool32 minLod;
17070} VkPhysicalDeviceImageViewMinLodFeaturesEXT;
17071
17072typedef struct VkImageViewMinLodCreateInfoEXT {
17073 VkStructureType sType;
17074 const void* pNext;
17075 float minLod;
17076} VkImageViewMinLodCreateInfoEXT;
17077
17078
17079
17080// VK_EXT_multi_draw is a preprocessor guard. Do not pass it to API calls.
17081#define VK_EXT_multi_draw 1
17082#define VK_EXT_MULTI_DRAW_SPEC_VERSION 1
17083#define VK_EXT_MULTI_DRAW_EXTENSION_NAME "VK_EXT_multi_draw"
17084typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT {
17085 VkStructureType sType;
17086 void* pNext;
17087 VkBool32 multiDraw;
17088} VkPhysicalDeviceMultiDrawFeaturesEXT;
17089
17090typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT {
17091 VkStructureType sType;
17092 void* pNext;
17093 uint32_t maxMultiDrawCount;
17094} VkPhysicalDeviceMultiDrawPropertiesEXT;
17095
17096typedef struct VkMultiDrawInfoEXT {
17097 uint32_t firstVertex;
17098 uint32_t vertexCount;
17099} VkMultiDrawInfoEXT;
17100
17101typedef struct VkMultiDrawIndexedInfoEXT {
17102 uint32_t firstIndex;
17103 uint32_t indexCount;
17104 int32_t vertexOffset;
17105} VkMultiDrawIndexedInfoEXT;
17106
17107typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
17108typedef 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);
17109
17110#ifndef VK_NO_PROTOTYPES
17111VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT(
17112 VkCommandBuffer commandBuffer,
17113 uint32_t drawCount,
17114 const VkMultiDrawInfoEXT* pVertexInfo,
17115 uint32_t instanceCount,
17116 uint32_t firstInstance,
17117 uint32_t stride);
17118
17119VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
17120 VkCommandBuffer commandBuffer,
17121 uint32_t drawCount,
17122 const VkMultiDrawIndexedInfoEXT* pIndexInfo,
17123 uint32_t instanceCount,
17124 uint32_t firstInstance,
17125 uint32_t stride,
17126 const int32_t* pVertexOffset);
17127#endif
17128
17129
17130// VK_EXT_image_2d_view_of_3d is a preprocessor guard. Do not pass it to API calls.
17131#define VK_EXT_image_2d_view_of_3d 1
17132#define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
17133#define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
17134typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT {
17135 VkStructureType sType;
17136 void* pNext;
17137 VkBool32 image2DViewOf3D;
17138 VkBool32 sampler2DViewOf3D;
17139} VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
17140
17141
17142
17143// VK_EXT_shader_tile_image is a preprocessor guard. Do not pass it to API calls.
17144#define VK_EXT_shader_tile_image 1
17145#define VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION 1
17146#define VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME "VK_EXT_shader_tile_image"
17147typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT {
17148 VkStructureType sType;
17149 void* pNext;
17150 VkBool32 shaderTileImageColorReadAccess;
17151 VkBool32 shaderTileImageDepthReadAccess;
17152 VkBool32 shaderTileImageStencilReadAccess;
17153} VkPhysicalDeviceShaderTileImageFeaturesEXT;
17154
17155typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT {
17156 VkStructureType sType;
17157 void* pNext;
17158 VkBool32 shaderTileImageCoherentReadAccelerated;
17159 VkBool32 shaderTileImageReadSampleFromPixelRateInvocation;
17160 VkBool32 shaderTileImageReadFromHelperInvocation;
17161} VkPhysicalDeviceShaderTileImagePropertiesEXT;
17162
17163
17164
17165// VK_EXT_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
17166#define VK_EXT_opacity_micromap 1
17167VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT)
17168#define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2
17169#define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap"
17170
17171typedef enum VkMicromapTypeEXT {
17172 VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0,
17173#ifdef VK_ENABLE_BETA_EXTENSIONS
17174 VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV = 1000397000,
17175#endif
17176 VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
17177} VkMicromapTypeEXT;
17178
17179typedef enum VkBuildMicromapModeEXT {
17180 VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0,
17181 VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
17182} VkBuildMicromapModeEXT;
17183
17184typedef enum VkCopyMicromapModeEXT {
17185 VK_COPY_MICROMAP_MODE_CLONE_EXT = 0,
17186 VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1,
17187 VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2,
17188 VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3,
17189 VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
17190} VkCopyMicromapModeEXT;
17191
17192typedef enum VkOpacityMicromapFormatEXT {
17193 VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1,
17194 VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2,
17195 VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF
17196} VkOpacityMicromapFormatEXT;
17197
17198typedef enum VkOpacityMicromapSpecialIndexEXT {
17199 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1,
17200 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2,
17201 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3,
17202 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4,
17203 VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 0x7FFFFFFF
17204} VkOpacityMicromapSpecialIndexEXT;
17205
17206typedef enum VkAccelerationStructureCompatibilityKHR {
17207 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
17208 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
17209 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
17210} VkAccelerationStructureCompatibilityKHR;
17211
17212typedef enum VkAccelerationStructureBuildTypeKHR {
17213 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
17214 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
17215 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
17216 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
17217} VkAccelerationStructureBuildTypeKHR;
17218
17219typedef enum VkBuildMicromapFlagBitsEXT {
17220 VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x00000001,
17221 VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x00000002,
17222 VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0x00000004,
17223 VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17224} VkBuildMicromapFlagBitsEXT;
17225typedef VkFlags VkBuildMicromapFlagsEXT;
17226
17227typedef enum VkMicromapCreateFlagBitsEXT {
17228 VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000001,
17229 VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17230} VkMicromapCreateFlagBitsEXT;
17231typedef VkFlags VkMicromapCreateFlagsEXT;
17232typedef struct VkMicromapUsageEXT {
17233 uint32_t count;
17234 uint32_t subdivisionLevel;
17235 uint32_t format;
17236} VkMicromapUsageEXT;
17237
17238typedef union VkDeviceOrHostAddressKHR {
17239 VkDeviceAddress deviceAddress;
17240 void* hostAddress;
17241} VkDeviceOrHostAddressKHR;
17242
17243typedef struct VkMicromapBuildInfoEXT {
17244 VkStructureType sType;
17245 const void* pNext;
17246 VkMicromapTypeEXT type;
17247 VkBuildMicromapFlagsEXT flags;
17248 VkBuildMicromapModeEXT mode;
17249 VkMicromapEXT dstMicromap;
17250 uint32_t usageCountsCount;
17251 const VkMicromapUsageEXT* pUsageCounts;
17252 const VkMicromapUsageEXT* const* ppUsageCounts;
17253 VkDeviceOrHostAddressConstKHR data;
17254 VkDeviceOrHostAddressKHR scratchData;
17255 VkDeviceOrHostAddressConstKHR triangleArray;
17256 VkDeviceSize triangleArrayStride;
17257} VkMicromapBuildInfoEXT;
17258
17259typedef struct VkMicromapCreateInfoEXT {
17260 VkStructureType sType;
17261 const void* pNext;
17262 VkMicromapCreateFlagsEXT createFlags;
17263 VkBuffer buffer;
17264 VkDeviceSize offset;
17265 VkDeviceSize size;
17266 VkMicromapTypeEXT type;
17267 VkDeviceAddress deviceAddress;
17268} VkMicromapCreateInfoEXT;
17269
17270typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT {
17271 VkStructureType sType;
17272 void* pNext;
17273 VkBool32 micromap;
17274 VkBool32 micromapCaptureReplay;
17275 VkBool32 micromapHostCommands;
17276} VkPhysicalDeviceOpacityMicromapFeaturesEXT;
17277
17278typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT {
17279 VkStructureType sType;
17280 void* pNext;
17281 uint32_t maxOpacity2StateSubdivisionLevel;
17282 uint32_t maxOpacity4StateSubdivisionLevel;
17283} VkPhysicalDeviceOpacityMicromapPropertiesEXT;
17284
17285typedef struct VkMicromapVersionInfoEXT {
17286 VkStructureType sType;
17287 const void* pNext;
17288 const uint8_t* pVersionData;
17289} VkMicromapVersionInfoEXT;
17290
17291typedef struct VkCopyMicromapToMemoryInfoEXT {
17292 VkStructureType sType;
17293 const void* pNext;
17294 VkMicromapEXT src;
17295 VkDeviceOrHostAddressKHR dst;
17296 VkCopyMicromapModeEXT mode;
17297} VkCopyMicromapToMemoryInfoEXT;
17298
17299typedef struct VkCopyMemoryToMicromapInfoEXT {
17300 VkStructureType sType;
17301 const void* pNext;
17302 VkDeviceOrHostAddressConstKHR src;
17303 VkMicromapEXT dst;
17304 VkCopyMicromapModeEXT mode;
17305} VkCopyMemoryToMicromapInfoEXT;
17306
17307typedef struct VkCopyMicromapInfoEXT {
17308 VkStructureType sType;
17309 const void* pNext;
17310 VkMicromapEXT src;
17311 VkMicromapEXT dst;
17312 VkCopyMicromapModeEXT mode;
17313} VkCopyMicromapInfoEXT;
17314
17315typedef struct VkMicromapBuildSizesInfoEXT {
17316 VkStructureType sType;
17317 const void* pNext;
17318 VkDeviceSize micromapSize;
17319 VkDeviceSize buildScratchSize;
17320 VkBool32 discardable;
17321} VkMicromapBuildSizesInfoEXT;
17322
17323typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT {
17324 VkStructureType sType;
17325 void* pNext;
17326 VkIndexType indexType;
17327 VkDeviceOrHostAddressConstKHR indexBuffer;
17328 VkDeviceSize indexStride;
17329 uint32_t baseTriangle;
17330 uint32_t usageCountsCount;
17331 const VkMicromapUsageEXT* pUsageCounts;
17332 const VkMicromapUsageEXT* const* ppUsageCounts;
17333 VkMicromapEXT micromap;
17334} VkAccelerationStructureTrianglesOpacityMicromapEXT;
17335
17336typedef struct VkMicromapTriangleEXT {
17337 uint32_t dataOffset;
17338 uint16_t subdivisionLevel;
17339 uint16_t format;
17340} VkMicromapTriangleEXT;
17341
17342typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice device, const VkMicromapCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkMicromapEXT* pMicromap);
17343typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator);
17344typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
17345typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
17346typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo);
17347typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo);
17348typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo);
17349typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
17350typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo);
17351typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo);
17352typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo);
17353typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
17354typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
17355typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkMicromapBuildInfoEXT* pBuildInfo, VkMicromapBuildSizesInfoEXT* pSizeInfo);
17356
17357#ifndef VK_NO_PROTOTYPES
17358VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT(
17359 VkDevice device,
17360 const VkMicromapCreateInfoEXT* pCreateInfo,
17361 const VkAllocationCallbacks* pAllocator,
17362 VkMicromapEXT* pMicromap);
17363
17364VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT(
17365 VkDevice device,
17366 VkMicromapEXT micromap,
17367 const VkAllocationCallbacks* pAllocator);
17368
17369VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT(
17370 VkCommandBuffer commandBuffer,
17371 uint32_t infoCount,
17372 const VkMicromapBuildInfoEXT* pInfos);
17373
17374VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT(
17375 VkDevice device,
17376 VkDeferredOperationKHR deferredOperation,
17377 uint32_t infoCount,
17378 const VkMicromapBuildInfoEXT* pInfos);
17379
17380VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT(
17381 VkDevice device,
17382 VkDeferredOperationKHR deferredOperation,
17383 const VkCopyMicromapInfoEXT* pInfo);
17384
17385VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT(
17386 VkDevice device,
17387 VkDeferredOperationKHR deferredOperation,
17388 const VkCopyMicromapToMemoryInfoEXT* pInfo);
17389
17390VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT(
17391 VkDevice device,
17392 VkDeferredOperationKHR deferredOperation,
17393 const VkCopyMemoryToMicromapInfoEXT* pInfo);
17394
17395VKAPI_ATTR VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(
17396 VkDevice device,
17397 uint32_t micromapCount,
17398 const VkMicromapEXT* pMicromaps,
17399 VkQueryType queryType,
17400 size_t dataSize,
17401 void* pData,
17402 size_t stride);
17403
17404VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapEXT(
17405 VkCommandBuffer commandBuffer,
17406 const VkCopyMicromapInfoEXT* pInfo);
17407
17408VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT(
17409 VkCommandBuffer commandBuffer,
17410 const VkCopyMicromapToMemoryInfoEXT* pInfo);
17411
17412VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT(
17413 VkCommandBuffer commandBuffer,
17414 const VkCopyMemoryToMicromapInfoEXT* pInfo);
17415
17416VKAPI_ATTR void VKAPI_CALL vkCmdWriteMicromapsPropertiesEXT(
17417 VkCommandBuffer commandBuffer,
17418 uint32_t micromapCount,
17419 const VkMicromapEXT* pMicromaps,
17420 VkQueryType queryType,
17421 VkQueryPool queryPool,
17422 uint32_t firstQuery);
17423
17424VKAPI_ATTR void VKAPI_CALL vkGetDeviceMicromapCompatibilityEXT(
17425 VkDevice device,
17426 const VkMicromapVersionInfoEXT* pVersionInfo,
17427 VkAccelerationStructureCompatibilityKHR* pCompatibility);
17428
17429VKAPI_ATTR void VKAPI_CALL vkGetMicromapBuildSizesEXT(
17430 VkDevice device,
17431 VkAccelerationStructureBuildTypeKHR buildType,
17432 const VkMicromapBuildInfoEXT* pBuildInfo,
17433 VkMicromapBuildSizesInfoEXT* pSizeInfo);
17434#endif
17435
17436
17437// VK_EXT_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
17438#define VK_EXT_load_store_op_none 1
17439#define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
17440#define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
17441
17442
17443// VK_HUAWEI_cluster_culling_shader is a preprocessor guard. Do not pass it to API calls.
17444#define VK_HUAWEI_cluster_culling_shader 1
17445#define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 3
17446#define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader"
17447typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
17448 VkStructureType sType;
17449 void* pNext;
17450 VkBool32 clustercullingShader;
17451 VkBool32 multiviewClusterCullingShader;
17452} VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
17453
17454typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
17455 VkStructureType sType;
17456 void* pNext;
17457 uint32_t maxWorkGroupCount[3];
17458 uint32_t maxWorkGroupSize[3];
17459 uint32_t maxOutputClusterCount;
17460 VkDeviceSize indirectBufferOffsetAlignment;
17461} VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
17462
17463typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
17464 VkStructureType sType;
17465 void* pNext;
17466 VkBool32 clusterShadingRate;
17467} VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
17468
17469typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterHUAWEI)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
17470typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
17471
17472#ifndef VK_NO_PROTOTYPES
17473VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterHUAWEI(
17474 VkCommandBuffer commandBuffer,
17475 uint32_t groupCountX,
17476 uint32_t groupCountY,
17477 uint32_t groupCountZ);
17478
17479VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI(
17480 VkCommandBuffer commandBuffer,
17481 VkBuffer buffer,
17482 VkDeviceSize offset);
17483#endif
17484
17485
17486// VK_EXT_border_color_swizzle is a preprocessor guard. Do not pass it to API calls.
17487#define VK_EXT_border_color_swizzle 1
17488#define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
17489#define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
17490typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT {
17491 VkStructureType sType;
17492 void* pNext;
17493 VkBool32 borderColorSwizzle;
17494 VkBool32 borderColorSwizzleFromImage;
17495} VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
17496
17497typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT {
17498 VkStructureType sType;
17499 const void* pNext;
17500 VkComponentMapping components;
17501 VkBool32 srgb;
17502} VkSamplerBorderColorComponentMappingCreateInfoEXT;
17503
17504
17505
17506// VK_EXT_pageable_device_local_memory is a preprocessor guard. Do not pass it to API calls.
17507#define VK_EXT_pageable_device_local_memory 1
17508#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
17509#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
17510typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
17511 VkStructureType sType;
17512 void* pNext;
17513 VkBool32 pageableDeviceLocalMemory;
17514} VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
17515
17516typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice device, VkDeviceMemory memory, float priority);
17517
17518#ifndef VK_NO_PROTOTYPES
17519VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
17520 VkDevice device,
17521 VkDeviceMemory memory,
17522 float priority);
17523#endif
17524
17525
17526// VK_ARM_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
17527#define VK_ARM_shader_core_properties 1
17528#define VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
17529#define VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_ARM_shader_core_properties"
17530typedef struct VkPhysicalDeviceShaderCorePropertiesARM {
17531 VkStructureType sType;
17532 void* pNext;
17533 uint32_t pixelRate;
17534 uint32_t texelRate;
17535 uint32_t fmaRate;
17536} VkPhysicalDeviceShaderCorePropertiesARM;
17537
17538
17539
17540// VK_ARM_scheduling_controls is a preprocessor guard. Do not pass it to API calls.
17541#define VK_ARM_scheduling_controls 1
17542#define VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION 1
17543#define VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME "VK_ARM_scheduling_controls"
17544typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM;
17545
17546// Flag bits for VkPhysicalDeviceSchedulingControlsFlagBitsARM
17547typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagBitsARM;
17548static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = 0x00000001ULL;
17549
17550typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM {
17551 VkStructureType sType;
17552 void* pNext;
17553 uint32_t shaderCoreCount;
17554} VkDeviceQueueShaderCoreControlCreateInfoARM;
17555
17556typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM {
17557 VkStructureType sType;
17558 void* pNext;
17559 VkBool32 schedulingControls;
17560} VkPhysicalDeviceSchedulingControlsFeaturesARM;
17561
17562typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM {
17563 VkStructureType sType;
17564 void* pNext;
17565 VkPhysicalDeviceSchedulingControlsFlagsARM schedulingControlsFlags;
17566} VkPhysicalDeviceSchedulingControlsPropertiesARM;
17567
17568
17569
17570// VK_EXT_image_sliced_view_of_3d is a preprocessor guard. Do not pass it to API calls.
17571#define VK_EXT_image_sliced_view_of_3d 1
17572#define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION 1
17573#define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_sliced_view_of_3d"
17574#define VK_REMAINING_3D_SLICES_EXT (~0U)
17575typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
17576 VkStructureType sType;
17577 void* pNext;
17578 VkBool32 imageSlicedViewOf3D;
17579} VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
17580
17581typedef struct VkImageViewSlicedCreateInfoEXT {
17582 VkStructureType sType;
17583 const void* pNext;
17584 uint32_t sliceOffset;
17585 uint32_t sliceCount;
17586} VkImageViewSlicedCreateInfoEXT;
17587
17588
17589
17590// VK_VALVE_descriptor_set_host_mapping is a preprocessor guard. Do not pass it to API calls.
17591#define VK_VALVE_descriptor_set_host_mapping 1
17592#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
17593#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
17594typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
17595 VkStructureType sType;
17596 void* pNext;
17597 VkBool32 descriptorSetHostMapping;
17598} VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
17599
17600typedef struct VkDescriptorSetBindingReferenceVALVE {
17601 VkStructureType sType;
17602 const void* pNext;
17603 VkDescriptorSetLayout descriptorSetLayout;
17604 uint32_t binding;
17605} VkDescriptorSetBindingReferenceVALVE;
17606
17607typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE {
17608 VkStructureType sType;
17609 void* pNext;
17610 size_t descriptorOffset;
17611 uint32_t descriptorSize;
17612} VkDescriptorSetLayoutHostMappingInfoVALVE;
17613
17614typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
17615typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
17616
17617#ifndef VK_NO_PROTOTYPES
17618VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE(
17619 VkDevice device,
17620 const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
17621 VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
17622
17623VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
17624 VkDevice device,
17625 VkDescriptorSet descriptorSet,
17626 void** ppData);
17627#endif
17628
17629
17630// VK_EXT_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
17631#define VK_EXT_depth_clamp_zero_one 1
17632#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
17633#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one"
17634typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT {
17635 VkStructureType sType;
17636 void* pNext;
17637 VkBool32 depthClampZeroOne;
17638} VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
17639
17640
17641
17642// VK_EXT_non_seamless_cube_map is a preprocessor guard. Do not pass it to API calls.
17643#define VK_EXT_non_seamless_cube_map 1
17644#define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1
17645#define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
17646typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
17647 VkStructureType sType;
17648 void* pNext;
17649 VkBool32 nonSeamlessCubeMap;
17650} VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
17651
17652
17653
17654// VK_ARM_render_pass_striped is a preprocessor guard. Do not pass it to API calls.
17655#define VK_ARM_render_pass_striped 1
17656#define VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION 1
17657#define VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME "VK_ARM_render_pass_striped"
17658typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM {
17659 VkStructureType sType;
17660 void* pNext;
17661 VkBool32 renderPassStriped;
17662} VkPhysicalDeviceRenderPassStripedFeaturesARM;
17663
17664typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM {
17665 VkStructureType sType;
17666 void* pNext;
17667 VkExtent2D renderPassStripeGranularity;
17668 uint32_t maxRenderPassStripes;
17669} VkPhysicalDeviceRenderPassStripedPropertiesARM;
17670
17671typedef struct VkRenderPassStripeInfoARM {
17672 VkStructureType sType;
17673 const void* pNext;
17674 VkRect2D stripeArea;
17675} VkRenderPassStripeInfoARM;
17676
17677typedef struct VkRenderPassStripeBeginInfoARM {
17678 VkStructureType sType;
17679 const void* pNext;
17680 uint32_t stripeInfoCount;
17681 const VkRenderPassStripeInfoARM* pStripeInfos;
17682} VkRenderPassStripeBeginInfoARM;
17683
17684typedef struct VkRenderPassStripeSubmitInfoARM {
17685 VkStructureType sType;
17686 const void* pNext;
17687 uint32_t stripeSemaphoreInfoCount;
17688 const VkSemaphoreSubmitInfo* pStripeSemaphoreInfos;
17689} VkRenderPassStripeSubmitInfoARM;
17690
17691
17692
17693// VK_QCOM_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
17694#define VK_QCOM_fragment_density_map_offset 1
17695#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1
17696#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
17697typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM {
17698 VkStructureType sType;
17699 void* pNext;
17700 VkBool32 fragmentDensityMapOffset;
17701} VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
17702
17703typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM {
17704 VkStructureType sType;
17705 void* pNext;
17706 VkExtent2D fragmentDensityOffsetGranularity;
17707} VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
17708
17709typedef struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM {
17710 VkStructureType sType;
17711 const void* pNext;
17712 uint32_t fragmentDensityOffsetCount;
17713 const VkOffset2D* pFragmentDensityOffsets;
17714} VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
17715
17716
17717
17718// VK_NV_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
17719#define VK_NV_copy_memory_indirect 1
17720#define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
17721#define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect"
17722typedef struct VkCopyMemoryIndirectCommandNV {
17723 VkDeviceAddress srcAddress;
17724 VkDeviceAddress dstAddress;
17725 VkDeviceSize size;
17726} VkCopyMemoryIndirectCommandNV;
17727
17728typedef struct VkCopyMemoryToImageIndirectCommandNV {
17729 VkDeviceAddress srcAddress;
17730 uint32_t bufferRowLength;
17731 uint32_t bufferImageHeight;
17732 VkImageSubresourceLayers imageSubresource;
17733 VkOffset3D imageOffset;
17734 VkExtent3D imageExtent;
17735} VkCopyMemoryToImageIndirectCommandNV;
17736
17737typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV {
17738 VkStructureType sType;
17739 void* pNext;
17740 VkBool32 indirectCopy;
17741} VkPhysicalDeviceCopyMemoryIndirectFeaturesNV;
17742
17743typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV {
17744 VkStructureType sType;
17745 void* pNext;
17746 VkQueueFlags supportedQueues;
17747} VkPhysicalDeviceCopyMemoryIndirectPropertiesNV;
17748
17749typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride);
17750typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources);
17751
17752#ifndef VK_NO_PROTOTYPES
17753VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectNV(
17754 VkCommandBuffer commandBuffer,
17755 VkDeviceAddress copyBufferAddress,
17756 uint32_t copyCount,
17757 uint32_t stride);
17758
17759VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectNV(
17760 VkCommandBuffer commandBuffer,
17761 VkDeviceAddress copyBufferAddress,
17762 uint32_t copyCount,
17763 uint32_t stride,
17764 VkImage dstImage,
17765 VkImageLayout dstImageLayout,
17766 const VkImageSubresourceLayers* pImageSubresources);
17767#endif
17768
17769
17770// VK_NV_memory_decompression is a preprocessor guard. Do not pass it to API calls.
17771#define VK_NV_memory_decompression 1
17772#define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1
17773#define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression"
17774
17775// Flag bits for VkMemoryDecompressionMethodFlagBitsNV
17776typedef VkFlags64 VkMemoryDecompressionMethodFlagBitsNV;
17777static const VkMemoryDecompressionMethodFlagBitsNV VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL;
17778
17779typedef VkFlags64 VkMemoryDecompressionMethodFlagsNV;
17780typedef struct VkDecompressMemoryRegionNV {
17781 VkDeviceAddress srcAddress;
17782 VkDeviceAddress dstAddress;
17783 VkDeviceSize compressedSize;
17784 VkDeviceSize decompressedSize;
17785 VkMemoryDecompressionMethodFlagsNV decompressionMethod;
17786} VkDecompressMemoryRegionNV;
17787
17788typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesNV {
17789 VkStructureType sType;
17790 void* pNext;
17791 VkBool32 memoryDecompression;
17792} VkPhysicalDeviceMemoryDecompressionFeaturesNV;
17793
17794typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV {
17795 VkStructureType sType;
17796 void* pNext;
17797 VkMemoryDecompressionMethodFlagsNV decompressionMethods;
17798 uint64_t maxDecompressionIndirectCount;
17799} VkPhysicalDeviceMemoryDecompressionPropertiesNV;
17800
17801typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryNV)(VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
17802typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride);
17803
17804#ifndef VK_NO_PROTOTYPES
17805VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryNV(
17806 VkCommandBuffer commandBuffer,
17807 uint32_t decompressRegionCount,
17808 const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
17809
17810VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountNV(
17811 VkCommandBuffer commandBuffer,
17812 VkDeviceAddress indirectCommandsAddress,
17813 VkDeviceAddress indirectCommandsCountAddress,
17814 uint32_t stride);
17815#endif
17816
17817
17818// VK_NV_device_generated_commands_compute is a preprocessor guard. Do not pass it to API calls.
17819#define VK_NV_device_generated_commands_compute 1
17820#define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION 2
17821#define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME "VK_NV_device_generated_commands_compute"
17822typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
17823 VkStructureType sType;
17824 void* pNext;
17825 VkBool32 deviceGeneratedCompute;
17826 VkBool32 deviceGeneratedComputePipelines;
17827 VkBool32 deviceGeneratedComputeCaptureReplay;
17828} VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
17829
17830typedef struct VkComputePipelineIndirectBufferInfoNV {
17831 VkStructureType sType;
17832 const void* pNext;
17833 VkDeviceAddress deviceAddress;
17834 VkDeviceSize size;
17835 VkDeviceAddress pipelineDeviceAddressCaptureReplay;
17836} VkComputePipelineIndirectBufferInfoNV;
17837
17838typedef struct VkPipelineIndirectDeviceAddressInfoNV {
17839 VkStructureType sType;
17840 const void* pNext;
17841 VkPipelineBindPoint pipelineBindPoint;
17842 VkPipeline pipeline;
17843} VkPipelineIndirectDeviceAddressInfoNV;
17844
17845typedef struct VkBindPipelineIndirectCommandNV {
17846 VkDeviceAddress pipelineAddress;
17847} VkBindPipelineIndirectCommandNV;
17848
17849typedef void (VKAPI_PTR *PFN_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements);
17850typedef void (VKAPI_PTR *PFN_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
17851typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetPipelineIndirectDeviceAddressNV)(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
17852
17853#ifndef VK_NO_PROTOTYPES
17854VKAPI_ATTR void VKAPI_CALL vkGetPipelineIndirectMemoryRequirementsNV(
17855 VkDevice device,
17856 const VkComputePipelineCreateInfo* pCreateInfo,
17857 VkMemoryRequirements2* pMemoryRequirements);
17858
17859VKAPI_ATTR void VKAPI_CALL vkCmdUpdatePipelineIndirectBufferNV(
17860 VkCommandBuffer commandBuffer,
17861 VkPipelineBindPoint pipelineBindPoint,
17862 VkPipeline pipeline);
17863
17864VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetPipelineIndirectDeviceAddressNV(
17865 VkDevice device,
17866 const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
17867#endif
17868
17869
17870// VK_NV_linear_color_attachment is a preprocessor guard. Do not pass it to API calls.
17871#define VK_NV_linear_color_attachment 1
17872#define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
17873#define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
17874typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV {
17875 VkStructureType sType;
17876 void* pNext;
17877 VkBool32 linearColorAttachment;
17878} VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
17879
17880
17881
17882// VK_GOOGLE_surfaceless_query is a preprocessor guard. Do not pass it to API calls.
17883#define VK_GOOGLE_surfaceless_query 1
17884#define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2
17885#define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
17886
17887
17888// VK_EXT_image_compression_control_swapchain is a preprocessor guard. Do not pass it to API calls.
17889#define VK_EXT_image_compression_control_swapchain 1
17890#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
17891#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
17892typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
17893 VkStructureType sType;
17894 void* pNext;
17895 VkBool32 imageCompressionControlSwapchain;
17896} VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
17897
17898
17899
17900// VK_QCOM_image_processing is a preprocessor guard. Do not pass it to API calls.
17901#define VK_QCOM_image_processing 1
17902#define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1
17903#define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
17904typedef struct VkImageViewSampleWeightCreateInfoQCOM {
17905 VkStructureType sType;
17906 const void* pNext;
17907 VkOffset2D filterCenter;
17908 VkExtent2D filterSize;
17909 uint32_t numPhases;
17910} VkImageViewSampleWeightCreateInfoQCOM;
17911
17912typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM {
17913 VkStructureType sType;
17914 void* pNext;
17915 VkBool32 textureSampleWeighted;
17916 VkBool32 textureBoxFilter;
17917 VkBool32 textureBlockMatch;
17918} VkPhysicalDeviceImageProcessingFeaturesQCOM;
17919
17920typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM {
17921 VkStructureType sType;
17922 void* pNext;
17923 uint32_t maxWeightFilterPhases;
17924 VkExtent2D maxWeightFilterDimension;
17925 VkExtent2D maxBlockMatchRegion;
17926 VkExtent2D maxBoxFilterBlockSize;
17927} VkPhysicalDeviceImageProcessingPropertiesQCOM;
17928
17929
17930
17931// VK_EXT_nested_command_buffer is a preprocessor guard. Do not pass it to API calls.
17932#define VK_EXT_nested_command_buffer 1
17933#define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1
17934#define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer"
17935typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT {
17936 VkStructureType sType;
17937 void* pNext;
17938 VkBool32 nestedCommandBuffer;
17939 VkBool32 nestedCommandBufferRendering;
17940 VkBool32 nestedCommandBufferSimultaneousUse;
17941} VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
17942
17943typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT {
17944 VkStructureType sType;
17945 void* pNext;
17946 uint32_t maxCommandBufferNestingLevel;
17947} VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
17948
17949
17950
17951// VK_EXT_external_memory_acquire_unmodified is a preprocessor guard. Do not pass it to API calls.
17952#define VK_EXT_external_memory_acquire_unmodified 1
17953#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1
17954#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified"
17955typedef struct VkExternalMemoryAcquireUnmodifiedEXT {
17956 VkStructureType sType;
17957 const void* pNext;
17958 VkBool32 acquireUnmodifiedMemory;
17959} VkExternalMemoryAcquireUnmodifiedEXT;
17960
17961
17962
17963// VK_EXT_extended_dynamic_state3 is a preprocessor guard. Do not pass it to API calls.
17964#define VK_EXT_extended_dynamic_state3 1
17965#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2
17966#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3"
17967typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT {
17968 VkStructureType sType;
17969 void* pNext;
17970 VkBool32 extendedDynamicState3TessellationDomainOrigin;
17971 VkBool32 extendedDynamicState3DepthClampEnable;
17972 VkBool32 extendedDynamicState3PolygonMode;
17973 VkBool32 extendedDynamicState3RasterizationSamples;
17974 VkBool32 extendedDynamicState3SampleMask;
17975 VkBool32 extendedDynamicState3AlphaToCoverageEnable;
17976 VkBool32 extendedDynamicState3AlphaToOneEnable;
17977 VkBool32 extendedDynamicState3LogicOpEnable;
17978 VkBool32 extendedDynamicState3ColorBlendEnable;
17979 VkBool32 extendedDynamicState3ColorBlendEquation;
17980 VkBool32 extendedDynamicState3ColorWriteMask;
17981 VkBool32 extendedDynamicState3RasterizationStream;
17982 VkBool32 extendedDynamicState3ConservativeRasterizationMode;
17983 VkBool32 extendedDynamicState3ExtraPrimitiveOverestimationSize;
17984 VkBool32 extendedDynamicState3DepthClipEnable;
17985 VkBool32 extendedDynamicState3SampleLocationsEnable;
17986 VkBool32 extendedDynamicState3ColorBlendAdvanced;
17987 VkBool32 extendedDynamicState3ProvokingVertexMode;
17988 VkBool32 extendedDynamicState3LineRasterizationMode;
17989 VkBool32 extendedDynamicState3LineStippleEnable;
17990 VkBool32 extendedDynamicState3DepthClipNegativeOneToOne;
17991 VkBool32 extendedDynamicState3ViewportWScalingEnable;
17992 VkBool32 extendedDynamicState3ViewportSwizzle;
17993 VkBool32 extendedDynamicState3CoverageToColorEnable;
17994 VkBool32 extendedDynamicState3CoverageToColorLocation;
17995 VkBool32 extendedDynamicState3CoverageModulationMode;
17996 VkBool32 extendedDynamicState3CoverageModulationTableEnable;
17997 VkBool32 extendedDynamicState3CoverageModulationTable;
17998 VkBool32 extendedDynamicState3CoverageReductionMode;
17999 VkBool32 extendedDynamicState3RepresentativeFragmentTestEnable;
18000 VkBool32 extendedDynamicState3ShadingRateImageEnable;
18001} VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
18002
18003typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT {
18004 VkStructureType sType;
18005 void* pNext;
18006 VkBool32 dynamicPrimitiveTopologyUnrestricted;
18007} VkPhysicalDeviceExtendedDynamicState3PropertiesEXT;
18008
18009typedef struct VkColorBlendEquationEXT {
18010 VkBlendFactor srcColorBlendFactor;
18011 VkBlendFactor dstColorBlendFactor;
18012 VkBlendOp colorBlendOp;
18013 VkBlendFactor srcAlphaBlendFactor;
18014 VkBlendFactor dstAlphaBlendFactor;
18015 VkBlendOp alphaBlendOp;
18016} VkColorBlendEquationEXT;
18017
18018typedef struct VkColorBlendAdvancedEXT {
18019 VkBlendOp advancedBlendOp;
18020 VkBool32 srcPremultiplied;
18021 VkBool32 dstPremultiplied;
18022 VkBlendOverlapEXT blendOverlap;
18023 VkBool32 clampResults;
18024} VkColorBlendAdvancedEXT;
18025
18026typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable);
18027typedef void (VKAPI_PTR *PFN_vkCmdSetPolygonModeEXT)(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode);
18028typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples);
18029typedef void (VKAPI_PTR *PFN_vkCmdSetSampleMaskEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits samples, const VkSampleMask* pSampleMask);
18030typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable);
18031typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable);
18032typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 logicOpEnable);
18033typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables);
18034typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations);
18035typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks);
18036typedef void (VKAPI_PTR *PFN_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin);
18037typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer commandBuffer, uint32_t rasterizationStream);
18038typedef void (VKAPI_PTR *PFN_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode);
18039typedef void (VKAPI_PTR *PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize);
18040typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClipEnable);
18041typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable);
18042typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
18043typedef void (VKAPI_PTR *PFN_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode);
18044typedef void (VKAPI_PTR *PFN_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode);
18045typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable);
18046typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne);
18047typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable);
18048typedef void (VKAPI_PTR *PFN_vkCmdSetViewportSwizzleNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles);
18049typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable);
18050typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation);
18051typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode);
18052typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable);
18053typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const float* pCoverageModulationTable);
18054typedef void (VKAPI_PTR *PFN_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable);
18055typedef void (VKAPI_PTR *PFN_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable);
18056typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode);
18057
18058#ifndef VK_NO_PROTOTYPES
18059VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT(
18060 VkCommandBuffer commandBuffer,
18061 VkBool32 depthClampEnable);
18062
18063VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT(
18064 VkCommandBuffer commandBuffer,
18065 VkPolygonMode polygonMode);
18066
18067VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT(
18068 VkCommandBuffer commandBuffer,
18069 VkSampleCountFlagBits rasterizationSamples);
18070
18071VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT(
18072 VkCommandBuffer commandBuffer,
18073 VkSampleCountFlagBits samples,
18074 const VkSampleMask* pSampleMask);
18075
18076VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT(
18077 VkCommandBuffer commandBuffer,
18078 VkBool32 alphaToCoverageEnable);
18079
18080VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT(
18081 VkCommandBuffer commandBuffer,
18082 VkBool32 alphaToOneEnable);
18083
18084VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT(
18085 VkCommandBuffer commandBuffer,
18086 VkBool32 logicOpEnable);
18087
18088VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEnableEXT(
18089 VkCommandBuffer commandBuffer,
18090 uint32_t firstAttachment,
18091 uint32_t attachmentCount,
18092 const VkBool32* pColorBlendEnables);
18093
18094VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEquationEXT(
18095 VkCommandBuffer commandBuffer,
18096 uint32_t firstAttachment,
18097 uint32_t attachmentCount,
18098 const VkColorBlendEquationEXT* pColorBlendEquations);
18099
18100VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteMaskEXT(
18101 VkCommandBuffer commandBuffer,
18102 uint32_t firstAttachment,
18103 uint32_t attachmentCount,
18104 const VkColorComponentFlags* pColorWriteMasks);
18105
18106VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT(
18107 VkCommandBuffer commandBuffer,
18108 VkTessellationDomainOrigin domainOrigin);
18109
18110VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT(
18111 VkCommandBuffer commandBuffer,
18112 uint32_t rasterizationStream);
18113
18114VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT(
18115 VkCommandBuffer commandBuffer,
18116 VkConservativeRasterizationModeEXT conservativeRasterizationMode);
18117
18118VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT(
18119 VkCommandBuffer commandBuffer,
18120 float extraPrimitiveOverestimationSize);
18121
18122VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT(
18123 VkCommandBuffer commandBuffer,
18124 VkBool32 depthClipEnable);
18125
18126VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT(
18127 VkCommandBuffer commandBuffer,
18128 VkBool32 sampleLocationsEnable);
18129
18130VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT(
18131 VkCommandBuffer commandBuffer,
18132 uint32_t firstAttachment,
18133 uint32_t attachmentCount,
18134 const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
18135
18136VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT(
18137 VkCommandBuffer commandBuffer,
18138 VkProvokingVertexModeEXT provokingVertexMode);
18139
18140VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT(
18141 VkCommandBuffer commandBuffer,
18142 VkLineRasterizationModeEXT lineRasterizationMode);
18143
18144VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT(
18145 VkCommandBuffer commandBuffer,
18146 VkBool32 stippledLineEnable);
18147
18148VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT(
18149 VkCommandBuffer commandBuffer,
18150 VkBool32 negativeOneToOne);
18151
18152VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV(
18153 VkCommandBuffer commandBuffer,
18154 VkBool32 viewportWScalingEnable);
18155
18156VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV(
18157 VkCommandBuffer commandBuffer,
18158 uint32_t firstViewport,
18159 uint32_t viewportCount,
18160 const VkViewportSwizzleNV* pViewportSwizzles);
18161
18162VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV(
18163 VkCommandBuffer commandBuffer,
18164 VkBool32 coverageToColorEnable);
18165
18166VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV(
18167 VkCommandBuffer commandBuffer,
18168 uint32_t coverageToColorLocation);
18169
18170VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV(
18171 VkCommandBuffer commandBuffer,
18172 VkCoverageModulationModeNV coverageModulationMode);
18173
18174VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV(
18175 VkCommandBuffer commandBuffer,
18176 VkBool32 coverageModulationTableEnable);
18177
18178VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV(
18179 VkCommandBuffer commandBuffer,
18180 uint32_t coverageModulationTableCount,
18181 const float* pCoverageModulationTable);
18182
18183VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV(
18184 VkCommandBuffer commandBuffer,
18185 VkBool32 shadingRateImageEnable);
18186
18187VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV(
18188 VkCommandBuffer commandBuffer,
18189 VkBool32 representativeFragmentTestEnable);
18190
18191VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV(
18192 VkCommandBuffer commandBuffer,
18193 VkCoverageReductionModeNV coverageReductionMode);
18194#endif
18195
18196
18197// VK_EXT_subpass_merge_feedback is a preprocessor guard. Do not pass it to API calls.
18198#define VK_EXT_subpass_merge_feedback 1
18199#define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2
18200#define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
18201
18202typedef enum VkSubpassMergeStatusEXT {
18203 VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0,
18204 VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1,
18205 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2,
18206 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3,
18207 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4,
18208 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5,
18209 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6,
18210 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7,
18211 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8,
18212 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9,
18213 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10,
18214 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11,
18215 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12,
18216 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13,
18217 VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 0x7FFFFFFF
18218} VkSubpassMergeStatusEXT;
18219typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
18220 VkStructureType sType;
18221 void* pNext;
18222 VkBool32 subpassMergeFeedback;
18223} VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
18224
18225typedef struct VkRenderPassCreationControlEXT {
18226 VkStructureType sType;
18227 const void* pNext;
18228 VkBool32 disallowMerging;
18229} VkRenderPassCreationControlEXT;
18230
18231typedef struct VkRenderPassCreationFeedbackInfoEXT {
18232 uint32_t postMergeSubpassCount;
18233} VkRenderPassCreationFeedbackInfoEXT;
18234
18235typedef struct VkRenderPassCreationFeedbackCreateInfoEXT {
18236 VkStructureType sType;
18237 const void* pNext;
18238 VkRenderPassCreationFeedbackInfoEXT* pRenderPassFeedback;
18239} VkRenderPassCreationFeedbackCreateInfoEXT;
18240
18241typedef struct VkRenderPassSubpassFeedbackInfoEXT {
18242 VkSubpassMergeStatusEXT subpassMergeStatus;
18243 char description[VK_MAX_DESCRIPTION_SIZE];
18244 uint32_t postMergeIndex;
18245} VkRenderPassSubpassFeedbackInfoEXT;
18246
18247typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT {
18248 VkStructureType sType;
18249 const void* pNext;
18250 VkRenderPassSubpassFeedbackInfoEXT* pSubpassFeedback;
18251} VkRenderPassSubpassFeedbackCreateInfoEXT;
18252
18253
18254
18255// VK_LUNARG_direct_driver_loading is a preprocessor guard. Do not pass it to API calls.
18256#define VK_LUNARG_direct_driver_loading 1
18257#define VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION 1
18258#define VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME "VK_LUNARG_direct_driver_loading"
18259
18260typedef enum VkDirectDriverLoadingModeLUNARG {
18261 VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0,
18262 VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1,
18263 VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 0x7FFFFFFF
18264} VkDirectDriverLoadingModeLUNARG;
18265typedef VkFlags VkDirectDriverLoadingFlagsLUNARG;
18266typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddrLUNARG)(
18267 VkInstance instance, const char* pName);
18268
18269typedef struct VkDirectDriverLoadingInfoLUNARG {
18270 VkStructureType sType;
18271 void* pNext;
18272 VkDirectDriverLoadingFlagsLUNARG flags;
18273 PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr;
18274} VkDirectDriverLoadingInfoLUNARG;
18275
18276typedef struct VkDirectDriverLoadingListLUNARG {
18277 VkStructureType sType;
18278 const void* pNext;
18279 VkDirectDriverLoadingModeLUNARG mode;
18280 uint32_t driverCount;
18281 const VkDirectDriverLoadingInfoLUNARG* pDrivers;
18282} VkDirectDriverLoadingListLUNARG;
18283
18284
18285
18286// VK_EXT_shader_module_identifier is a preprocessor guard. Do not pass it to API calls.
18287#define VK_EXT_shader_module_identifier 1
18288#define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U
18289#define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1
18290#define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
18291typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT {
18292 VkStructureType sType;
18293 void* pNext;
18294 VkBool32 shaderModuleIdentifier;
18295} VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
18296
18297typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT {
18298 VkStructureType sType;
18299 void* pNext;
18300 uint8_t shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
18301} VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
18302
18303typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT {
18304 VkStructureType sType;
18305 const void* pNext;
18306 uint32_t identifierSize;
18307 const uint8_t* pIdentifier;
18308} VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
18309
18310typedef struct VkShaderModuleIdentifierEXT {
18311 VkStructureType sType;
18312 void* pNext;
18313 uint32_t identifierSize;
18314 uint8_t identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
18315} VkShaderModuleIdentifierEXT;
18316
18317typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier);
18318typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier);
18319
18320#ifndef VK_NO_PROTOTYPES
18321VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleIdentifierEXT(
18322 VkDevice device,
18323 VkShaderModule shaderModule,
18324 VkShaderModuleIdentifierEXT* pIdentifier);
18325
18326VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT(
18327 VkDevice device,
18328 const VkShaderModuleCreateInfo* pCreateInfo,
18329 VkShaderModuleIdentifierEXT* pIdentifier);
18330#endif
18331
18332
18333// VK_EXT_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
18334#define VK_EXT_rasterization_order_attachment_access 1
18335#define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
18336#define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access"
18337
18338
18339// VK_NV_optical_flow is a preprocessor guard. Do not pass it to API calls.
18340#define VK_NV_optical_flow 1
18341VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV)
18342#define VK_NV_OPTICAL_FLOW_SPEC_VERSION 1
18343#define VK_NV_OPTICAL_FLOW_EXTENSION_NAME "VK_NV_optical_flow"
18344
18345typedef enum VkOpticalFlowPerformanceLevelNV {
18346 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0,
18347 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1,
18348 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2,
18349 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3,
18350 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 0x7FFFFFFF
18351} VkOpticalFlowPerformanceLevelNV;
18352
18353typedef enum VkOpticalFlowSessionBindingPointNV {
18354 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0,
18355 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1,
18356 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2,
18357 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3,
18358 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4,
18359 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5,
18360 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6,
18361 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7,
18362 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8,
18363 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 0x7FFFFFFF
18364} VkOpticalFlowSessionBindingPointNV;
18365
18366typedef enum VkOpticalFlowGridSizeFlagBitsNV {
18367 VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0,
18368 VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0x00000001,
18369 VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0x00000002,
18370 VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0x00000004,
18371 VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0x00000008,
18372 VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18373} VkOpticalFlowGridSizeFlagBitsNV;
18374typedef VkFlags VkOpticalFlowGridSizeFlagsNV;
18375
18376typedef enum VkOpticalFlowUsageFlagBitsNV {
18377 VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0,
18378 VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0x00000001,
18379 VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0x00000002,
18380 VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0x00000004,
18381 VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0x00000008,
18382 VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0x00000010,
18383 VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18384} VkOpticalFlowUsageFlagBitsNV;
18385typedef VkFlags VkOpticalFlowUsageFlagsNV;
18386
18387typedef enum VkOpticalFlowSessionCreateFlagBitsNV {
18388 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0x00000001,
18389 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0x00000002,
18390 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0x00000004,
18391 VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0x00000008,
18392 VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0x00000010,
18393 VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18394} VkOpticalFlowSessionCreateFlagBitsNV;
18395typedef VkFlags VkOpticalFlowSessionCreateFlagsNV;
18396
18397typedef enum VkOpticalFlowExecuteFlagBitsNV {
18398 VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0x00000001,
18399 VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18400} VkOpticalFlowExecuteFlagBitsNV;
18401typedef VkFlags VkOpticalFlowExecuteFlagsNV;
18402typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV {
18403 VkStructureType sType;
18404 void* pNext;
18405 VkBool32 opticalFlow;
18406} VkPhysicalDeviceOpticalFlowFeaturesNV;
18407
18408typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV {
18409 VkStructureType sType;
18410 void* pNext;
18411 VkOpticalFlowGridSizeFlagsNV supportedOutputGridSizes;
18412 VkOpticalFlowGridSizeFlagsNV supportedHintGridSizes;
18413 VkBool32 hintSupported;
18414 VkBool32 costSupported;
18415 VkBool32 bidirectionalFlowSupported;
18416 VkBool32 globalFlowSupported;
18417 uint32_t minWidth;
18418 uint32_t minHeight;
18419 uint32_t maxWidth;
18420 uint32_t maxHeight;
18421 uint32_t maxNumRegionsOfInterest;
18422} VkPhysicalDeviceOpticalFlowPropertiesNV;
18423
18424typedef struct VkOpticalFlowImageFormatInfoNV {
18425 VkStructureType sType;
18426 const void* pNext;
18427 VkOpticalFlowUsageFlagsNV usage;
18428} VkOpticalFlowImageFormatInfoNV;
18429
18430typedef struct VkOpticalFlowImageFormatPropertiesNV {
18431 VkStructureType sType;
18432 const void* pNext;
18433 VkFormat format;
18434} VkOpticalFlowImageFormatPropertiesNV;
18435
18436typedef struct VkOpticalFlowSessionCreateInfoNV {
18437 VkStructureType sType;
18438 void* pNext;
18439 uint32_t width;
18440 uint32_t height;
18441 VkFormat imageFormat;
18442 VkFormat flowVectorFormat;
18443 VkFormat costFormat;
18444 VkOpticalFlowGridSizeFlagsNV outputGridSize;
18445 VkOpticalFlowGridSizeFlagsNV hintGridSize;
18446 VkOpticalFlowPerformanceLevelNV performanceLevel;
18447 VkOpticalFlowSessionCreateFlagsNV flags;
18448} VkOpticalFlowSessionCreateInfoNV;
18449
18450typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV {
18451 VkStructureType sType;
18452 void* pNext;
18453 uint32_t id;
18454 uint32_t size;
18455 const void* pPrivateData;
18456} VkOpticalFlowSessionCreatePrivateDataInfoNV;
18457
18458typedef struct VkOpticalFlowExecuteInfoNV {
18459 VkStructureType sType;
18460 void* pNext;
18461 VkOpticalFlowExecuteFlagsNV flags;
18462 uint32_t regionCount;
18463 const VkRect2D* pRegions;
18464} VkOpticalFlowExecuteInfoNV;
18465
18466typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
18467typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice device, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession);
18468typedef void (VKAPI_PTR *PFN_vkDestroyOpticalFlowSessionNV)(VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator);
18469typedef VkResult (VKAPI_PTR *PFN_vkBindOpticalFlowSessionImageNV)(VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout);
18470typedef void (VKAPI_PTR *PFN_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
18471
18472#ifndef VK_NO_PROTOTYPES
18473VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
18474 VkPhysicalDevice physicalDevice,
18475 const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo,
18476 uint32_t* pFormatCount,
18477 VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
18478
18479VKAPI_ATTR VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV(
18480 VkDevice device,
18481 const VkOpticalFlowSessionCreateInfoNV* pCreateInfo,
18482 const VkAllocationCallbacks* pAllocator,
18483 VkOpticalFlowSessionNV* pSession);
18484
18485VKAPI_ATTR void VKAPI_CALL vkDestroyOpticalFlowSessionNV(
18486 VkDevice device,
18487 VkOpticalFlowSessionNV session,
18488 const VkAllocationCallbacks* pAllocator);
18489
18490VKAPI_ATTR VkResult VKAPI_CALL vkBindOpticalFlowSessionImageNV(
18491 VkDevice device,
18492 VkOpticalFlowSessionNV session,
18493 VkOpticalFlowSessionBindingPointNV bindingPoint,
18494 VkImageView view,
18495 VkImageLayout layout);
18496
18497VKAPI_ATTR void VKAPI_CALL vkCmdOpticalFlowExecuteNV(
18498 VkCommandBuffer commandBuffer,
18499 VkOpticalFlowSessionNV session,
18500 const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
18501#endif
18502
18503
18504// VK_EXT_legacy_dithering is a preprocessor guard. Do not pass it to API calls.
18505#define VK_EXT_legacy_dithering 1
18506#define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 1
18507#define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering"
18508typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT {
18509 VkStructureType sType;
18510 void* pNext;
18511 VkBool32 legacyDithering;
18512} VkPhysicalDeviceLegacyDitheringFeaturesEXT;
18513
18514
18515
18516// VK_EXT_pipeline_protected_access is a preprocessor guard. Do not pass it to API calls.
18517#define VK_EXT_pipeline_protected_access 1
18518#define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1
18519#define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access"
18520typedef struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT {
18521 VkStructureType sType;
18522 void* pNext;
18523 VkBool32 pipelineProtectedAccess;
18524} VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
18525
18526
18527
18528// VK_EXT_shader_object is a preprocessor guard. Do not pass it to API calls.
18529#define VK_EXT_shader_object 1
18530VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT)
18531#define VK_EXT_SHADER_OBJECT_SPEC_VERSION 1
18532#define VK_EXT_SHADER_OBJECT_EXTENSION_NAME "VK_EXT_shader_object"
18533
18534typedef enum VkShaderCodeTypeEXT {
18535 VK_SHADER_CODE_TYPE_BINARY_EXT = 0,
18536 VK_SHADER_CODE_TYPE_SPIRV_EXT = 1,
18537 VK_SHADER_CODE_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
18538} VkShaderCodeTypeEXT;
18539
18540typedef enum VkShaderCreateFlagBitsEXT {
18541 VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001,
18542 VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002,
18543 VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000004,
18544 VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = 0x00000008,
18545 VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010,
18546 VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020,
18547 VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040,
18548 VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
18549} VkShaderCreateFlagBitsEXT;
18550typedef VkFlags VkShaderCreateFlagsEXT;
18551typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT {
18552 VkStructureType sType;
18553 void* pNext;
18554 VkBool32 shaderObject;
18555} VkPhysicalDeviceShaderObjectFeaturesEXT;
18556
18557typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT {
18558 VkStructureType sType;
18559 void* pNext;
18560 uint8_t shaderBinaryUUID[VK_UUID_SIZE];
18561 uint32_t shaderBinaryVersion;
18562} VkPhysicalDeviceShaderObjectPropertiesEXT;
18563
18564typedef struct VkShaderCreateInfoEXT {
18565 VkStructureType sType;
18566 const void* pNext;
18567 VkShaderCreateFlagsEXT flags;
18568 VkShaderStageFlagBits stage;
18569 VkShaderStageFlags nextStage;
18570 VkShaderCodeTypeEXT codeType;
18571 size_t codeSize;
18572 const void* pCode;
18573 const char* pName;
18574 uint32_t setLayoutCount;
18575 const VkDescriptorSetLayout* pSetLayouts;
18576 uint32_t pushConstantRangeCount;
18577 const VkPushConstantRange* pPushConstantRanges;
18578 const VkSpecializationInfo* pSpecializationInfo;
18579} VkShaderCreateInfoEXT;
18580
18581typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT;
18582
18583typedef VkResult (VKAPI_PTR *PFN_vkCreateShadersEXT)(VkDevice device, uint32_t createInfoCount, const VkShaderCreateInfoEXT* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders);
18584typedef void (VKAPI_PTR *PFN_vkDestroyShaderEXT)(VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks* pAllocator);
18585typedef VkResult (VKAPI_PTR *PFN_vkGetShaderBinaryDataEXT)(VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData);
18586typedef void (VKAPI_PTR *PFN_vkCmdBindShadersEXT)(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders);
18587
18588#ifndef VK_NO_PROTOTYPES
18589VKAPI_ATTR VkResult VKAPI_CALL vkCreateShadersEXT(
18590 VkDevice device,
18591 uint32_t createInfoCount,
18592 const VkShaderCreateInfoEXT* pCreateInfos,
18593 const VkAllocationCallbacks* pAllocator,
18594 VkShaderEXT* pShaders);
18595
18596VKAPI_ATTR void VKAPI_CALL vkDestroyShaderEXT(
18597 VkDevice device,
18598 VkShaderEXT shader,
18599 const VkAllocationCallbacks* pAllocator);
18600
18601VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderBinaryDataEXT(
18602 VkDevice device,
18603 VkShaderEXT shader,
18604 size_t* pDataSize,
18605 void* pData);
18606
18607VKAPI_ATTR void VKAPI_CALL vkCmdBindShadersEXT(
18608 VkCommandBuffer commandBuffer,
18609 uint32_t stageCount,
18610 const VkShaderStageFlagBits* pStages,
18611 const VkShaderEXT* pShaders);
18612#endif
18613
18614
18615// VK_QCOM_tile_properties is a preprocessor guard. Do not pass it to API calls.
18616#define VK_QCOM_tile_properties 1
18617#define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1
18618#define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
18619typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM {
18620 VkStructureType sType;
18621 void* pNext;
18622 VkBool32 tileProperties;
18623} VkPhysicalDeviceTilePropertiesFeaturesQCOM;
18624
18625typedef struct VkTilePropertiesQCOM {
18626 VkStructureType sType;
18627 void* pNext;
18628 VkExtent3D tileSize;
18629 VkExtent2D apronSize;
18630 VkOffset2D origin;
18631} VkTilePropertiesQCOM;
18632
18633typedef VkResult (VKAPI_PTR *PFN_vkGetFramebufferTilePropertiesQCOM)(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties);
18634typedef VkResult (VKAPI_PTR *PFN_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties);
18635
18636#ifndef VK_NO_PROTOTYPES
18637VKAPI_ATTR VkResult VKAPI_CALL vkGetFramebufferTilePropertiesQCOM(
18638 VkDevice device,
18639 VkFramebuffer framebuffer,
18640 uint32_t* pPropertiesCount,
18641 VkTilePropertiesQCOM* pProperties);
18642
18643VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM(
18644 VkDevice device,
18645 const VkRenderingInfo* pRenderingInfo,
18646 VkTilePropertiesQCOM* pProperties);
18647#endif
18648
18649
18650// VK_SEC_amigo_profiling is a preprocessor guard. Do not pass it to API calls.
18651#define VK_SEC_amigo_profiling 1
18652#define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1
18653#define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling"
18654typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC {
18655 VkStructureType sType;
18656 void* pNext;
18657 VkBool32 amigoProfiling;
18658} VkPhysicalDeviceAmigoProfilingFeaturesSEC;
18659
18660typedef struct VkAmigoProfilingSubmitInfoSEC {
18661 VkStructureType sType;
18662 const void* pNext;
18663 uint64_t firstDrawTimestamp;
18664 uint64_t swapBufferTimestamp;
18665} VkAmigoProfilingSubmitInfoSEC;
18666
18667
18668
18669// VK_QCOM_multiview_per_view_viewports is a preprocessor guard. Do not pass it to API calls.
18670#define VK_QCOM_multiview_per_view_viewports 1
18671#define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION 1
18672#define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports"
18673typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
18674 VkStructureType sType;
18675 void* pNext;
18676 VkBool32 multiviewPerViewViewports;
18677} VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
18678
18679
18680
18681// VK_NV_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
18682#define VK_NV_ray_tracing_invocation_reorder 1
18683#define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
18684#define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder"
18685
18686typedef enum VkRayTracingInvocationReorderModeNV {
18687 VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0,
18688 VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1,
18689 VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 0x7FFFFFFF
18690} VkRayTracingInvocationReorderModeNV;
18691typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV {
18692 VkStructureType sType;
18693 void* pNext;
18694 VkRayTracingInvocationReorderModeNV rayTracingInvocationReorderReorderingHint;
18695} VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV;
18696
18697typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV {
18698 VkStructureType sType;
18699 void* pNext;
18700 VkBool32 rayTracingInvocationReorder;
18701} VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV;
18702
18703
18704
18705// VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls.
18706#define VK_NV_extended_sparse_address_space 1
18707#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1
18708#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space"
18709typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
18710 VkStructureType sType;
18711 void* pNext;
18712 VkBool32 extendedSparseAddressSpace;
18713} VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
18714
18715typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
18716 VkStructureType sType;
18717 void* pNext;
18718 VkDeviceSize extendedSparseAddressSpaceSize;
18719 VkImageUsageFlags extendedSparseImageUsageFlags;
18720 VkBufferUsageFlags extendedSparseBufferUsageFlags;
18721} VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
18722
18723
18724
18725// VK_EXT_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
18726#define VK_EXT_mutable_descriptor_type 1
18727#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
18728#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
18729
18730
18731// VK_EXT_layer_settings is a preprocessor guard. Do not pass it to API calls.
18732#define VK_EXT_layer_settings 1
18733#define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 2
18734#define VK_EXT_LAYER_SETTINGS_EXTENSION_NAME "VK_EXT_layer_settings"
18735
18736typedef enum VkLayerSettingTypeEXT {
18737 VK_LAYER_SETTING_TYPE_BOOL32_EXT = 0,
18738 VK_LAYER_SETTING_TYPE_INT32_EXT = 1,
18739 VK_LAYER_SETTING_TYPE_INT64_EXT = 2,
18740 VK_LAYER_SETTING_TYPE_UINT32_EXT = 3,
18741 VK_LAYER_SETTING_TYPE_UINT64_EXT = 4,
18742 VK_LAYER_SETTING_TYPE_FLOAT32_EXT = 5,
18743 VK_LAYER_SETTING_TYPE_FLOAT64_EXT = 6,
18744 VK_LAYER_SETTING_TYPE_STRING_EXT = 7,
18745 VK_LAYER_SETTING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
18746} VkLayerSettingTypeEXT;
18747typedef struct VkLayerSettingEXT {
18748 const char* pLayerName;
18749 const char* pSettingName;
18750 VkLayerSettingTypeEXT type;
18751 uint32_t valueCount;
18752 const void* pValues;
18753} VkLayerSettingEXT;
18754
18755typedef struct VkLayerSettingsCreateInfoEXT {
18756 VkStructureType sType;
18757 const void* pNext;
18758 uint32_t settingCount;
18759 const VkLayerSettingEXT* pSettings;
18760} VkLayerSettingsCreateInfoEXT;
18761
18762
18763
18764// VK_ARM_shader_core_builtins is a preprocessor guard. Do not pass it to API calls.
18765#define VK_ARM_shader_core_builtins 1
18766#define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2
18767#define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins"
18768typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM {
18769 VkStructureType sType;
18770 void* pNext;
18771 VkBool32 shaderCoreBuiltins;
18772} VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
18773
18774typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM {
18775 VkStructureType sType;
18776 void* pNext;
18777 uint64_t shaderCoreMask;
18778 uint32_t shaderCoreCount;
18779 uint32_t shaderWarpsPerCore;
18780} VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM;
18781
18782
18783
18784// VK_EXT_pipeline_library_group_handles is a preprocessor guard. Do not pass it to API calls.
18785#define VK_EXT_pipeline_library_group_handles 1
18786#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION 1
18787#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles"
18788typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
18789 VkStructureType sType;
18790 void* pNext;
18791 VkBool32 pipelineLibraryGroupHandles;
18792} VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
18793
18794
18795
18796// VK_EXT_dynamic_rendering_unused_attachments is a preprocessor guard. Do not pass it to API calls.
18797#define VK_EXT_dynamic_rendering_unused_attachments 1
18798#define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION 1
18799#define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME "VK_EXT_dynamic_rendering_unused_attachments"
18800typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
18801 VkStructureType sType;
18802 void* pNext;
18803 VkBool32 dynamicRenderingUnusedAttachments;
18804} VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
18805
18806
18807
18808// VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls.
18809#define VK_NV_low_latency2 1
18810#define VK_NV_LOW_LATENCY_2_SPEC_VERSION 2
18811#define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2"
18812
18813typedef enum VkLatencyMarkerNV {
18814 VK_LATENCY_MARKER_SIMULATION_START_NV = 0,
18815 VK_LATENCY_MARKER_SIMULATION_END_NV = 1,
18816 VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2,
18817 VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3,
18818 VK_LATENCY_MARKER_PRESENT_START_NV = 4,
18819 VK_LATENCY_MARKER_PRESENT_END_NV = 5,
18820 VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6,
18821 VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7,
18822 VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8,
18823 VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9,
18824 VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10,
18825 VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11,
18826 VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF
18827} VkLatencyMarkerNV;
18828
18829typedef enum VkOutOfBandQueueTypeNV {
18830 VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0,
18831 VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1,
18832 VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
18833} VkOutOfBandQueueTypeNV;
18834typedef struct VkLatencySleepModeInfoNV {
18835 VkStructureType sType;
18836 const void* pNext;
18837 VkBool32 lowLatencyMode;
18838 VkBool32 lowLatencyBoost;
18839 uint32_t minimumIntervalUs;
18840} VkLatencySleepModeInfoNV;
18841
18842typedef struct VkLatencySleepInfoNV {
18843 VkStructureType sType;
18844 const void* pNext;
18845 VkSemaphore signalSemaphore;
18846 uint64_t value;
18847} VkLatencySleepInfoNV;
18848
18849typedef struct VkSetLatencyMarkerInfoNV {
18850 VkStructureType sType;
18851 const void* pNext;
18852 uint64_t presentID;
18853 VkLatencyMarkerNV marker;
18854} VkSetLatencyMarkerInfoNV;
18855
18856typedef struct VkLatencyTimingsFrameReportNV {
18857 VkStructureType sType;
18858 const void* pNext;
18859 uint64_t presentID;
18860 uint64_t inputSampleTimeUs;
18861 uint64_t simStartTimeUs;
18862 uint64_t simEndTimeUs;
18863 uint64_t renderSubmitStartTimeUs;
18864 uint64_t renderSubmitEndTimeUs;
18865 uint64_t presentStartTimeUs;
18866 uint64_t presentEndTimeUs;
18867 uint64_t driverStartTimeUs;
18868 uint64_t driverEndTimeUs;
18869 uint64_t osRenderQueueStartTimeUs;
18870 uint64_t osRenderQueueEndTimeUs;
18871 uint64_t gpuRenderStartTimeUs;
18872 uint64_t gpuRenderEndTimeUs;
18873} VkLatencyTimingsFrameReportNV;
18874
18875typedef struct VkGetLatencyMarkerInfoNV {
18876 VkStructureType sType;
18877 const void* pNext;
18878 uint32_t timingCount;
18879 VkLatencyTimingsFrameReportNV* pTimings;
18880} VkGetLatencyMarkerInfoNV;
18881
18882typedef struct VkLatencySubmissionPresentIdNV {
18883 VkStructureType sType;
18884 const void* pNext;
18885 uint64_t presentID;
18886} VkLatencySubmissionPresentIdNV;
18887
18888typedef struct VkSwapchainLatencyCreateInfoNV {
18889 VkStructureType sType;
18890 const void* pNext;
18891 VkBool32 latencyModeEnable;
18892} VkSwapchainLatencyCreateInfoNV;
18893
18894typedef struct VkOutOfBandQueueTypeInfoNV {
18895 VkStructureType sType;
18896 const void* pNext;
18897 VkOutOfBandQueueTypeNV queueType;
18898} VkOutOfBandQueueTypeInfoNV;
18899
18900typedef struct VkLatencySurfaceCapabilitiesNV {
18901 VkStructureType sType;
18902 const void* pNext;
18903 uint32_t presentModeCount;
18904 VkPresentModeKHR* pPresentModes;
18905} VkLatencySurfaceCapabilitiesNV;
18906
18907typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo);
18908typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo);
18909typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
18910typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
18911typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
18912
18913#ifndef VK_NO_PROTOTYPES
18914VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV(
18915 VkDevice device,
18916 VkSwapchainKHR swapchain,
18917 const VkLatencySleepModeInfoNV* pSleepModeInfo);
18918
18919VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV(
18920 VkDevice device,
18921 VkSwapchainKHR swapchain,
18922 const VkLatencySleepInfoNV* pSleepInfo);
18923
18924VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV(
18925 VkDevice device,
18926 VkSwapchainKHR swapchain,
18927 const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
18928
18929VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV(
18930 VkDevice device,
18931 VkSwapchainKHR swapchain,
18932 VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
18933
18934VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV(
18935 VkQueue queue,
18936 const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
18937#endif
18938
18939
18940// VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls.
18941#define VK_QCOM_multiview_per_view_render_areas 1
18942#define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1
18943#define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME "VK_QCOM_multiview_per_view_render_areas"
18944typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
18945 VkStructureType sType;
18946 void* pNext;
18947 VkBool32 multiviewPerViewRenderAreas;
18948} VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
18949
18950typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
18951 VkStructureType sType;
18952 const void* pNext;
18953 uint32_t perViewRenderAreaCount;
18954 const VkRect2D* pPerViewRenderAreas;
18955} VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
18956
18957
18958
18959// VK_NV_per_stage_descriptor_set is a preprocessor guard. Do not pass it to API calls.
18960#define VK_NV_per_stage_descriptor_set 1
18961#define VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION 1
18962#define VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME "VK_NV_per_stage_descriptor_set"
18963typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV {
18964 VkStructureType sType;
18965 void* pNext;
18966 VkBool32 perStageDescriptorSet;
18967 VkBool32 dynamicPipelineLayout;
18968} VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
18969
18970
18971
18972// VK_QCOM_image_processing2 is a preprocessor guard. Do not pass it to API calls.
18973#define VK_QCOM_image_processing2 1
18974#define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1
18975#define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2"
18976
18977typedef enum VkBlockMatchWindowCompareModeQCOM {
18978 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0,
18979 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1,
18980 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM = 0x7FFFFFFF
18981} VkBlockMatchWindowCompareModeQCOM;
18982typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM {
18983 VkStructureType sType;
18984 void* pNext;
18985 VkBool32 textureBlockMatch2;
18986} VkPhysicalDeviceImageProcessing2FeaturesQCOM;
18987
18988typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM {
18989 VkStructureType sType;
18990 void* pNext;
18991 VkExtent2D maxBlockMatchWindow;
18992} VkPhysicalDeviceImageProcessing2PropertiesQCOM;
18993
18994typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM {
18995 VkStructureType sType;
18996 const void* pNext;
18997 VkExtent2D windowExtent;
18998 VkBlockMatchWindowCompareModeQCOM windowCompareMode;
18999} VkSamplerBlockMatchWindowCreateInfoQCOM;
19000
19001
19002
19003// VK_QCOM_filter_cubic_weights is a preprocessor guard. Do not pass it to API calls.
19004#define VK_QCOM_filter_cubic_weights 1
19005#define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1
19006#define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights"
19007
19008typedef enum VkCubicFilterWeightsQCOM {
19009 VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0,
19010 VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1,
19011 VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2,
19012 VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3,
19013 VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM = 0x7FFFFFFF
19014} VkCubicFilterWeightsQCOM;
19015typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM {
19016 VkStructureType sType;
19017 void* pNext;
19018 VkBool32 selectableCubicWeights;
19019} VkPhysicalDeviceCubicWeightsFeaturesQCOM;
19020
19021typedef struct VkSamplerCubicWeightsCreateInfoQCOM {
19022 VkStructureType sType;
19023 const void* pNext;
19024 VkCubicFilterWeightsQCOM cubicWeights;
19025} VkSamplerCubicWeightsCreateInfoQCOM;
19026
19027typedef struct VkBlitImageCubicWeightsInfoQCOM {
19028 VkStructureType sType;
19029 const void* pNext;
19030 VkCubicFilterWeightsQCOM cubicWeights;
19031} VkBlitImageCubicWeightsInfoQCOM;
19032
19033
19034
19035// VK_QCOM_ycbcr_degamma is a preprocessor guard. Do not pass it to API calls.
19036#define VK_QCOM_ycbcr_degamma 1
19037#define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1
19038#define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma"
19039typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM {
19040 VkStructureType sType;
19041 void* pNext;
19042 VkBool32 ycbcrDegamma;
19043} VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
19044
19045typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
19046 VkStructureType sType;
19047 void* pNext;
19048 VkBool32 enableYDegamma;
19049 VkBool32 enableCbCrDegamma;
19050} VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
19051
19052
19053
19054// VK_QCOM_filter_cubic_clamp is a preprocessor guard. Do not pass it to API calls.
19055#define VK_QCOM_filter_cubic_clamp 1
19056#define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1
19057#define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp"
19058typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM {
19059 VkStructureType sType;
19060 void* pNext;
19061 VkBool32 cubicRangeClamp;
19062} VkPhysicalDeviceCubicClampFeaturesQCOM;
19063
19064
19065
19066// VK_EXT_attachment_feedback_loop_dynamic_state is a preprocessor guard. Do not pass it to API calls.
19067#define VK_EXT_attachment_feedback_loop_dynamic_state 1
19068#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1
19069#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state"
19070typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
19071 VkStructureType sType;
19072 void* pNext;
19073 VkBool32 attachmentFeedbackLoopDynamicState;
19074} VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
19075
19076typedef void (VKAPI_PTR *PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask);
19077
19078#ifndef VK_NO_PROTOTYPES
19079VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT(
19080 VkCommandBuffer commandBuffer,
19081 VkImageAspectFlags aspectMask);
19082#endif
19083
19084
19085// VK_MSFT_layered_driver is a preprocessor guard. Do not pass it to API calls.
19086#define VK_MSFT_layered_driver 1
19087#define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1
19088#define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver"
19089
19090typedef enum VkLayeredDriverUnderlyingApiMSFT {
19091 VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0,
19092 VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1,
19093 VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT = 0x7FFFFFFF
19094} VkLayeredDriverUnderlyingApiMSFT;
19095typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT {
19096 VkStructureType sType;
19097 void* pNext;
19098 VkLayeredDriverUnderlyingApiMSFT underlyingAPI;
19099} VkPhysicalDeviceLayeredDriverPropertiesMSFT;
19100
19101
19102
19103// VK_NV_descriptor_pool_overallocation is a preprocessor guard. Do not pass it to API calls.
19104#define VK_NV_descriptor_pool_overallocation 1
19105#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1
19106#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation"
19107typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
19108 VkStructureType sType;
19109 void* pNext;
19110 VkBool32 descriptorPoolOverallocation;
19111} VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
19112
19113
19114
19115// VK_NV_raw_access_chains is a preprocessor guard. Do not pass it to API calls.
19116#define VK_NV_raw_access_chains 1
19117#define VK_NV_RAW_ACCESS_CHAINS_SPEC_VERSION 1
19118#define VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME "VK_NV_raw_access_chains"
19119typedef struct VkPhysicalDeviceRawAccessChainsFeaturesNV {
19120 VkStructureType sType;
19121 void* pNext;
19122 VkBool32 shaderRawAccessChains;
19123} VkPhysicalDeviceRawAccessChainsFeaturesNV;
19124
19125
19126
19127// VK_NV_shader_atomic_float16_vector is a preprocessor guard. Do not pass it to API calls.
19128#define VK_NV_shader_atomic_float16_vector 1
19129#define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION 1
19130#define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME "VK_NV_shader_atomic_float16_vector"
19131typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
19132 VkStructureType sType;
19133 void* pNext;
19134 VkBool32 shaderFloat16VectorAtomics;
19135} VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV;
19136
19137
19138
19139// VK_NV_ray_tracing_validation is a preprocessor guard. Do not pass it to API calls.
19140#define VK_NV_ray_tracing_validation 1
19141#define VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION 1
19142#define VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME "VK_NV_ray_tracing_validation"
19143typedef struct VkPhysicalDeviceRayTracingValidationFeaturesNV {
19144 VkStructureType sType;
19145 void* pNext;
19146 VkBool32 rayTracingValidation;
19147} VkPhysicalDeviceRayTracingValidationFeaturesNV;
19148
19149
19150
19151// VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
19152#define VK_KHR_acceleration_structure 1
19153#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
19154#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
19155
19156typedef enum VkBuildAccelerationStructureModeKHR {
19157 VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
19158 VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
19159 VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
19160} VkBuildAccelerationStructureModeKHR;
19161
19162typedef enum VkAccelerationStructureCreateFlagBitsKHR {
19163 VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
19164 VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
19165 VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004,
19166 VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
19167} VkAccelerationStructureCreateFlagBitsKHR;
19168typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
19169typedef struct VkAccelerationStructureBuildRangeInfoKHR {
19170 uint32_t primitiveCount;
19171 uint32_t primitiveOffset;
19172 uint32_t firstVertex;
19173 uint32_t transformOffset;
19174} VkAccelerationStructureBuildRangeInfoKHR;
19175
19176typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
19177 VkStructureType sType;
19178 const void* pNext;
19179 VkFormat vertexFormat;
19180 VkDeviceOrHostAddressConstKHR vertexData;
19181 VkDeviceSize vertexStride;
19182 uint32_t maxVertex;
19183 VkIndexType indexType;
19184 VkDeviceOrHostAddressConstKHR indexData;
19185 VkDeviceOrHostAddressConstKHR transformData;
19186} VkAccelerationStructureGeometryTrianglesDataKHR;
19187
19188typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
19189 VkStructureType sType;
19190 const void* pNext;
19191 VkDeviceOrHostAddressConstKHR data;
19192 VkDeviceSize stride;
19193} VkAccelerationStructureGeometryAabbsDataKHR;
19194
19195typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
19196 VkStructureType sType;
19197 const void* pNext;
19198 VkBool32 arrayOfPointers;
19199 VkDeviceOrHostAddressConstKHR data;
19200} VkAccelerationStructureGeometryInstancesDataKHR;
19201
19202typedef union VkAccelerationStructureGeometryDataKHR {
19203 VkAccelerationStructureGeometryTrianglesDataKHR triangles;
19204 VkAccelerationStructureGeometryAabbsDataKHR aabbs;
19205 VkAccelerationStructureGeometryInstancesDataKHR instances;
19206} VkAccelerationStructureGeometryDataKHR;
19207
19208typedef struct VkAccelerationStructureGeometryKHR {
19209 VkStructureType sType;
19210 const void* pNext;
19211 VkGeometryTypeKHR geometryType;
19212 VkAccelerationStructureGeometryDataKHR geometry;
19213 VkGeometryFlagsKHR flags;
19214} VkAccelerationStructureGeometryKHR;
19215
19216typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
19217 VkStructureType sType;
19218 const void* pNext;
19219 VkAccelerationStructureTypeKHR type;
19220 VkBuildAccelerationStructureFlagsKHR flags;
19221 VkBuildAccelerationStructureModeKHR mode;
19222 VkAccelerationStructureKHR srcAccelerationStructure;
19223 VkAccelerationStructureKHR dstAccelerationStructure;
19224 uint32_t geometryCount;
19225 const VkAccelerationStructureGeometryKHR* pGeometries;
19226 const VkAccelerationStructureGeometryKHR* const* ppGeometries;
19227 VkDeviceOrHostAddressKHR scratchData;
19228} VkAccelerationStructureBuildGeometryInfoKHR;
19229
19230typedef struct VkAccelerationStructureCreateInfoKHR {
19231 VkStructureType sType;
19232 const void* pNext;
19233 VkAccelerationStructureCreateFlagsKHR createFlags;
19234 VkBuffer buffer;
19235 VkDeviceSize offset;
19236 VkDeviceSize size;
19237 VkAccelerationStructureTypeKHR type;
19238 VkDeviceAddress deviceAddress;
19239} VkAccelerationStructureCreateInfoKHR;
19240
19241typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
19242 VkStructureType sType;
19243 const void* pNext;
19244 uint32_t accelerationStructureCount;
19245 const VkAccelerationStructureKHR* pAccelerationStructures;
19246} VkWriteDescriptorSetAccelerationStructureKHR;
19247
19248typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
19249 VkStructureType sType;
19250 void* pNext;
19251 VkBool32 accelerationStructure;
19252 VkBool32 accelerationStructureCaptureReplay;
19253 VkBool32 accelerationStructureIndirectBuild;
19254 VkBool32 accelerationStructureHostCommands;
19255 VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind;
19256} VkPhysicalDeviceAccelerationStructureFeaturesKHR;
19257
19258typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
19259 VkStructureType sType;
19260 void* pNext;
19261 uint64_t maxGeometryCount;
19262 uint64_t maxInstanceCount;
19263 uint64_t maxPrimitiveCount;
19264 uint32_t maxPerStageDescriptorAccelerationStructures;
19265 uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
19266 uint32_t maxDescriptorSetAccelerationStructures;
19267 uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures;
19268 uint32_t minAccelerationStructureScratchOffsetAlignment;
19269} VkPhysicalDeviceAccelerationStructurePropertiesKHR;
19270
19271typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
19272 VkStructureType sType;
19273 const void* pNext;
19274 VkAccelerationStructureKHR accelerationStructure;
19275} VkAccelerationStructureDeviceAddressInfoKHR;
19276
19277typedef struct VkAccelerationStructureVersionInfoKHR {
19278 VkStructureType sType;
19279 const void* pNext;
19280 const uint8_t* pVersionData;
19281} VkAccelerationStructureVersionInfoKHR;
19282
19283typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
19284 VkStructureType sType;
19285 const void* pNext;
19286 VkAccelerationStructureKHR src;
19287 VkDeviceOrHostAddressKHR dst;
19288 VkCopyAccelerationStructureModeKHR mode;
19289} VkCopyAccelerationStructureToMemoryInfoKHR;
19290
19291typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
19292 VkStructureType sType;
19293 const void* pNext;
19294 VkDeviceOrHostAddressConstKHR src;
19295 VkAccelerationStructureKHR dst;
19296 VkCopyAccelerationStructureModeKHR mode;
19297} VkCopyMemoryToAccelerationStructureInfoKHR;
19298
19299typedef struct VkCopyAccelerationStructureInfoKHR {
19300 VkStructureType sType;
19301 const void* pNext;
19302 VkAccelerationStructureKHR src;
19303 VkAccelerationStructureKHR dst;
19304 VkCopyAccelerationStructureModeKHR mode;
19305} VkCopyAccelerationStructureInfoKHR;
19306
19307typedef struct VkAccelerationStructureBuildSizesInfoKHR {
19308 VkStructureType sType;
19309 const void* pNext;
19310 VkDeviceSize accelerationStructureSize;
19311 VkDeviceSize updateScratchSize;
19312 VkDeviceSize buildScratchSize;
19313} VkAccelerationStructureBuildSizesInfoKHR;
19314
19315typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure);
19316typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
19317typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
19318typedef 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);
19319typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
19320typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
19321typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
19322typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
19323typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
19324typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
19325typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
19326typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
19327typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
19328typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
19329typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
19330typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
19331
19332#ifndef VK_NO_PROTOTYPES
19333VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
19334 VkDevice device,
19335 const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
19336 const VkAllocationCallbacks* pAllocator,
19337 VkAccelerationStructureKHR* pAccelerationStructure);
19338
19339VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
19340 VkDevice device,
19341 VkAccelerationStructureKHR accelerationStructure,
19342 const VkAllocationCallbacks* pAllocator);
19343
19344VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
19345 VkCommandBuffer commandBuffer,
19346 uint32_t infoCount,
19347 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
19348 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
19349
19350VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
19351 VkCommandBuffer commandBuffer,
19352 uint32_t infoCount,
19353 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
19354 const VkDeviceAddress* pIndirectDeviceAddresses,
19355 const uint32_t* pIndirectStrides,
19356 const uint32_t* const* ppMaxPrimitiveCounts);
19357
19358VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
19359 VkDevice device,
19360 VkDeferredOperationKHR deferredOperation,
19361 uint32_t infoCount,
19362 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
19363 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
19364
19365VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
19366 VkDevice device,
19367 VkDeferredOperationKHR deferredOperation,
19368 const VkCopyAccelerationStructureInfoKHR* pInfo);
19369
19370VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
19371 VkDevice device,
19372 VkDeferredOperationKHR deferredOperation,
19373 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
19374
19375VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
19376 VkDevice device,
19377 VkDeferredOperationKHR deferredOperation,
19378 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
19379
19380VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
19381 VkDevice device,
19382 uint32_t accelerationStructureCount,
19383 const VkAccelerationStructureKHR* pAccelerationStructures,
19384 VkQueryType queryType,
19385 size_t dataSize,
19386 void* pData,
19387 size_t stride);
19388
19389VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
19390 VkCommandBuffer commandBuffer,
19391 const VkCopyAccelerationStructureInfoKHR* pInfo);
19392
19393VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
19394 VkCommandBuffer commandBuffer,
19395 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
19396
19397VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
19398 VkCommandBuffer commandBuffer,
19399 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
19400
19401VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
19402 VkDevice device,
19403 const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
19404
19405VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
19406 VkCommandBuffer commandBuffer,
19407 uint32_t accelerationStructureCount,
19408 const VkAccelerationStructureKHR* pAccelerationStructures,
19409 VkQueryType queryType,
19410 VkQueryPool queryPool,
19411 uint32_t firstQuery);
19412
19413VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
19414 VkDevice device,
19415 const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
19416 VkAccelerationStructureCompatibilityKHR* pCompatibility);
19417
19418VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
19419 VkDevice device,
19420 VkAccelerationStructureBuildTypeKHR buildType,
19421 const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
19422 const uint32_t* pMaxPrimitiveCounts,
19423 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
19424#endif
19425
19426
19427// VK_KHR_ray_tracing_pipeline is a preprocessor guard. Do not pass it to API calls.
19428#define VK_KHR_ray_tracing_pipeline 1
19429#define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
19430#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
19431
19432typedef enum VkShaderGroupShaderKHR {
19433 VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0,
19434 VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1,
19435 VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2,
19436 VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
19437 VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF
19438} VkShaderGroupShaderKHR;
19439typedef struct VkRayTracingShaderGroupCreateInfoKHR {
19440 VkStructureType sType;
19441 const void* pNext;
19442 VkRayTracingShaderGroupTypeKHR type;
19443 uint32_t generalShader;
19444 uint32_t closestHitShader;
19445 uint32_t anyHitShader;
19446 uint32_t intersectionShader;
19447 const void* pShaderGroupCaptureReplayHandle;
19448} VkRayTracingShaderGroupCreateInfoKHR;
19449
19450typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
19451 VkStructureType sType;
19452 const void* pNext;
19453 uint32_t maxPipelineRayPayloadSize;
19454 uint32_t maxPipelineRayHitAttributeSize;
19455} VkRayTracingPipelineInterfaceCreateInfoKHR;
19456
19457typedef struct VkRayTracingPipelineCreateInfoKHR {
19458 VkStructureType sType;
19459 const void* pNext;
19460 VkPipelineCreateFlags flags;
19461 uint32_t stageCount;
19462 const VkPipelineShaderStageCreateInfo* pStages;
19463 uint32_t groupCount;
19464 const VkRayTracingShaderGroupCreateInfoKHR* pGroups;
19465 uint32_t maxPipelineRayRecursionDepth;
19466 const VkPipelineLibraryCreateInfoKHR* pLibraryInfo;
19467 const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface;
19468 const VkPipelineDynamicStateCreateInfo* pDynamicState;
19469 VkPipelineLayout layout;
19470 VkPipeline basePipelineHandle;
19471 int32_t basePipelineIndex;
19472} VkRayTracingPipelineCreateInfoKHR;
19473
19474typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
19475 VkStructureType sType;
19476 void* pNext;
19477 VkBool32 rayTracingPipeline;
19478 VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay;
19479 VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
19480 VkBool32 rayTracingPipelineTraceRaysIndirect;
19481 VkBool32 rayTraversalPrimitiveCulling;
19482} VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
19483
19484typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
19485 VkStructureType sType;
19486 void* pNext;
19487 uint32_t shaderGroupHandleSize;
19488 uint32_t maxRayRecursionDepth;
19489 uint32_t maxShaderGroupStride;
19490 uint32_t shaderGroupBaseAlignment;
19491 uint32_t shaderGroupHandleCaptureReplaySize;
19492 uint32_t maxRayDispatchInvocationCount;
19493 uint32_t shaderGroupHandleAlignment;
19494 uint32_t maxRayHitAttributeSize;
19495} VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
19496
19497typedef struct VkStridedDeviceAddressRegionKHR {
19498 VkDeviceAddress deviceAddress;
19499 VkDeviceSize stride;
19500 VkDeviceSize size;
19501} VkStridedDeviceAddressRegionKHR;
19502
19503typedef struct VkTraceRaysIndirectCommandKHR {
19504 uint32_t width;
19505 uint32_t height;
19506 uint32_t depth;
19507} VkTraceRaysIndirectCommandKHR;
19508
19509typedef 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);
19510typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
19511typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
19512typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
19513typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
19514typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
19515
19516#ifndef VK_NO_PROTOTYPES
19517VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
19518 VkCommandBuffer commandBuffer,
19519 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
19520 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
19521 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
19522 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
19523 uint32_t width,
19524 uint32_t height,
19525 uint32_t depth);
19526
19527VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
19528 VkDevice device,
19529 VkDeferredOperationKHR deferredOperation,
19530 VkPipelineCache pipelineCache,
19531 uint32_t createInfoCount,
19532 const VkRayTracingPipelineCreateInfoKHR* pCreateInfos,
19533 const VkAllocationCallbacks* pAllocator,
19534 VkPipeline* pPipelines);
19535
19536VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
19537 VkDevice device,
19538 VkPipeline pipeline,
19539 uint32_t firstGroup,
19540 uint32_t groupCount,
19541 size_t dataSize,
19542 void* pData);
19543
19544VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
19545 VkCommandBuffer commandBuffer,
19546 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
19547 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
19548 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
19549 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
19550 VkDeviceAddress indirectDeviceAddress);
19551
19552VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
19553 VkDevice device,
19554 VkPipeline pipeline,
19555 uint32_t group,
19556 VkShaderGroupShaderKHR groupShader);
19557
19558VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
19559 VkCommandBuffer commandBuffer,
19560 uint32_t pipelineStackSize);
19561#endif
19562
19563
19564// VK_KHR_ray_query is a preprocessor guard. Do not pass it to API calls.
19565#define VK_KHR_ray_query 1
19566#define VK_KHR_RAY_QUERY_SPEC_VERSION 1
19567#define VK_KHR_RAY_QUERY_EXTENSION_NAME "VK_KHR_ray_query"
19568typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
19569 VkStructureType sType;
19570 void* pNext;
19571 VkBool32 rayQuery;
19572} VkPhysicalDeviceRayQueryFeaturesKHR;
19573
19574
19575
19576// VK_EXT_mesh_shader is a preprocessor guard. Do not pass it to API calls.
19577#define VK_EXT_mesh_shader 1
19578#define VK_EXT_MESH_SHADER_SPEC_VERSION 1
19579#define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader"
19580typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
19581 VkStructureType sType;
19582 void* pNext;
19583 VkBool32 taskShader;
19584 VkBool32 meshShader;
19585 VkBool32 multiviewMeshShader;
19586 VkBool32 primitiveFragmentShadingRateMeshShader;
19587 VkBool32 meshShaderQueries;
19588} VkPhysicalDeviceMeshShaderFeaturesEXT;
19589
19590typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT {
19591 VkStructureType sType;
19592 void* pNext;
19593 uint32_t maxTaskWorkGroupTotalCount;
19594 uint32_t maxTaskWorkGroupCount[3];
19595 uint32_t maxTaskWorkGroupInvocations;
19596 uint32_t maxTaskWorkGroupSize[3];
19597 uint32_t maxTaskPayloadSize;
19598 uint32_t maxTaskSharedMemorySize;
19599 uint32_t maxTaskPayloadAndSharedMemorySize;
19600 uint32_t maxMeshWorkGroupTotalCount;
19601 uint32_t maxMeshWorkGroupCount[3];
19602 uint32_t maxMeshWorkGroupInvocations;
19603 uint32_t maxMeshWorkGroupSize[3];
19604 uint32_t maxMeshSharedMemorySize;
19605 uint32_t maxMeshPayloadAndSharedMemorySize;
19606 uint32_t maxMeshOutputMemorySize;
19607 uint32_t maxMeshPayloadAndOutputMemorySize;
19608 uint32_t maxMeshOutputComponents;
19609 uint32_t maxMeshOutputVertices;
19610 uint32_t maxMeshOutputPrimitives;
19611 uint32_t maxMeshOutputLayers;
19612 uint32_t maxMeshMultiviewViewCount;
19613 uint32_t meshOutputPerVertexGranularity;
19614 uint32_t meshOutputPerPrimitiveGranularity;
19615 uint32_t maxPreferredTaskWorkGroupInvocations;
19616 uint32_t maxPreferredMeshWorkGroupInvocations;
19617 VkBool32 prefersLocalInvocationVertexOutput;
19618 VkBool32 prefersLocalInvocationPrimitiveOutput;
19619 VkBool32 prefersCompactVertexOutput;
19620 VkBool32 prefersCompactPrimitiveOutput;
19621} VkPhysicalDeviceMeshShaderPropertiesEXT;
19622
19623typedef struct VkDrawMeshTasksIndirectCommandEXT {
19624 uint32_t groupCountX;
19625 uint32_t groupCountY;
19626 uint32_t groupCountZ;
19627} VkDrawMeshTasksIndirectCommandEXT;
19628
19629typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
19630typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
19631typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
19632
19633#ifndef VK_NO_PROTOTYPES
19634VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT(
19635 VkCommandBuffer commandBuffer,
19636 uint32_t groupCountX,
19637 uint32_t groupCountY,
19638 uint32_t groupCountZ);
19639
19640VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT(
19641 VkCommandBuffer commandBuffer,
19642 VkBuffer buffer,
19643 VkDeviceSize offset,
19644 uint32_t drawCount,
19645 uint32_t stride);
19646
19647VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT(
19648 VkCommandBuffer commandBuffer,
19649 VkBuffer buffer,
19650 VkDeviceSize offset,
19651 VkBuffer countBuffer,
19652 VkDeviceSize countBufferOffset,
19653 uint32_t maxDrawCount,
19654 uint32_t stride);
19655#endif
19656
19657#ifdef __cplusplus
19658}
19659#endif
19660
19661#endif
19662