vulkan: Update the XML and headers to 1.1.106
[mesa.git] / include / vulkan / vulkan_core.h
1 #ifndef VULKAN_CORE_H_
2 #define VULKAN_CORE_H_ 1
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7
8 /*
9 ** Copyright (c) 2015-2019 The Khronos Group Inc.
10 **
11 ** Licensed under the Apache License, Version 2.0 (the "License");
12 ** you may not use this file except in compliance with the License.
13 ** You may obtain a copy of the License at
14 **
15 ** http://www.apache.org/licenses/LICENSE-2.0
16 **
17 ** Unless required by applicable law or agreed to in writing, software
18 ** distributed under the License is distributed on an "AS IS" BASIS,
19 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20 ** See the License for the specific language governing permissions and
21 ** limitations under the License.
22 */
23
24 /*
25 ** This header is generated from the Khronos Vulkan XML API Registry.
26 **
27 */
28
29
30
31 #define VK_VERSION_1_0 1
32 #include "vk_platform.h"
33 #define VK_MAKE_VERSION(major, minor, patch) \
34 (((major) << 22) | ((minor) << 12) | (patch))
35
36 // 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.
37 //#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0
38
39 // Vulkan 1.0 version number
40 #define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0
41
42 #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)
43 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)
44 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)
45 // Version of this file
46 #define VK_HEADER_VERSION 106
47
48
49 #define VK_NULL_HANDLE 0
50
51
52 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
53
54
55 #if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
56 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
57 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
58 #else
59 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
60 #endif
61 #endif
62
63 typedef uint32_t VkFlags;
64 typedef uint32_t VkBool32;
65 typedef uint64_t VkDeviceSize;
66 typedef uint32_t VkSampleMask;
67 VK_DEFINE_HANDLE(VkInstance)
68 VK_DEFINE_HANDLE(VkPhysicalDevice)
69 VK_DEFINE_HANDLE(VkDevice)
70 VK_DEFINE_HANDLE(VkQueue)
71 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
72 VK_DEFINE_HANDLE(VkCommandBuffer)
73 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
74 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
75 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
76 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
77 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
78 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
79 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
80 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
81 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
82 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
83 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
84 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
85 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
86 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
87 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
88 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
89 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
90 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
91 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
92 #define VK_LOD_CLAMP_NONE 1000.0f
93 #define VK_REMAINING_MIP_LEVELS (~0U)
94 #define VK_REMAINING_ARRAY_LAYERS (~0U)
95 #define VK_WHOLE_SIZE (~0ULL)
96 #define VK_ATTACHMENT_UNUSED (~0U)
97 #define VK_TRUE 1
98 #define VK_FALSE 0
99 #define VK_QUEUE_FAMILY_IGNORED (~0U)
100 #define VK_SUBPASS_EXTERNAL (~0U)
101 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256
102 #define VK_UUID_SIZE 16
103 #define VK_MAX_MEMORY_TYPES 32
104 #define VK_MAX_MEMORY_HEAPS 16
105 #define VK_MAX_EXTENSION_NAME_SIZE 256
106 #define VK_MAX_DESCRIPTION_SIZE 256
107
108 typedef enum VkPipelineCacheHeaderVersion {
109 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
110 VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
111 VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE,
112 VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1),
113 VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
114 } VkPipelineCacheHeaderVersion;
115
116 typedef enum VkResult {
117 VK_SUCCESS = 0,
118 VK_NOT_READY = 1,
119 VK_TIMEOUT = 2,
120 VK_EVENT_SET = 3,
121 VK_EVENT_RESET = 4,
122 VK_INCOMPLETE = 5,
123 VK_ERROR_OUT_OF_HOST_MEMORY = -1,
124 VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
125 VK_ERROR_INITIALIZATION_FAILED = -3,
126 VK_ERROR_DEVICE_LOST = -4,
127 VK_ERROR_MEMORY_MAP_FAILED = -5,
128 VK_ERROR_LAYER_NOT_PRESENT = -6,
129 VK_ERROR_EXTENSION_NOT_PRESENT = -7,
130 VK_ERROR_FEATURE_NOT_PRESENT = -8,
131 VK_ERROR_INCOMPATIBLE_DRIVER = -9,
132 VK_ERROR_TOO_MANY_OBJECTS = -10,
133 VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
134 VK_ERROR_FRAGMENTED_POOL = -12,
135 VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
136 VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
137 VK_ERROR_SURFACE_LOST_KHR = -1000000000,
138 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
139 VK_SUBOPTIMAL_KHR = 1000001003,
140 VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
141 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
142 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
143 VK_ERROR_INVALID_SHADER_NV = -1000012000,
144 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
145 VK_ERROR_FRAGMENTATION_EXT = -1000161000,
146 VK_ERROR_NOT_PERMITTED_EXT = -1000174001,
147 VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = -1000244000,
148 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
149 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
150 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
151 VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL,
152 VK_RESULT_END_RANGE = VK_INCOMPLETE,
153 VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1),
154 VK_RESULT_MAX_ENUM = 0x7FFFFFFF
155 } VkResult;
156
157 typedef enum VkStructureType {
158 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
159 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
160 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
161 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
162 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
163 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
164 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
165 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
166 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
167 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
168 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
169 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
170 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
171 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
172 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
173 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
174 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
175 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
176 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
177 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
178 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
179 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
180 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
181 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
182 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
183 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
184 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
185 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
186 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
187 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
188 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
189 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
190 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
191 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
192 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
193 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
194 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
195 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
196 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
197 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
198 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
199 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
200 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
201 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
202 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
203 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
204 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
205 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
206 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
207 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
208 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
209 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
210 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
211 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
212 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
213 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
214 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
215 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
216 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
217 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
218 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
219 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
220 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
221 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
222 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
223 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
224 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
225 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
226 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
227 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
228 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
229 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
230 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
231 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
232 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
233 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
234 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
235 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
236 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
237 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
238 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
239 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
240 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
241 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
242 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
243 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
244 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
245 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
246 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
247 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
248 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
249 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
250 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
251 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
252 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
253 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
254 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
255 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
256 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
257 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
258 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
259 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
260 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
261 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
262 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
263 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
264 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
265 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
266 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
267 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
268 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
269 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
270 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
271 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
272 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
273 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
274 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
275 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
276 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
277 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
278 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
279 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
280 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
281 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
282 VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
283 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
284 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
285 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
286 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
287 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
288 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
289 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
290 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
291 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
292 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
293 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
294 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
295 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
296 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
297 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
298 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
299 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
300 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
301 VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
302 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
303 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
304 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
305 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
306 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
307 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
308 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
309 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
310 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
311 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
312 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
313 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
314 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
315 VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
316 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
317 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
318 VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
319 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
320 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
321 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
322 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
323 VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
324 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
325 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
326 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
327 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
328 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
329 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
330 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = 1000082000,
331 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
332 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
333 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
334 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
335 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
336 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
337 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
338 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
339 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
340 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
341 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
342 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
343 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
344 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
345 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
346 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
347 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
348 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
349 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
350 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
351 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
352 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
353 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
354 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000,
355 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001,
356 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002,
357 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003,
358 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004,
359 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005,
360 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006,
361 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
362 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
363 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
364 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
365 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
366 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
367 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
368 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
369 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
370 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
371 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
372 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
373 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
374 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
375 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
376 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
377 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
378 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
379 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
380 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
381 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
382 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
383 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
384 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
385 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
386 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
387 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
388 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
389 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
390 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
391 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
392 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
393 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
394 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
395 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
396 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
397 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
398 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
399 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
400 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
401 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
402 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
403 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
404 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
405 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
406 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001,
407 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
408 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
409 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
410 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
411 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
412 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
413 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
414 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001,
415 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
416 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
417 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
418 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
419 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
420 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
421 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
422 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
423 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
424 VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
425 VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
426 VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
427 VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
428 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
429 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
430 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
431 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
432 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
433 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
434 VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
435 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
436 VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
437 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
438 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000,
439 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
440 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
441 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
442 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000,
443 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
444 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
445 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
446 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
447 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
448 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
449 VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
450 VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000192000,
451 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000,
452 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000,
453 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000,
454 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001,
455 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000,
456 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
457 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
458 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000,
459 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
460 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
461 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
462 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
463 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
464 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000,
465 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
466 VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
467 VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
468 VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
469 VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
470 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
471 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
472 VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
473 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000,
474 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
475 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
476 VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
477 VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
478 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
479 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
480 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = 1000244001,
481 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
482 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = 1000246000,
483 VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
484 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
485 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
486 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
487 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
488 VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
489 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
490 VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
491 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = 1000261000,
492 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
493 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
494 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
495 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
496 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
497 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
498 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
499 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
500 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
501 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
502 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
503 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
504 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
505 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
506 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
507 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
508 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
509 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
510 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
511 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
512 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
513 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
514 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
515 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
516 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
517 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
518 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
519 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
520 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
521 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
522 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
523 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
524 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
525 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
526 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
527 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
528 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
529 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
530 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
531 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
532 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
533 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
534 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
535 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
536 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
537 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
538 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES,
539 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
540 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
541 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
542 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
543 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
544 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
545 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
546 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
547 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
548 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
549 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
550 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
551 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
552 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
553 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
554 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
555 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
556 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
557 VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO,
558 VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,
559 VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1),
560 VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
561 } VkStructureType;
562
563 typedef enum VkSystemAllocationScope {
564 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
565 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
566 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
567 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
568 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
569 VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND,
570 VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE,
571 VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1),
572 VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
573 } VkSystemAllocationScope;
574
575 typedef enum VkInternalAllocationType {
576 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
577 VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
578 VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE,
579 VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1),
580 VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
581 } VkInternalAllocationType;
582
583 typedef enum VkFormat {
584 VK_FORMAT_UNDEFINED = 0,
585 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
586 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
587 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
588 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
589 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
590 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
591 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
592 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
593 VK_FORMAT_R8_UNORM = 9,
594 VK_FORMAT_R8_SNORM = 10,
595 VK_FORMAT_R8_USCALED = 11,
596 VK_FORMAT_R8_SSCALED = 12,
597 VK_FORMAT_R8_UINT = 13,
598 VK_FORMAT_R8_SINT = 14,
599 VK_FORMAT_R8_SRGB = 15,
600 VK_FORMAT_R8G8_UNORM = 16,
601 VK_FORMAT_R8G8_SNORM = 17,
602 VK_FORMAT_R8G8_USCALED = 18,
603 VK_FORMAT_R8G8_SSCALED = 19,
604 VK_FORMAT_R8G8_UINT = 20,
605 VK_FORMAT_R8G8_SINT = 21,
606 VK_FORMAT_R8G8_SRGB = 22,
607 VK_FORMAT_R8G8B8_UNORM = 23,
608 VK_FORMAT_R8G8B8_SNORM = 24,
609 VK_FORMAT_R8G8B8_USCALED = 25,
610 VK_FORMAT_R8G8B8_SSCALED = 26,
611 VK_FORMAT_R8G8B8_UINT = 27,
612 VK_FORMAT_R8G8B8_SINT = 28,
613 VK_FORMAT_R8G8B8_SRGB = 29,
614 VK_FORMAT_B8G8R8_UNORM = 30,
615 VK_FORMAT_B8G8R8_SNORM = 31,
616 VK_FORMAT_B8G8R8_USCALED = 32,
617 VK_FORMAT_B8G8R8_SSCALED = 33,
618 VK_FORMAT_B8G8R8_UINT = 34,
619 VK_FORMAT_B8G8R8_SINT = 35,
620 VK_FORMAT_B8G8R8_SRGB = 36,
621 VK_FORMAT_R8G8B8A8_UNORM = 37,
622 VK_FORMAT_R8G8B8A8_SNORM = 38,
623 VK_FORMAT_R8G8B8A8_USCALED = 39,
624 VK_FORMAT_R8G8B8A8_SSCALED = 40,
625 VK_FORMAT_R8G8B8A8_UINT = 41,
626 VK_FORMAT_R8G8B8A8_SINT = 42,
627 VK_FORMAT_R8G8B8A8_SRGB = 43,
628 VK_FORMAT_B8G8R8A8_UNORM = 44,
629 VK_FORMAT_B8G8R8A8_SNORM = 45,
630 VK_FORMAT_B8G8R8A8_USCALED = 46,
631 VK_FORMAT_B8G8R8A8_SSCALED = 47,
632 VK_FORMAT_B8G8R8A8_UINT = 48,
633 VK_FORMAT_B8G8R8A8_SINT = 49,
634 VK_FORMAT_B8G8R8A8_SRGB = 50,
635 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
636 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
637 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
638 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
639 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
640 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
641 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
642 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
643 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
644 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
645 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
646 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
647 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
648 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
649 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
650 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
651 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
652 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
653 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
654 VK_FORMAT_R16_UNORM = 70,
655 VK_FORMAT_R16_SNORM = 71,
656 VK_FORMAT_R16_USCALED = 72,
657 VK_FORMAT_R16_SSCALED = 73,
658 VK_FORMAT_R16_UINT = 74,
659 VK_FORMAT_R16_SINT = 75,
660 VK_FORMAT_R16_SFLOAT = 76,
661 VK_FORMAT_R16G16_UNORM = 77,
662 VK_FORMAT_R16G16_SNORM = 78,
663 VK_FORMAT_R16G16_USCALED = 79,
664 VK_FORMAT_R16G16_SSCALED = 80,
665 VK_FORMAT_R16G16_UINT = 81,
666 VK_FORMAT_R16G16_SINT = 82,
667 VK_FORMAT_R16G16_SFLOAT = 83,
668 VK_FORMAT_R16G16B16_UNORM = 84,
669 VK_FORMAT_R16G16B16_SNORM = 85,
670 VK_FORMAT_R16G16B16_USCALED = 86,
671 VK_FORMAT_R16G16B16_SSCALED = 87,
672 VK_FORMAT_R16G16B16_UINT = 88,
673 VK_FORMAT_R16G16B16_SINT = 89,
674 VK_FORMAT_R16G16B16_SFLOAT = 90,
675 VK_FORMAT_R16G16B16A16_UNORM = 91,
676 VK_FORMAT_R16G16B16A16_SNORM = 92,
677 VK_FORMAT_R16G16B16A16_USCALED = 93,
678 VK_FORMAT_R16G16B16A16_SSCALED = 94,
679 VK_FORMAT_R16G16B16A16_UINT = 95,
680 VK_FORMAT_R16G16B16A16_SINT = 96,
681 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
682 VK_FORMAT_R32_UINT = 98,
683 VK_FORMAT_R32_SINT = 99,
684 VK_FORMAT_R32_SFLOAT = 100,
685 VK_FORMAT_R32G32_UINT = 101,
686 VK_FORMAT_R32G32_SINT = 102,
687 VK_FORMAT_R32G32_SFLOAT = 103,
688 VK_FORMAT_R32G32B32_UINT = 104,
689 VK_FORMAT_R32G32B32_SINT = 105,
690 VK_FORMAT_R32G32B32_SFLOAT = 106,
691 VK_FORMAT_R32G32B32A32_UINT = 107,
692 VK_FORMAT_R32G32B32A32_SINT = 108,
693 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
694 VK_FORMAT_R64_UINT = 110,
695 VK_FORMAT_R64_SINT = 111,
696 VK_FORMAT_R64_SFLOAT = 112,
697 VK_FORMAT_R64G64_UINT = 113,
698 VK_FORMAT_R64G64_SINT = 114,
699 VK_FORMAT_R64G64_SFLOAT = 115,
700 VK_FORMAT_R64G64B64_UINT = 116,
701 VK_FORMAT_R64G64B64_SINT = 117,
702 VK_FORMAT_R64G64B64_SFLOAT = 118,
703 VK_FORMAT_R64G64B64A64_UINT = 119,
704 VK_FORMAT_R64G64B64A64_SINT = 120,
705 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
706 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
707 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
708 VK_FORMAT_D16_UNORM = 124,
709 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
710 VK_FORMAT_D32_SFLOAT = 126,
711 VK_FORMAT_S8_UINT = 127,
712 VK_FORMAT_D16_UNORM_S8_UINT = 128,
713 VK_FORMAT_D24_UNORM_S8_UINT = 129,
714 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
715 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
716 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
717 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
718 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
719 VK_FORMAT_BC2_UNORM_BLOCK = 135,
720 VK_FORMAT_BC2_SRGB_BLOCK = 136,
721 VK_FORMAT_BC3_UNORM_BLOCK = 137,
722 VK_FORMAT_BC3_SRGB_BLOCK = 138,
723 VK_FORMAT_BC4_UNORM_BLOCK = 139,
724 VK_FORMAT_BC4_SNORM_BLOCK = 140,
725 VK_FORMAT_BC5_UNORM_BLOCK = 141,
726 VK_FORMAT_BC5_SNORM_BLOCK = 142,
727 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
728 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
729 VK_FORMAT_BC7_UNORM_BLOCK = 145,
730 VK_FORMAT_BC7_SRGB_BLOCK = 146,
731 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
732 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
733 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
734 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
735 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
736 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
737 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
738 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
739 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
740 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
741 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
742 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
743 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
744 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
745 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
746 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
747 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
748 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
749 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
750 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
751 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
752 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
753 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
754 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
755 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
756 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
757 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
758 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
759 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
760 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
761 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
762 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
763 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
764 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
765 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
766 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
767 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
768 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
769 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
770 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
771 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
772 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
773 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
774 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
775 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
776 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
777 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
778 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
779 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
780 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
781 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
782 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
783 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
784 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
785 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
786 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
787 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
788 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
789 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
790 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
791 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
792 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
793 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
794 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
795 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
796 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
797 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
798 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
799 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
800 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
801 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
802 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
803 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
804 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
805 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
806 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
807 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
808 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
809 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
810 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
811 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
812 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
813 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
814 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
815 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
816 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
817 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
818 VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
819 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
820 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
821 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
822 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
823 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
824 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
825 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
826 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
827 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
828 VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
829 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
830 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
831 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
832 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
833 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
834 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
835 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
836 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
837 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
838 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
839 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
840 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
841 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
842 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
843 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
844 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
845 VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED,
846 VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK,
847 VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1),
848 VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
849 } VkFormat;
850
851 typedef enum VkImageType {
852 VK_IMAGE_TYPE_1D = 0,
853 VK_IMAGE_TYPE_2D = 1,
854 VK_IMAGE_TYPE_3D = 2,
855 VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D,
856 VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D,
857 VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1),
858 VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
859 } VkImageType;
860
861 typedef enum VkImageTiling {
862 VK_IMAGE_TILING_OPTIMAL = 0,
863 VK_IMAGE_TILING_LINEAR = 1,
864 VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
865 VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL,
866 VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR,
867 VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1),
868 VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
869 } VkImageTiling;
870
871 typedef enum VkPhysicalDeviceType {
872 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
873 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
874 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
875 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
876 VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
877 VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER,
878 VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU,
879 VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1),
880 VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
881 } VkPhysicalDeviceType;
882
883 typedef enum VkQueryType {
884 VK_QUERY_TYPE_OCCLUSION = 0,
885 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
886 VK_QUERY_TYPE_TIMESTAMP = 2,
887 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
888 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
889 VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION,
890 VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP,
891 VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1),
892 VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
893 } VkQueryType;
894
895 typedef enum VkSharingMode {
896 VK_SHARING_MODE_EXCLUSIVE = 0,
897 VK_SHARING_MODE_CONCURRENT = 1,
898 VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE,
899 VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT,
900 VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1),
901 VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
902 } VkSharingMode;
903
904 typedef enum VkImageLayout {
905 VK_IMAGE_LAYOUT_UNDEFINED = 0,
906 VK_IMAGE_LAYOUT_GENERAL = 1,
907 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
908 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
909 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
910 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
911 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
912 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
913 VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
914 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
915 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
916 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
917 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
918 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
919 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
920 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
921 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
922 VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED,
923 VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED,
924 VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1),
925 VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
926 } VkImageLayout;
927
928 typedef enum VkImageViewType {
929 VK_IMAGE_VIEW_TYPE_1D = 0,
930 VK_IMAGE_VIEW_TYPE_2D = 1,
931 VK_IMAGE_VIEW_TYPE_3D = 2,
932 VK_IMAGE_VIEW_TYPE_CUBE = 3,
933 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
934 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
935 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
936 VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D,
937 VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY,
938 VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1),
939 VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
940 } VkImageViewType;
941
942 typedef enum VkComponentSwizzle {
943 VK_COMPONENT_SWIZZLE_IDENTITY = 0,
944 VK_COMPONENT_SWIZZLE_ZERO = 1,
945 VK_COMPONENT_SWIZZLE_ONE = 2,
946 VK_COMPONENT_SWIZZLE_R = 3,
947 VK_COMPONENT_SWIZZLE_G = 4,
948 VK_COMPONENT_SWIZZLE_B = 5,
949 VK_COMPONENT_SWIZZLE_A = 6,
950 VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY,
951 VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A,
952 VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1),
953 VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
954 } VkComponentSwizzle;
955
956 typedef enum VkVertexInputRate {
957 VK_VERTEX_INPUT_RATE_VERTEX = 0,
958 VK_VERTEX_INPUT_RATE_INSTANCE = 1,
959 VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX,
960 VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE,
961 VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1),
962 VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
963 } VkVertexInputRate;
964
965 typedef enum VkPrimitiveTopology {
966 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
967 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
968 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
969 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
970 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
971 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
972 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
973 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
974 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
975 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
976 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
977 VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST,
978 VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST,
979 VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1),
980 VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
981 } VkPrimitiveTopology;
982
983 typedef enum VkPolygonMode {
984 VK_POLYGON_MODE_FILL = 0,
985 VK_POLYGON_MODE_LINE = 1,
986 VK_POLYGON_MODE_POINT = 2,
987 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
988 VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL,
989 VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT,
990 VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1),
991 VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
992 } VkPolygonMode;
993
994 typedef enum VkFrontFace {
995 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
996 VK_FRONT_FACE_CLOCKWISE = 1,
997 VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE,
998 VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE,
999 VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1),
1000 VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
1001 } VkFrontFace;
1002
1003 typedef enum VkCompareOp {
1004 VK_COMPARE_OP_NEVER = 0,
1005 VK_COMPARE_OP_LESS = 1,
1006 VK_COMPARE_OP_EQUAL = 2,
1007 VK_COMPARE_OP_LESS_OR_EQUAL = 3,
1008 VK_COMPARE_OP_GREATER = 4,
1009 VK_COMPARE_OP_NOT_EQUAL = 5,
1010 VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
1011 VK_COMPARE_OP_ALWAYS = 7,
1012 VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER,
1013 VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS,
1014 VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1),
1015 VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
1016 } VkCompareOp;
1017
1018 typedef enum VkStencilOp {
1019 VK_STENCIL_OP_KEEP = 0,
1020 VK_STENCIL_OP_ZERO = 1,
1021 VK_STENCIL_OP_REPLACE = 2,
1022 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
1023 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
1024 VK_STENCIL_OP_INVERT = 5,
1025 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
1026 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
1027 VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP,
1028 VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP,
1029 VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1),
1030 VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
1031 } VkStencilOp;
1032
1033 typedef enum VkLogicOp {
1034 VK_LOGIC_OP_CLEAR = 0,
1035 VK_LOGIC_OP_AND = 1,
1036 VK_LOGIC_OP_AND_REVERSE = 2,
1037 VK_LOGIC_OP_COPY = 3,
1038 VK_LOGIC_OP_AND_INVERTED = 4,
1039 VK_LOGIC_OP_NO_OP = 5,
1040 VK_LOGIC_OP_XOR = 6,
1041 VK_LOGIC_OP_OR = 7,
1042 VK_LOGIC_OP_NOR = 8,
1043 VK_LOGIC_OP_EQUIVALENT = 9,
1044 VK_LOGIC_OP_INVERT = 10,
1045 VK_LOGIC_OP_OR_REVERSE = 11,
1046 VK_LOGIC_OP_COPY_INVERTED = 12,
1047 VK_LOGIC_OP_OR_INVERTED = 13,
1048 VK_LOGIC_OP_NAND = 14,
1049 VK_LOGIC_OP_SET = 15,
1050 VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR,
1051 VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET,
1052 VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1),
1053 VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
1054 } VkLogicOp;
1055
1056 typedef enum VkBlendFactor {
1057 VK_BLEND_FACTOR_ZERO = 0,
1058 VK_BLEND_FACTOR_ONE = 1,
1059 VK_BLEND_FACTOR_SRC_COLOR = 2,
1060 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
1061 VK_BLEND_FACTOR_DST_COLOR = 4,
1062 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
1063 VK_BLEND_FACTOR_SRC_ALPHA = 6,
1064 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
1065 VK_BLEND_FACTOR_DST_ALPHA = 8,
1066 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
1067 VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
1068 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
1069 VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
1070 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
1071 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
1072 VK_BLEND_FACTOR_SRC1_COLOR = 15,
1073 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
1074 VK_BLEND_FACTOR_SRC1_ALPHA = 17,
1075 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
1076 VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO,
1077 VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA,
1078 VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1),
1079 VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
1080 } VkBlendFactor;
1081
1082 typedef enum VkBlendOp {
1083 VK_BLEND_OP_ADD = 0,
1084 VK_BLEND_OP_SUBTRACT = 1,
1085 VK_BLEND_OP_REVERSE_SUBTRACT = 2,
1086 VK_BLEND_OP_MIN = 3,
1087 VK_BLEND_OP_MAX = 4,
1088 VK_BLEND_OP_ZERO_EXT = 1000148000,
1089 VK_BLEND_OP_SRC_EXT = 1000148001,
1090 VK_BLEND_OP_DST_EXT = 1000148002,
1091 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
1092 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
1093 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
1094 VK_BLEND_OP_DST_IN_EXT = 1000148006,
1095 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
1096 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
1097 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
1098 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
1099 VK_BLEND_OP_XOR_EXT = 1000148011,
1100 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
1101 VK_BLEND_OP_SCREEN_EXT = 1000148013,
1102 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
1103 VK_BLEND_OP_DARKEN_EXT = 1000148015,
1104 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
1105 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
1106 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
1107 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
1108 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
1109 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
1110 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
1111 VK_BLEND_OP_INVERT_EXT = 1000148023,
1112 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
1113 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
1114 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
1115 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
1116 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
1117 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
1118 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
1119 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
1120 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
1121 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
1122 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
1123 VK_BLEND_OP_PLUS_EXT = 1000148035,
1124 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
1125 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
1126 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
1127 VK_BLEND_OP_MINUS_EXT = 1000148039,
1128 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
1129 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
1130 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
1131 VK_BLEND_OP_RED_EXT = 1000148043,
1132 VK_BLEND_OP_GREEN_EXT = 1000148044,
1133 VK_BLEND_OP_BLUE_EXT = 1000148045,
1134 VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD,
1135 VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX,
1136 VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1),
1137 VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
1138 } VkBlendOp;
1139
1140 typedef enum VkDynamicState {
1141 VK_DYNAMIC_STATE_VIEWPORT = 0,
1142 VK_DYNAMIC_STATE_SCISSOR = 1,
1143 VK_DYNAMIC_STATE_LINE_WIDTH = 2,
1144 VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
1145 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
1146 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
1147 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
1148 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
1149 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
1150 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1151 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
1152 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
1153 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
1154 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
1155 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
1156 VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT,
1157 VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE,
1158 VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1),
1159 VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
1160 } VkDynamicState;
1161
1162 typedef enum VkFilter {
1163 VK_FILTER_NEAREST = 0,
1164 VK_FILTER_LINEAR = 1,
1165 VK_FILTER_CUBIC_IMG = 1000015000,
1166 VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG,
1167 VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST,
1168 VK_FILTER_END_RANGE = VK_FILTER_LINEAR,
1169 VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1),
1170 VK_FILTER_MAX_ENUM = 0x7FFFFFFF
1171 } VkFilter;
1172
1173 typedef enum VkSamplerMipmapMode {
1174 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
1175 VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
1176 VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST,
1177 VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR,
1178 VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1),
1179 VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
1180 } VkSamplerMipmapMode;
1181
1182 typedef enum VkSamplerAddressMode {
1183 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
1184 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
1185 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
1186 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
1187 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
1188 VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT,
1189 VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,
1190 VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1),
1191 VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
1192 } VkSamplerAddressMode;
1193
1194 typedef enum VkBorderColor {
1195 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
1196 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
1197 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
1198 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
1199 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
1200 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
1201 VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,
1202 VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE,
1203 VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1),
1204 VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
1205 } VkBorderColor;
1206
1207 typedef enum VkDescriptorType {
1208 VK_DESCRIPTOR_TYPE_SAMPLER = 0,
1209 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
1210 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
1211 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
1212 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
1213 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
1214 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
1215 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
1216 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
1217 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
1218 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
1219 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
1220 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1221 VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER,
1222 VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
1223 VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1),
1224 VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
1225 } VkDescriptorType;
1226
1227 typedef enum VkAttachmentLoadOp {
1228 VK_ATTACHMENT_LOAD_OP_LOAD = 0,
1229 VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
1230 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
1231 VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD,
1232 VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE,
1233 VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1),
1234 VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
1235 } VkAttachmentLoadOp;
1236
1237 typedef enum VkAttachmentStoreOp {
1238 VK_ATTACHMENT_STORE_OP_STORE = 0,
1239 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
1240 VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE,
1241 VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE,
1242 VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1),
1243 VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
1244 } VkAttachmentStoreOp;
1245
1246 typedef enum VkPipelineBindPoint {
1247 VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
1248 VK_PIPELINE_BIND_POINT_COMPUTE = 1,
1249 VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = 1000165000,
1250 VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS,
1251 VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE,
1252 VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1),
1253 VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
1254 } VkPipelineBindPoint;
1255
1256 typedef enum VkCommandBufferLevel {
1257 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
1258 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
1259 VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY,
1260 VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY,
1261 VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1),
1262 VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
1263 } VkCommandBufferLevel;
1264
1265 typedef enum VkIndexType {
1266 VK_INDEX_TYPE_UINT16 = 0,
1267 VK_INDEX_TYPE_UINT32 = 1,
1268 VK_INDEX_TYPE_NONE_NV = 1000165000,
1269 VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16,
1270 VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32,
1271 VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1),
1272 VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
1273 } VkIndexType;
1274
1275 typedef enum VkSubpassContents {
1276 VK_SUBPASS_CONTENTS_INLINE = 0,
1277 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
1278 VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE,
1279 VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS,
1280 VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1),
1281 VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
1282 } VkSubpassContents;
1283
1284 typedef enum VkObjectType {
1285 VK_OBJECT_TYPE_UNKNOWN = 0,
1286 VK_OBJECT_TYPE_INSTANCE = 1,
1287 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1288 VK_OBJECT_TYPE_DEVICE = 3,
1289 VK_OBJECT_TYPE_QUEUE = 4,
1290 VK_OBJECT_TYPE_SEMAPHORE = 5,
1291 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1292 VK_OBJECT_TYPE_FENCE = 7,
1293 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1294 VK_OBJECT_TYPE_BUFFER = 9,
1295 VK_OBJECT_TYPE_IMAGE = 10,
1296 VK_OBJECT_TYPE_EVENT = 11,
1297 VK_OBJECT_TYPE_QUERY_POOL = 12,
1298 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1299 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1300 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1301 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1302 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1303 VK_OBJECT_TYPE_RENDER_PASS = 18,
1304 VK_OBJECT_TYPE_PIPELINE = 19,
1305 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1306 VK_OBJECT_TYPE_SAMPLER = 21,
1307 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1308 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1309 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1310 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1311 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1312 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1313 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1314 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1315 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1316 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1317 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1318 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
1319 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
1320 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1321 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
1322 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1323 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1324 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1325 VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN,
1326 VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL,
1327 VK_OBJECT_TYPE_RANGE_SIZE = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_UNKNOWN + 1),
1328 VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
1329 } VkObjectType;
1330
1331 typedef enum VkVendorId {
1332 VK_VENDOR_ID_VIV = 0x10001,
1333 VK_VENDOR_ID_VSI = 0x10002,
1334 VK_VENDOR_ID_KAZAN = 0x10003,
1335 VK_VENDOR_ID_BEGIN_RANGE = VK_VENDOR_ID_VIV,
1336 VK_VENDOR_ID_END_RANGE = VK_VENDOR_ID_KAZAN,
1337 VK_VENDOR_ID_RANGE_SIZE = (VK_VENDOR_ID_KAZAN - VK_VENDOR_ID_VIV + 1),
1338 VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
1339 } VkVendorId;
1340 typedef VkFlags VkInstanceCreateFlags;
1341
1342 typedef enum VkFormatFeatureFlagBits {
1343 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
1344 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
1345 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
1346 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
1347 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
1348 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
1349 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
1350 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
1351 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
1352 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
1353 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
1354 VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
1355 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
1356 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
1357 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
1358 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
1359 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
1360 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
1361 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
1362 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
1363 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
1364 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
1365 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
1366 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
1367 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
1368 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
1369 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
1370 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
1371 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
1372 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
1373 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
1374 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,
1375 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
1376 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
1377 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
1378 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1379 } VkFormatFeatureFlagBits;
1380 typedef VkFlags VkFormatFeatureFlags;
1381
1382 typedef enum VkImageUsageFlagBits {
1383 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
1384 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
1385 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
1386 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
1387 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
1388 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
1389 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
1390 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
1391 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
1392 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
1393 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1394 } VkImageUsageFlagBits;
1395 typedef VkFlags VkImageUsageFlags;
1396
1397 typedef enum VkImageCreateFlagBits {
1398 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
1399 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
1400 VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
1401 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
1402 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
1403 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
1404 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
1405 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
1406 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
1407 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
1408 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
1409 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
1410 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
1411 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
1412 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
1413 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
1414 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
1415 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
1416 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
1417 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
1418 VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
1419 VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1420 } VkImageCreateFlagBits;
1421 typedef VkFlags VkImageCreateFlags;
1422
1423 typedef enum VkSampleCountFlagBits {
1424 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
1425 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
1426 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
1427 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
1428 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
1429 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
1430 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
1431 VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1432 } VkSampleCountFlagBits;
1433 typedef VkFlags VkSampleCountFlags;
1434
1435 typedef enum VkQueueFlagBits {
1436 VK_QUEUE_GRAPHICS_BIT = 0x00000001,
1437 VK_QUEUE_COMPUTE_BIT = 0x00000002,
1438 VK_QUEUE_TRANSFER_BIT = 0x00000004,
1439 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
1440 VK_QUEUE_PROTECTED_BIT = 0x00000010,
1441 VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1442 } VkQueueFlagBits;
1443 typedef VkFlags VkQueueFlags;
1444
1445 typedef enum VkMemoryPropertyFlagBits {
1446 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
1447 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
1448 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
1449 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
1450 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
1451 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
1452 VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1453 } VkMemoryPropertyFlagBits;
1454 typedef VkFlags VkMemoryPropertyFlags;
1455
1456 typedef enum VkMemoryHeapFlagBits {
1457 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
1458 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
1459 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
1460 VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1461 } VkMemoryHeapFlagBits;
1462 typedef VkFlags VkMemoryHeapFlags;
1463 typedef VkFlags VkDeviceCreateFlags;
1464
1465 typedef enum VkDeviceQueueCreateFlagBits {
1466 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
1467 VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1468 } VkDeviceQueueCreateFlagBits;
1469 typedef VkFlags VkDeviceQueueCreateFlags;
1470
1471 typedef enum VkPipelineStageFlagBits {
1472 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
1473 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
1474 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
1475 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
1476 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
1477 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
1478 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
1479 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
1480 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
1481 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
1482 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
1483 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
1484 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
1485 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
1486 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
1487 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
1488 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
1489 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
1490 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
1491 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
1492 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000,
1493 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 0x00200000,
1494 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000,
1495 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
1496 VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
1497 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
1498 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1499 } VkPipelineStageFlagBits;
1500 typedef VkFlags VkPipelineStageFlags;
1501 typedef VkFlags VkMemoryMapFlags;
1502
1503 typedef enum VkImageAspectFlagBits {
1504 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
1505 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
1506 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
1507 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
1508 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
1509 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
1510 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
1511 VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
1512 VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
1513 VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
1514 VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
1515 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
1516 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
1517 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
1518 VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1519 } VkImageAspectFlagBits;
1520 typedef VkFlags VkImageAspectFlags;
1521
1522 typedef enum VkSparseImageFormatFlagBits {
1523 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
1524 VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
1525 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
1526 VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1527 } VkSparseImageFormatFlagBits;
1528 typedef VkFlags VkSparseImageFormatFlags;
1529
1530 typedef enum VkSparseMemoryBindFlagBits {
1531 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
1532 VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1533 } VkSparseMemoryBindFlagBits;
1534 typedef VkFlags VkSparseMemoryBindFlags;
1535
1536 typedef enum VkFenceCreateFlagBits {
1537 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
1538 VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1539 } VkFenceCreateFlagBits;
1540 typedef VkFlags VkFenceCreateFlags;
1541 typedef VkFlags VkSemaphoreCreateFlags;
1542 typedef VkFlags VkEventCreateFlags;
1543 typedef VkFlags VkQueryPoolCreateFlags;
1544
1545 typedef enum VkQueryPipelineStatisticFlagBits {
1546 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
1547 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
1548 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
1549 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
1550 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
1551 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
1552 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
1553 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
1554 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
1555 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
1556 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
1557 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1558 } VkQueryPipelineStatisticFlagBits;
1559 typedef VkFlags VkQueryPipelineStatisticFlags;
1560
1561 typedef enum VkQueryResultFlagBits {
1562 VK_QUERY_RESULT_64_BIT = 0x00000001,
1563 VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
1564 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
1565 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
1566 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1567 } VkQueryResultFlagBits;
1568 typedef VkFlags VkQueryResultFlags;
1569
1570 typedef enum VkBufferCreateFlagBits {
1571 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
1572 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
1573 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
1574 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
1575 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000010,
1576 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1577 } VkBufferCreateFlagBits;
1578 typedef VkFlags VkBufferCreateFlags;
1579
1580 typedef enum VkBufferUsageFlagBits {
1581 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
1582 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
1583 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
1584 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
1585 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
1586 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
1587 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
1588 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
1589 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
1590 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
1591 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
1592 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
1593 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400,
1594 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 0x00020000,
1595 VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1596 } VkBufferUsageFlagBits;
1597 typedef VkFlags VkBufferUsageFlags;
1598 typedef VkFlags VkBufferViewCreateFlags;
1599
1600 typedef enum VkImageViewCreateFlagBits {
1601 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
1602 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1603 } VkImageViewCreateFlagBits;
1604 typedef VkFlags VkImageViewCreateFlags;
1605 typedef VkFlags VkShaderModuleCreateFlags;
1606 typedef VkFlags VkPipelineCacheCreateFlags;
1607
1608 typedef enum VkPipelineCreateFlagBits {
1609 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
1610 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
1611 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
1612 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
1613 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
1614 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
1615 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
1616 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
1617 VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1618 } VkPipelineCreateFlagBits;
1619 typedef VkFlags VkPipelineCreateFlags;
1620 typedef VkFlags VkPipelineShaderStageCreateFlags;
1621
1622 typedef enum VkShaderStageFlagBits {
1623 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
1624 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
1625 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
1626 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
1627 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
1628 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
1629 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
1630 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
1631 VK_SHADER_STAGE_RAYGEN_BIT_NV = 0x00000100,
1632 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 0x00000200,
1633 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 0x00000400,
1634 VK_SHADER_STAGE_MISS_BIT_NV = 0x00000800,
1635 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 0x00001000,
1636 VK_SHADER_STAGE_CALLABLE_BIT_NV = 0x00002000,
1637 VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
1638 VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
1639 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1640 } VkShaderStageFlagBits;
1641 typedef VkFlags VkPipelineVertexInputStateCreateFlags;
1642 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
1643 typedef VkFlags VkPipelineTessellationStateCreateFlags;
1644 typedef VkFlags VkPipelineViewportStateCreateFlags;
1645 typedef VkFlags VkPipelineRasterizationStateCreateFlags;
1646
1647 typedef enum VkCullModeFlagBits {
1648 VK_CULL_MODE_NONE = 0,
1649 VK_CULL_MODE_FRONT_BIT = 0x00000001,
1650 VK_CULL_MODE_BACK_BIT = 0x00000002,
1651 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
1652 VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1653 } VkCullModeFlagBits;
1654 typedef VkFlags VkCullModeFlags;
1655 typedef VkFlags VkPipelineMultisampleStateCreateFlags;
1656 typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
1657 typedef VkFlags VkPipelineColorBlendStateCreateFlags;
1658
1659 typedef enum VkColorComponentFlagBits {
1660 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
1661 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
1662 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
1663 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
1664 VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1665 } VkColorComponentFlagBits;
1666 typedef VkFlags VkColorComponentFlags;
1667 typedef VkFlags VkPipelineDynamicStateCreateFlags;
1668 typedef VkFlags VkPipelineLayoutCreateFlags;
1669 typedef VkFlags VkShaderStageFlags;
1670
1671 typedef enum VkSamplerCreateFlagBits {
1672 VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
1673 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
1674 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1675 } VkSamplerCreateFlagBits;
1676 typedef VkFlags VkSamplerCreateFlags;
1677
1678 typedef enum VkDescriptorSetLayoutCreateFlagBits {
1679 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
1680 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
1681 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1682 } VkDescriptorSetLayoutCreateFlagBits;
1683 typedef VkFlags VkDescriptorSetLayoutCreateFlags;
1684
1685 typedef enum VkDescriptorPoolCreateFlagBits {
1686 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
1687 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002,
1688 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1689 } VkDescriptorPoolCreateFlagBits;
1690 typedef VkFlags VkDescriptorPoolCreateFlags;
1691 typedef VkFlags VkDescriptorPoolResetFlags;
1692 typedef VkFlags VkFramebufferCreateFlags;
1693 typedef VkFlags VkRenderPassCreateFlags;
1694
1695 typedef enum VkAttachmentDescriptionFlagBits {
1696 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
1697 VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1698 } VkAttachmentDescriptionFlagBits;
1699 typedef VkFlags VkAttachmentDescriptionFlags;
1700
1701 typedef enum VkSubpassDescriptionFlagBits {
1702 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
1703 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
1704 VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1705 } VkSubpassDescriptionFlagBits;
1706 typedef VkFlags VkSubpassDescriptionFlags;
1707
1708 typedef enum VkAccessFlagBits {
1709 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
1710 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
1711 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
1712 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
1713 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
1714 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
1715 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
1716 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
1717 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
1718 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
1719 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
1720 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
1721 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
1722 VK_ACCESS_HOST_READ_BIT = 0x00002000,
1723 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
1724 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
1725 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
1726 VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
1727 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
1728 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
1729 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
1730 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
1731 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
1732 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
1733 VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
1734 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000,
1735 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000,
1736 VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
1737 VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1738 } VkAccessFlagBits;
1739 typedef VkFlags VkAccessFlags;
1740
1741 typedef enum VkDependencyFlagBits {
1742 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
1743 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
1744 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
1745 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
1746 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
1747 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1748 } VkDependencyFlagBits;
1749 typedef VkFlags VkDependencyFlags;
1750
1751 typedef enum VkCommandPoolCreateFlagBits {
1752 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
1753 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
1754 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
1755 VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1756 } VkCommandPoolCreateFlagBits;
1757 typedef VkFlags VkCommandPoolCreateFlags;
1758
1759 typedef enum VkCommandPoolResetFlagBits {
1760 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
1761 VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1762 } VkCommandPoolResetFlagBits;
1763 typedef VkFlags VkCommandPoolResetFlags;
1764
1765 typedef enum VkCommandBufferUsageFlagBits {
1766 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
1767 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
1768 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
1769 VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1770 } VkCommandBufferUsageFlagBits;
1771 typedef VkFlags VkCommandBufferUsageFlags;
1772
1773 typedef enum VkQueryControlFlagBits {
1774 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
1775 VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1776 } VkQueryControlFlagBits;
1777 typedef VkFlags VkQueryControlFlags;
1778
1779 typedef enum VkCommandBufferResetFlagBits {
1780 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
1781 VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1782 } VkCommandBufferResetFlagBits;
1783 typedef VkFlags VkCommandBufferResetFlags;
1784
1785 typedef enum VkStencilFaceFlagBits {
1786 VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
1787 VK_STENCIL_FACE_BACK_BIT = 0x00000002,
1788 VK_STENCIL_FRONT_AND_BACK = 0x00000003,
1789 VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
1790 } VkStencilFaceFlagBits;
1791 typedef VkFlags VkStencilFaceFlags;
1792 typedef struct VkApplicationInfo {
1793 VkStructureType sType;
1794 const void* pNext;
1795 const char* pApplicationName;
1796 uint32_t applicationVersion;
1797 const char* pEngineName;
1798 uint32_t engineVersion;
1799 uint32_t apiVersion;
1800 } VkApplicationInfo;
1801
1802 typedef struct VkInstanceCreateInfo {
1803 VkStructureType sType;
1804 const void* pNext;
1805 VkInstanceCreateFlags flags;
1806 const VkApplicationInfo* pApplicationInfo;
1807 uint32_t enabledLayerCount;
1808 const char* const* ppEnabledLayerNames;
1809 uint32_t enabledExtensionCount;
1810 const char* const* ppEnabledExtensionNames;
1811 } VkInstanceCreateInfo;
1812
1813 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
1814 void* pUserData,
1815 size_t size,
1816 size_t alignment,
1817 VkSystemAllocationScope allocationScope);
1818
1819 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
1820 void* pUserData,
1821 void* pOriginal,
1822 size_t size,
1823 size_t alignment,
1824 VkSystemAllocationScope allocationScope);
1825
1826 typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
1827 void* pUserData,
1828 void* pMemory);
1829
1830 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
1831 void* pUserData,
1832 size_t size,
1833 VkInternalAllocationType allocationType,
1834 VkSystemAllocationScope allocationScope);
1835
1836 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
1837 void* pUserData,
1838 size_t size,
1839 VkInternalAllocationType allocationType,
1840 VkSystemAllocationScope allocationScope);
1841
1842 typedef struct VkAllocationCallbacks {
1843 void* pUserData;
1844 PFN_vkAllocationFunction pfnAllocation;
1845 PFN_vkReallocationFunction pfnReallocation;
1846 PFN_vkFreeFunction pfnFree;
1847 PFN_vkInternalAllocationNotification pfnInternalAllocation;
1848 PFN_vkInternalFreeNotification pfnInternalFree;
1849 } VkAllocationCallbacks;
1850
1851 typedef struct VkPhysicalDeviceFeatures {
1852 VkBool32 robustBufferAccess;
1853 VkBool32 fullDrawIndexUint32;
1854 VkBool32 imageCubeArray;
1855 VkBool32 independentBlend;
1856 VkBool32 geometryShader;
1857 VkBool32 tessellationShader;
1858 VkBool32 sampleRateShading;
1859 VkBool32 dualSrcBlend;
1860 VkBool32 logicOp;
1861 VkBool32 multiDrawIndirect;
1862 VkBool32 drawIndirectFirstInstance;
1863 VkBool32 depthClamp;
1864 VkBool32 depthBiasClamp;
1865 VkBool32 fillModeNonSolid;
1866 VkBool32 depthBounds;
1867 VkBool32 wideLines;
1868 VkBool32 largePoints;
1869 VkBool32 alphaToOne;
1870 VkBool32 multiViewport;
1871 VkBool32 samplerAnisotropy;
1872 VkBool32 textureCompressionETC2;
1873 VkBool32 textureCompressionASTC_LDR;
1874 VkBool32 textureCompressionBC;
1875 VkBool32 occlusionQueryPrecise;
1876 VkBool32 pipelineStatisticsQuery;
1877 VkBool32 vertexPipelineStoresAndAtomics;
1878 VkBool32 fragmentStoresAndAtomics;
1879 VkBool32 shaderTessellationAndGeometryPointSize;
1880 VkBool32 shaderImageGatherExtended;
1881 VkBool32 shaderStorageImageExtendedFormats;
1882 VkBool32 shaderStorageImageMultisample;
1883 VkBool32 shaderStorageImageReadWithoutFormat;
1884 VkBool32 shaderStorageImageWriteWithoutFormat;
1885 VkBool32 shaderUniformBufferArrayDynamicIndexing;
1886 VkBool32 shaderSampledImageArrayDynamicIndexing;
1887 VkBool32 shaderStorageBufferArrayDynamicIndexing;
1888 VkBool32 shaderStorageImageArrayDynamicIndexing;
1889 VkBool32 shaderClipDistance;
1890 VkBool32 shaderCullDistance;
1891 VkBool32 shaderFloat64;
1892 VkBool32 shaderInt64;
1893 VkBool32 shaderInt16;
1894 VkBool32 shaderResourceResidency;
1895 VkBool32 shaderResourceMinLod;
1896 VkBool32 sparseBinding;
1897 VkBool32 sparseResidencyBuffer;
1898 VkBool32 sparseResidencyImage2D;
1899 VkBool32 sparseResidencyImage3D;
1900 VkBool32 sparseResidency2Samples;
1901 VkBool32 sparseResidency4Samples;
1902 VkBool32 sparseResidency8Samples;
1903 VkBool32 sparseResidency16Samples;
1904 VkBool32 sparseResidencyAliased;
1905 VkBool32 variableMultisampleRate;
1906 VkBool32 inheritedQueries;
1907 } VkPhysicalDeviceFeatures;
1908
1909 typedef struct VkFormatProperties {
1910 VkFormatFeatureFlags linearTilingFeatures;
1911 VkFormatFeatureFlags optimalTilingFeatures;
1912 VkFormatFeatureFlags bufferFeatures;
1913 } VkFormatProperties;
1914
1915 typedef struct VkExtent3D {
1916 uint32_t width;
1917 uint32_t height;
1918 uint32_t depth;
1919 } VkExtent3D;
1920
1921 typedef struct VkImageFormatProperties {
1922 VkExtent3D maxExtent;
1923 uint32_t maxMipLevels;
1924 uint32_t maxArrayLayers;
1925 VkSampleCountFlags sampleCounts;
1926 VkDeviceSize maxResourceSize;
1927 } VkImageFormatProperties;
1928
1929 typedef struct VkPhysicalDeviceLimits {
1930 uint32_t maxImageDimension1D;
1931 uint32_t maxImageDimension2D;
1932 uint32_t maxImageDimension3D;
1933 uint32_t maxImageDimensionCube;
1934 uint32_t maxImageArrayLayers;
1935 uint32_t maxTexelBufferElements;
1936 uint32_t maxUniformBufferRange;
1937 uint32_t maxStorageBufferRange;
1938 uint32_t maxPushConstantsSize;
1939 uint32_t maxMemoryAllocationCount;
1940 uint32_t maxSamplerAllocationCount;
1941 VkDeviceSize bufferImageGranularity;
1942 VkDeviceSize sparseAddressSpaceSize;
1943 uint32_t maxBoundDescriptorSets;
1944 uint32_t maxPerStageDescriptorSamplers;
1945 uint32_t maxPerStageDescriptorUniformBuffers;
1946 uint32_t maxPerStageDescriptorStorageBuffers;
1947 uint32_t maxPerStageDescriptorSampledImages;
1948 uint32_t maxPerStageDescriptorStorageImages;
1949 uint32_t maxPerStageDescriptorInputAttachments;
1950 uint32_t maxPerStageResources;
1951 uint32_t maxDescriptorSetSamplers;
1952 uint32_t maxDescriptorSetUniformBuffers;
1953 uint32_t maxDescriptorSetUniformBuffersDynamic;
1954 uint32_t maxDescriptorSetStorageBuffers;
1955 uint32_t maxDescriptorSetStorageBuffersDynamic;
1956 uint32_t maxDescriptorSetSampledImages;
1957 uint32_t maxDescriptorSetStorageImages;
1958 uint32_t maxDescriptorSetInputAttachments;
1959 uint32_t maxVertexInputAttributes;
1960 uint32_t maxVertexInputBindings;
1961 uint32_t maxVertexInputAttributeOffset;
1962 uint32_t maxVertexInputBindingStride;
1963 uint32_t maxVertexOutputComponents;
1964 uint32_t maxTessellationGenerationLevel;
1965 uint32_t maxTessellationPatchSize;
1966 uint32_t maxTessellationControlPerVertexInputComponents;
1967 uint32_t maxTessellationControlPerVertexOutputComponents;
1968 uint32_t maxTessellationControlPerPatchOutputComponents;
1969 uint32_t maxTessellationControlTotalOutputComponents;
1970 uint32_t maxTessellationEvaluationInputComponents;
1971 uint32_t maxTessellationEvaluationOutputComponents;
1972 uint32_t maxGeometryShaderInvocations;
1973 uint32_t maxGeometryInputComponents;
1974 uint32_t maxGeometryOutputComponents;
1975 uint32_t maxGeometryOutputVertices;
1976 uint32_t maxGeometryTotalOutputComponents;
1977 uint32_t maxFragmentInputComponents;
1978 uint32_t maxFragmentOutputAttachments;
1979 uint32_t maxFragmentDualSrcAttachments;
1980 uint32_t maxFragmentCombinedOutputResources;
1981 uint32_t maxComputeSharedMemorySize;
1982 uint32_t maxComputeWorkGroupCount[3];
1983 uint32_t maxComputeWorkGroupInvocations;
1984 uint32_t maxComputeWorkGroupSize[3];
1985 uint32_t subPixelPrecisionBits;
1986 uint32_t subTexelPrecisionBits;
1987 uint32_t mipmapPrecisionBits;
1988 uint32_t maxDrawIndexedIndexValue;
1989 uint32_t maxDrawIndirectCount;
1990 float maxSamplerLodBias;
1991 float maxSamplerAnisotropy;
1992 uint32_t maxViewports;
1993 uint32_t maxViewportDimensions[2];
1994 float viewportBoundsRange[2];
1995 uint32_t viewportSubPixelBits;
1996 size_t minMemoryMapAlignment;
1997 VkDeviceSize minTexelBufferOffsetAlignment;
1998 VkDeviceSize minUniformBufferOffsetAlignment;
1999 VkDeviceSize minStorageBufferOffsetAlignment;
2000 int32_t minTexelOffset;
2001 uint32_t maxTexelOffset;
2002 int32_t minTexelGatherOffset;
2003 uint32_t maxTexelGatherOffset;
2004 float minInterpolationOffset;
2005 float maxInterpolationOffset;
2006 uint32_t subPixelInterpolationOffsetBits;
2007 uint32_t maxFramebufferWidth;
2008 uint32_t maxFramebufferHeight;
2009 uint32_t maxFramebufferLayers;
2010 VkSampleCountFlags framebufferColorSampleCounts;
2011 VkSampleCountFlags framebufferDepthSampleCounts;
2012 VkSampleCountFlags framebufferStencilSampleCounts;
2013 VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
2014 uint32_t maxColorAttachments;
2015 VkSampleCountFlags sampledImageColorSampleCounts;
2016 VkSampleCountFlags sampledImageIntegerSampleCounts;
2017 VkSampleCountFlags sampledImageDepthSampleCounts;
2018 VkSampleCountFlags sampledImageStencilSampleCounts;
2019 VkSampleCountFlags storageImageSampleCounts;
2020 uint32_t maxSampleMaskWords;
2021 VkBool32 timestampComputeAndGraphics;
2022 float timestampPeriod;
2023 uint32_t maxClipDistances;
2024 uint32_t maxCullDistances;
2025 uint32_t maxCombinedClipAndCullDistances;
2026 uint32_t discreteQueuePriorities;
2027 float pointSizeRange[2];
2028 float lineWidthRange[2];
2029 float pointSizeGranularity;
2030 float lineWidthGranularity;
2031 VkBool32 strictLines;
2032 VkBool32 standardSampleLocations;
2033 VkDeviceSize optimalBufferCopyOffsetAlignment;
2034 VkDeviceSize optimalBufferCopyRowPitchAlignment;
2035 VkDeviceSize nonCoherentAtomSize;
2036 } VkPhysicalDeviceLimits;
2037
2038 typedef struct VkPhysicalDeviceSparseProperties {
2039 VkBool32 residencyStandard2DBlockShape;
2040 VkBool32 residencyStandard2DMultisampleBlockShape;
2041 VkBool32 residencyStandard3DBlockShape;
2042 VkBool32 residencyAlignedMipSize;
2043 VkBool32 residencyNonResidentStrict;
2044 } VkPhysicalDeviceSparseProperties;
2045
2046 typedef struct VkPhysicalDeviceProperties {
2047 uint32_t apiVersion;
2048 uint32_t driverVersion;
2049 uint32_t vendorID;
2050 uint32_t deviceID;
2051 VkPhysicalDeviceType deviceType;
2052 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
2053 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
2054 VkPhysicalDeviceLimits limits;
2055 VkPhysicalDeviceSparseProperties sparseProperties;
2056 } VkPhysicalDeviceProperties;
2057
2058 typedef struct VkQueueFamilyProperties {
2059 VkQueueFlags queueFlags;
2060 uint32_t queueCount;
2061 uint32_t timestampValidBits;
2062 VkExtent3D minImageTransferGranularity;
2063 } VkQueueFamilyProperties;
2064
2065 typedef struct VkMemoryType {
2066 VkMemoryPropertyFlags propertyFlags;
2067 uint32_t heapIndex;
2068 } VkMemoryType;
2069
2070 typedef struct VkMemoryHeap {
2071 VkDeviceSize size;
2072 VkMemoryHeapFlags flags;
2073 } VkMemoryHeap;
2074
2075 typedef struct VkPhysicalDeviceMemoryProperties {
2076 uint32_t memoryTypeCount;
2077 VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
2078 uint32_t memoryHeapCount;
2079 VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
2080 } VkPhysicalDeviceMemoryProperties;
2081
2082 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
2083 typedef struct VkDeviceQueueCreateInfo {
2084 VkStructureType sType;
2085 const void* pNext;
2086 VkDeviceQueueCreateFlags flags;
2087 uint32_t queueFamilyIndex;
2088 uint32_t queueCount;
2089 const float* pQueuePriorities;
2090 } VkDeviceQueueCreateInfo;
2091
2092 typedef struct VkDeviceCreateInfo {
2093 VkStructureType sType;
2094 const void* pNext;
2095 VkDeviceCreateFlags flags;
2096 uint32_t queueCreateInfoCount;
2097 const VkDeviceQueueCreateInfo* pQueueCreateInfos;
2098 uint32_t enabledLayerCount;
2099 const char* const* ppEnabledLayerNames;
2100 uint32_t enabledExtensionCount;
2101 const char* const* ppEnabledExtensionNames;
2102 const VkPhysicalDeviceFeatures* pEnabledFeatures;
2103 } VkDeviceCreateInfo;
2104
2105 typedef struct VkExtensionProperties {
2106 char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
2107 uint32_t specVersion;
2108 } VkExtensionProperties;
2109
2110 typedef struct VkLayerProperties {
2111 char layerName[VK_MAX_EXTENSION_NAME_SIZE];
2112 uint32_t specVersion;
2113 uint32_t implementationVersion;
2114 char description[VK_MAX_DESCRIPTION_SIZE];
2115 } VkLayerProperties;
2116
2117 typedef struct VkSubmitInfo {
2118 VkStructureType sType;
2119 const void* pNext;
2120 uint32_t waitSemaphoreCount;
2121 const VkSemaphore* pWaitSemaphores;
2122 const VkPipelineStageFlags* pWaitDstStageMask;
2123 uint32_t commandBufferCount;
2124 const VkCommandBuffer* pCommandBuffers;
2125 uint32_t signalSemaphoreCount;
2126 const VkSemaphore* pSignalSemaphores;
2127 } VkSubmitInfo;
2128
2129 typedef struct VkMemoryAllocateInfo {
2130 VkStructureType sType;
2131 const void* pNext;
2132 VkDeviceSize allocationSize;
2133 uint32_t memoryTypeIndex;
2134 } VkMemoryAllocateInfo;
2135
2136 typedef struct VkMappedMemoryRange {
2137 VkStructureType sType;
2138 const void* pNext;
2139 VkDeviceMemory memory;
2140 VkDeviceSize offset;
2141 VkDeviceSize size;
2142 } VkMappedMemoryRange;
2143
2144 typedef struct VkMemoryRequirements {
2145 VkDeviceSize size;
2146 VkDeviceSize alignment;
2147 uint32_t memoryTypeBits;
2148 } VkMemoryRequirements;
2149
2150 typedef struct VkSparseImageFormatProperties {
2151 VkImageAspectFlags aspectMask;
2152 VkExtent3D imageGranularity;
2153 VkSparseImageFormatFlags flags;
2154 } VkSparseImageFormatProperties;
2155
2156 typedef struct VkSparseImageMemoryRequirements {
2157 VkSparseImageFormatProperties formatProperties;
2158 uint32_t imageMipTailFirstLod;
2159 VkDeviceSize imageMipTailSize;
2160 VkDeviceSize imageMipTailOffset;
2161 VkDeviceSize imageMipTailStride;
2162 } VkSparseImageMemoryRequirements;
2163
2164 typedef struct VkSparseMemoryBind {
2165 VkDeviceSize resourceOffset;
2166 VkDeviceSize size;
2167 VkDeviceMemory memory;
2168 VkDeviceSize memoryOffset;
2169 VkSparseMemoryBindFlags flags;
2170 } VkSparseMemoryBind;
2171
2172 typedef struct VkSparseBufferMemoryBindInfo {
2173 VkBuffer buffer;
2174 uint32_t bindCount;
2175 const VkSparseMemoryBind* pBinds;
2176 } VkSparseBufferMemoryBindInfo;
2177
2178 typedef struct VkSparseImageOpaqueMemoryBindInfo {
2179 VkImage image;
2180 uint32_t bindCount;
2181 const VkSparseMemoryBind* pBinds;
2182 } VkSparseImageOpaqueMemoryBindInfo;
2183
2184 typedef struct VkImageSubresource {
2185 VkImageAspectFlags aspectMask;
2186 uint32_t mipLevel;
2187 uint32_t arrayLayer;
2188 } VkImageSubresource;
2189
2190 typedef struct VkOffset3D {
2191 int32_t x;
2192 int32_t y;
2193 int32_t z;
2194 } VkOffset3D;
2195
2196 typedef struct VkSparseImageMemoryBind {
2197 VkImageSubresource subresource;
2198 VkOffset3D offset;
2199 VkExtent3D extent;
2200 VkDeviceMemory memory;
2201 VkDeviceSize memoryOffset;
2202 VkSparseMemoryBindFlags flags;
2203 } VkSparseImageMemoryBind;
2204
2205 typedef struct VkSparseImageMemoryBindInfo {
2206 VkImage image;
2207 uint32_t bindCount;
2208 const VkSparseImageMemoryBind* pBinds;
2209 } VkSparseImageMemoryBindInfo;
2210
2211 typedef struct VkBindSparseInfo {
2212 VkStructureType sType;
2213 const void* pNext;
2214 uint32_t waitSemaphoreCount;
2215 const VkSemaphore* pWaitSemaphores;
2216 uint32_t bufferBindCount;
2217 const VkSparseBufferMemoryBindInfo* pBufferBinds;
2218 uint32_t imageOpaqueBindCount;
2219 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
2220 uint32_t imageBindCount;
2221 const VkSparseImageMemoryBindInfo* pImageBinds;
2222 uint32_t signalSemaphoreCount;
2223 const VkSemaphore* pSignalSemaphores;
2224 } VkBindSparseInfo;
2225
2226 typedef struct VkFenceCreateInfo {
2227 VkStructureType sType;
2228 const void* pNext;
2229 VkFenceCreateFlags flags;
2230 } VkFenceCreateInfo;
2231
2232 typedef struct VkSemaphoreCreateInfo {
2233 VkStructureType sType;
2234 const void* pNext;
2235 VkSemaphoreCreateFlags flags;
2236 } VkSemaphoreCreateInfo;
2237
2238 typedef struct VkEventCreateInfo {
2239 VkStructureType sType;
2240 const void* pNext;
2241 VkEventCreateFlags flags;
2242 } VkEventCreateInfo;
2243
2244 typedef struct VkQueryPoolCreateInfo {
2245 VkStructureType sType;
2246 const void* pNext;
2247 VkQueryPoolCreateFlags flags;
2248 VkQueryType queryType;
2249 uint32_t queryCount;
2250 VkQueryPipelineStatisticFlags pipelineStatistics;
2251 } VkQueryPoolCreateInfo;
2252
2253 typedef struct VkBufferCreateInfo {
2254 VkStructureType sType;
2255 const void* pNext;
2256 VkBufferCreateFlags flags;
2257 VkDeviceSize size;
2258 VkBufferUsageFlags usage;
2259 VkSharingMode sharingMode;
2260 uint32_t queueFamilyIndexCount;
2261 const uint32_t* pQueueFamilyIndices;
2262 } VkBufferCreateInfo;
2263
2264 typedef struct VkBufferViewCreateInfo {
2265 VkStructureType sType;
2266 const void* pNext;
2267 VkBufferViewCreateFlags flags;
2268 VkBuffer buffer;
2269 VkFormat format;
2270 VkDeviceSize offset;
2271 VkDeviceSize range;
2272 } VkBufferViewCreateInfo;
2273
2274 typedef struct VkImageCreateInfo {
2275 VkStructureType sType;
2276 const void* pNext;
2277 VkImageCreateFlags flags;
2278 VkImageType imageType;
2279 VkFormat format;
2280 VkExtent3D extent;
2281 uint32_t mipLevels;
2282 uint32_t arrayLayers;
2283 VkSampleCountFlagBits samples;
2284 VkImageTiling tiling;
2285 VkImageUsageFlags usage;
2286 VkSharingMode sharingMode;
2287 uint32_t queueFamilyIndexCount;
2288 const uint32_t* pQueueFamilyIndices;
2289 VkImageLayout initialLayout;
2290 } VkImageCreateInfo;
2291
2292 typedef struct VkSubresourceLayout {
2293 VkDeviceSize offset;
2294 VkDeviceSize size;
2295 VkDeviceSize rowPitch;
2296 VkDeviceSize arrayPitch;
2297 VkDeviceSize depthPitch;
2298 } VkSubresourceLayout;
2299
2300 typedef struct VkComponentMapping {
2301 VkComponentSwizzle r;
2302 VkComponentSwizzle g;
2303 VkComponentSwizzle b;
2304 VkComponentSwizzle a;
2305 } VkComponentMapping;
2306
2307 typedef struct VkImageSubresourceRange {
2308 VkImageAspectFlags aspectMask;
2309 uint32_t baseMipLevel;
2310 uint32_t levelCount;
2311 uint32_t baseArrayLayer;
2312 uint32_t layerCount;
2313 } VkImageSubresourceRange;
2314
2315 typedef struct VkImageViewCreateInfo {
2316 VkStructureType sType;
2317 const void* pNext;
2318 VkImageViewCreateFlags flags;
2319 VkImage image;
2320 VkImageViewType viewType;
2321 VkFormat format;
2322 VkComponentMapping components;
2323 VkImageSubresourceRange subresourceRange;
2324 } VkImageViewCreateInfo;
2325
2326 typedef struct VkShaderModuleCreateInfo {
2327 VkStructureType sType;
2328 const void* pNext;
2329 VkShaderModuleCreateFlags flags;
2330 size_t codeSize;
2331 const uint32_t* pCode;
2332 } VkShaderModuleCreateInfo;
2333
2334 typedef struct VkPipelineCacheCreateInfo {
2335 VkStructureType sType;
2336 const void* pNext;
2337 VkPipelineCacheCreateFlags flags;
2338 size_t initialDataSize;
2339 const void* pInitialData;
2340 } VkPipelineCacheCreateInfo;
2341
2342 typedef struct VkSpecializationMapEntry {
2343 uint32_t constantID;
2344 uint32_t offset;
2345 size_t size;
2346 } VkSpecializationMapEntry;
2347
2348 typedef struct VkSpecializationInfo {
2349 uint32_t mapEntryCount;
2350 const VkSpecializationMapEntry* pMapEntries;
2351 size_t dataSize;
2352 const void* pData;
2353 } VkSpecializationInfo;
2354
2355 typedef struct VkPipelineShaderStageCreateInfo {
2356 VkStructureType sType;
2357 const void* pNext;
2358 VkPipelineShaderStageCreateFlags flags;
2359 VkShaderStageFlagBits stage;
2360 VkShaderModule module;
2361 const char* pName;
2362 const VkSpecializationInfo* pSpecializationInfo;
2363 } VkPipelineShaderStageCreateInfo;
2364
2365 typedef struct VkVertexInputBindingDescription {
2366 uint32_t binding;
2367 uint32_t stride;
2368 VkVertexInputRate inputRate;
2369 } VkVertexInputBindingDescription;
2370
2371 typedef struct VkVertexInputAttributeDescription {
2372 uint32_t location;
2373 uint32_t binding;
2374 VkFormat format;
2375 uint32_t offset;
2376 } VkVertexInputAttributeDescription;
2377
2378 typedef struct VkPipelineVertexInputStateCreateInfo {
2379 VkStructureType sType;
2380 const void* pNext;
2381 VkPipelineVertexInputStateCreateFlags flags;
2382 uint32_t vertexBindingDescriptionCount;
2383 const VkVertexInputBindingDescription* pVertexBindingDescriptions;
2384 uint32_t vertexAttributeDescriptionCount;
2385 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
2386 } VkPipelineVertexInputStateCreateInfo;
2387
2388 typedef struct VkPipelineInputAssemblyStateCreateInfo {
2389 VkStructureType sType;
2390 const void* pNext;
2391 VkPipelineInputAssemblyStateCreateFlags flags;
2392 VkPrimitiveTopology topology;
2393 VkBool32 primitiveRestartEnable;
2394 } VkPipelineInputAssemblyStateCreateInfo;
2395
2396 typedef struct VkPipelineTessellationStateCreateInfo {
2397 VkStructureType sType;
2398 const void* pNext;
2399 VkPipelineTessellationStateCreateFlags flags;
2400 uint32_t patchControlPoints;
2401 } VkPipelineTessellationStateCreateInfo;
2402
2403 typedef struct VkViewport {
2404 float x;
2405 float y;
2406 float width;
2407 float height;
2408 float minDepth;
2409 float maxDepth;
2410 } VkViewport;
2411
2412 typedef struct VkOffset2D {
2413 int32_t x;
2414 int32_t y;
2415 } VkOffset2D;
2416
2417 typedef struct VkExtent2D {
2418 uint32_t width;
2419 uint32_t height;
2420 } VkExtent2D;
2421
2422 typedef struct VkRect2D {
2423 VkOffset2D offset;
2424 VkExtent2D extent;
2425 } VkRect2D;
2426
2427 typedef struct VkPipelineViewportStateCreateInfo {
2428 VkStructureType sType;
2429 const void* pNext;
2430 VkPipelineViewportStateCreateFlags flags;
2431 uint32_t viewportCount;
2432 const VkViewport* pViewports;
2433 uint32_t scissorCount;
2434 const VkRect2D* pScissors;
2435 } VkPipelineViewportStateCreateInfo;
2436
2437 typedef struct VkPipelineRasterizationStateCreateInfo {
2438 VkStructureType sType;
2439 const void* pNext;
2440 VkPipelineRasterizationStateCreateFlags flags;
2441 VkBool32 depthClampEnable;
2442 VkBool32 rasterizerDiscardEnable;
2443 VkPolygonMode polygonMode;
2444 VkCullModeFlags cullMode;
2445 VkFrontFace frontFace;
2446 VkBool32 depthBiasEnable;
2447 float depthBiasConstantFactor;
2448 float depthBiasClamp;
2449 float depthBiasSlopeFactor;
2450 float lineWidth;
2451 } VkPipelineRasterizationStateCreateInfo;
2452
2453 typedef struct VkPipelineMultisampleStateCreateInfo {
2454 VkStructureType sType;
2455 const void* pNext;
2456 VkPipelineMultisampleStateCreateFlags flags;
2457 VkSampleCountFlagBits rasterizationSamples;
2458 VkBool32 sampleShadingEnable;
2459 float minSampleShading;
2460 const VkSampleMask* pSampleMask;
2461 VkBool32 alphaToCoverageEnable;
2462 VkBool32 alphaToOneEnable;
2463 } VkPipelineMultisampleStateCreateInfo;
2464
2465 typedef struct VkStencilOpState {
2466 VkStencilOp failOp;
2467 VkStencilOp passOp;
2468 VkStencilOp depthFailOp;
2469 VkCompareOp compareOp;
2470 uint32_t compareMask;
2471 uint32_t writeMask;
2472 uint32_t reference;
2473 } VkStencilOpState;
2474
2475 typedef struct VkPipelineDepthStencilStateCreateInfo {
2476 VkStructureType sType;
2477 const void* pNext;
2478 VkPipelineDepthStencilStateCreateFlags flags;
2479 VkBool32 depthTestEnable;
2480 VkBool32 depthWriteEnable;
2481 VkCompareOp depthCompareOp;
2482 VkBool32 depthBoundsTestEnable;
2483 VkBool32 stencilTestEnable;
2484 VkStencilOpState front;
2485 VkStencilOpState back;
2486 float minDepthBounds;
2487 float maxDepthBounds;
2488 } VkPipelineDepthStencilStateCreateInfo;
2489
2490 typedef struct VkPipelineColorBlendAttachmentState {
2491 VkBool32 blendEnable;
2492 VkBlendFactor srcColorBlendFactor;
2493 VkBlendFactor dstColorBlendFactor;
2494 VkBlendOp colorBlendOp;
2495 VkBlendFactor srcAlphaBlendFactor;
2496 VkBlendFactor dstAlphaBlendFactor;
2497 VkBlendOp alphaBlendOp;
2498 VkColorComponentFlags colorWriteMask;
2499 } VkPipelineColorBlendAttachmentState;
2500
2501 typedef struct VkPipelineColorBlendStateCreateInfo {
2502 VkStructureType sType;
2503 const void* pNext;
2504 VkPipelineColorBlendStateCreateFlags flags;
2505 VkBool32 logicOpEnable;
2506 VkLogicOp logicOp;
2507 uint32_t attachmentCount;
2508 const VkPipelineColorBlendAttachmentState* pAttachments;
2509 float blendConstants[4];
2510 } VkPipelineColorBlendStateCreateInfo;
2511
2512 typedef struct VkPipelineDynamicStateCreateInfo {
2513 VkStructureType sType;
2514 const void* pNext;
2515 VkPipelineDynamicStateCreateFlags flags;
2516 uint32_t dynamicStateCount;
2517 const VkDynamicState* pDynamicStates;
2518 } VkPipelineDynamicStateCreateInfo;
2519
2520 typedef struct VkGraphicsPipelineCreateInfo {
2521 VkStructureType sType;
2522 const void* pNext;
2523 VkPipelineCreateFlags flags;
2524 uint32_t stageCount;
2525 const VkPipelineShaderStageCreateInfo* pStages;
2526 const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
2527 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
2528 const VkPipelineTessellationStateCreateInfo* pTessellationState;
2529 const VkPipelineViewportStateCreateInfo* pViewportState;
2530 const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
2531 const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
2532 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
2533 const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
2534 const VkPipelineDynamicStateCreateInfo* pDynamicState;
2535 VkPipelineLayout layout;
2536 VkRenderPass renderPass;
2537 uint32_t subpass;
2538 VkPipeline basePipelineHandle;
2539 int32_t basePipelineIndex;
2540 } VkGraphicsPipelineCreateInfo;
2541
2542 typedef struct VkComputePipelineCreateInfo {
2543 VkStructureType sType;
2544 const void* pNext;
2545 VkPipelineCreateFlags flags;
2546 VkPipelineShaderStageCreateInfo stage;
2547 VkPipelineLayout layout;
2548 VkPipeline basePipelineHandle;
2549 int32_t basePipelineIndex;
2550 } VkComputePipelineCreateInfo;
2551
2552 typedef struct VkPushConstantRange {
2553 VkShaderStageFlags stageFlags;
2554 uint32_t offset;
2555 uint32_t size;
2556 } VkPushConstantRange;
2557
2558 typedef struct VkPipelineLayoutCreateInfo {
2559 VkStructureType sType;
2560 const void* pNext;
2561 VkPipelineLayoutCreateFlags flags;
2562 uint32_t setLayoutCount;
2563 const VkDescriptorSetLayout* pSetLayouts;
2564 uint32_t pushConstantRangeCount;
2565 const VkPushConstantRange* pPushConstantRanges;
2566 } VkPipelineLayoutCreateInfo;
2567
2568 typedef struct VkSamplerCreateInfo {
2569 VkStructureType sType;
2570 const void* pNext;
2571 VkSamplerCreateFlags flags;
2572 VkFilter magFilter;
2573 VkFilter minFilter;
2574 VkSamplerMipmapMode mipmapMode;
2575 VkSamplerAddressMode addressModeU;
2576 VkSamplerAddressMode addressModeV;
2577 VkSamplerAddressMode addressModeW;
2578 float mipLodBias;
2579 VkBool32 anisotropyEnable;
2580 float maxAnisotropy;
2581 VkBool32 compareEnable;
2582 VkCompareOp compareOp;
2583 float minLod;
2584 float maxLod;
2585 VkBorderColor borderColor;
2586 VkBool32 unnormalizedCoordinates;
2587 } VkSamplerCreateInfo;
2588
2589 typedef struct VkDescriptorSetLayoutBinding {
2590 uint32_t binding;
2591 VkDescriptorType descriptorType;
2592 uint32_t descriptorCount;
2593 VkShaderStageFlags stageFlags;
2594 const VkSampler* pImmutableSamplers;
2595 } VkDescriptorSetLayoutBinding;
2596
2597 typedef struct VkDescriptorSetLayoutCreateInfo {
2598 VkStructureType sType;
2599 const void* pNext;
2600 VkDescriptorSetLayoutCreateFlags flags;
2601 uint32_t bindingCount;
2602 const VkDescriptorSetLayoutBinding* pBindings;
2603 } VkDescriptorSetLayoutCreateInfo;
2604
2605 typedef struct VkDescriptorPoolSize {
2606 VkDescriptorType type;
2607 uint32_t descriptorCount;
2608 } VkDescriptorPoolSize;
2609
2610 typedef struct VkDescriptorPoolCreateInfo {
2611 VkStructureType sType;
2612 const void* pNext;
2613 VkDescriptorPoolCreateFlags flags;
2614 uint32_t maxSets;
2615 uint32_t poolSizeCount;
2616 const VkDescriptorPoolSize* pPoolSizes;
2617 } VkDescriptorPoolCreateInfo;
2618
2619 typedef struct VkDescriptorSetAllocateInfo {
2620 VkStructureType sType;
2621 const void* pNext;
2622 VkDescriptorPool descriptorPool;
2623 uint32_t descriptorSetCount;
2624 const VkDescriptorSetLayout* pSetLayouts;
2625 } VkDescriptorSetAllocateInfo;
2626
2627 typedef struct VkDescriptorImageInfo {
2628 VkSampler sampler;
2629 VkImageView imageView;
2630 VkImageLayout imageLayout;
2631 } VkDescriptorImageInfo;
2632
2633 typedef struct VkDescriptorBufferInfo {
2634 VkBuffer buffer;
2635 VkDeviceSize offset;
2636 VkDeviceSize range;
2637 } VkDescriptorBufferInfo;
2638
2639 typedef struct VkWriteDescriptorSet {
2640 VkStructureType sType;
2641 const void* pNext;
2642 VkDescriptorSet dstSet;
2643 uint32_t dstBinding;
2644 uint32_t dstArrayElement;
2645 uint32_t descriptorCount;
2646 VkDescriptorType descriptorType;
2647 const VkDescriptorImageInfo* pImageInfo;
2648 const VkDescriptorBufferInfo* pBufferInfo;
2649 const VkBufferView* pTexelBufferView;
2650 } VkWriteDescriptorSet;
2651
2652 typedef struct VkCopyDescriptorSet {
2653 VkStructureType sType;
2654 const void* pNext;
2655 VkDescriptorSet srcSet;
2656 uint32_t srcBinding;
2657 uint32_t srcArrayElement;
2658 VkDescriptorSet dstSet;
2659 uint32_t dstBinding;
2660 uint32_t dstArrayElement;
2661 uint32_t descriptorCount;
2662 } VkCopyDescriptorSet;
2663
2664 typedef struct VkFramebufferCreateInfo {
2665 VkStructureType sType;
2666 const void* pNext;
2667 VkFramebufferCreateFlags flags;
2668 VkRenderPass renderPass;
2669 uint32_t attachmentCount;
2670 const VkImageView* pAttachments;
2671 uint32_t width;
2672 uint32_t height;
2673 uint32_t layers;
2674 } VkFramebufferCreateInfo;
2675
2676 typedef struct VkAttachmentDescription {
2677 VkAttachmentDescriptionFlags flags;
2678 VkFormat format;
2679 VkSampleCountFlagBits samples;
2680 VkAttachmentLoadOp loadOp;
2681 VkAttachmentStoreOp storeOp;
2682 VkAttachmentLoadOp stencilLoadOp;
2683 VkAttachmentStoreOp stencilStoreOp;
2684 VkImageLayout initialLayout;
2685 VkImageLayout finalLayout;
2686 } VkAttachmentDescription;
2687
2688 typedef struct VkAttachmentReference {
2689 uint32_t attachment;
2690 VkImageLayout layout;
2691 } VkAttachmentReference;
2692
2693 typedef struct VkSubpassDescription {
2694 VkSubpassDescriptionFlags flags;
2695 VkPipelineBindPoint pipelineBindPoint;
2696 uint32_t inputAttachmentCount;
2697 const VkAttachmentReference* pInputAttachments;
2698 uint32_t colorAttachmentCount;
2699 const VkAttachmentReference* pColorAttachments;
2700 const VkAttachmentReference* pResolveAttachments;
2701 const VkAttachmentReference* pDepthStencilAttachment;
2702 uint32_t preserveAttachmentCount;
2703 const uint32_t* pPreserveAttachments;
2704 } VkSubpassDescription;
2705
2706 typedef struct VkSubpassDependency {
2707 uint32_t srcSubpass;
2708 uint32_t dstSubpass;
2709 VkPipelineStageFlags srcStageMask;
2710 VkPipelineStageFlags dstStageMask;
2711 VkAccessFlags srcAccessMask;
2712 VkAccessFlags dstAccessMask;
2713 VkDependencyFlags dependencyFlags;
2714 } VkSubpassDependency;
2715
2716 typedef struct VkRenderPassCreateInfo {
2717 VkStructureType sType;
2718 const void* pNext;
2719 VkRenderPassCreateFlags flags;
2720 uint32_t attachmentCount;
2721 const VkAttachmentDescription* pAttachments;
2722 uint32_t subpassCount;
2723 const VkSubpassDescription* pSubpasses;
2724 uint32_t dependencyCount;
2725 const VkSubpassDependency* pDependencies;
2726 } VkRenderPassCreateInfo;
2727
2728 typedef struct VkCommandPoolCreateInfo {
2729 VkStructureType sType;
2730 const void* pNext;
2731 VkCommandPoolCreateFlags flags;
2732 uint32_t queueFamilyIndex;
2733 } VkCommandPoolCreateInfo;
2734
2735 typedef struct VkCommandBufferAllocateInfo {
2736 VkStructureType sType;
2737 const void* pNext;
2738 VkCommandPool commandPool;
2739 VkCommandBufferLevel level;
2740 uint32_t commandBufferCount;
2741 } VkCommandBufferAllocateInfo;
2742
2743 typedef struct VkCommandBufferInheritanceInfo {
2744 VkStructureType sType;
2745 const void* pNext;
2746 VkRenderPass renderPass;
2747 uint32_t subpass;
2748 VkFramebuffer framebuffer;
2749 VkBool32 occlusionQueryEnable;
2750 VkQueryControlFlags queryFlags;
2751 VkQueryPipelineStatisticFlags pipelineStatistics;
2752 } VkCommandBufferInheritanceInfo;
2753
2754 typedef struct VkCommandBufferBeginInfo {
2755 VkStructureType sType;
2756 const void* pNext;
2757 VkCommandBufferUsageFlags flags;
2758 const VkCommandBufferInheritanceInfo* pInheritanceInfo;
2759 } VkCommandBufferBeginInfo;
2760
2761 typedef struct VkBufferCopy {
2762 VkDeviceSize srcOffset;
2763 VkDeviceSize dstOffset;
2764 VkDeviceSize size;
2765 } VkBufferCopy;
2766
2767 typedef struct VkImageSubresourceLayers {
2768 VkImageAspectFlags aspectMask;
2769 uint32_t mipLevel;
2770 uint32_t baseArrayLayer;
2771 uint32_t layerCount;
2772 } VkImageSubresourceLayers;
2773
2774 typedef struct VkImageCopy {
2775 VkImageSubresourceLayers srcSubresource;
2776 VkOffset3D srcOffset;
2777 VkImageSubresourceLayers dstSubresource;
2778 VkOffset3D dstOffset;
2779 VkExtent3D extent;
2780 } VkImageCopy;
2781
2782 typedef struct VkImageBlit {
2783 VkImageSubresourceLayers srcSubresource;
2784 VkOffset3D srcOffsets[2];
2785 VkImageSubresourceLayers dstSubresource;
2786 VkOffset3D dstOffsets[2];
2787 } VkImageBlit;
2788
2789 typedef struct VkBufferImageCopy {
2790 VkDeviceSize bufferOffset;
2791 uint32_t bufferRowLength;
2792 uint32_t bufferImageHeight;
2793 VkImageSubresourceLayers imageSubresource;
2794 VkOffset3D imageOffset;
2795 VkExtent3D imageExtent;
2796 } VkBufferImageCopy;
2797
2798 typedef union VkClearColorValue {
2799 float float32[4];
2800 int32_t int32[4];
2801 uint32_t uint32[4];
2802 } VkClearColorValue;
2803
2804 typedef struct VkClearDepthStencilValue {
2805 float depth;
2806 uint32_t stencil;
2807 } VkClearDepthStencilValue;
2808
2809 typedef union VkClearValue {
2810 VkClearColorValue color;
2811 VkClearDepthStencilValue depthStencil;
2812 } VkClearValue;
2813
2814 typedef struct VkClearAttachment {
2815 VkImageAspectFlags aspectMask;
2816 uint32_t colorAttachment;
2817 VkClearValue clearValue;
2818 } VkClearAttachment;
2819
2820 typedef struct VkClearRect {
2821 VkRect2D rect;
2822 uint32_t baseArrayLayer;
2823 uint32_t layerCount;
2824 } VkClearRect;
2825
2826 typedef struct VkImageResolve {
2827 VkImageSubresourceLayers srcSubresource;
2828 VkOffset3D srcOffset;
2829 VkImageSubresourceLayers dstSubresource;
2830 VkOffset3D dstOffset;
2831 VkExtent3D extent;
2832 } VkImageResolve;
2833
2834 typedef struct VkMemoryBarrier {
2835 VkStructureType sType;
2836 const void* pNext;
2837 VkAccessFlags srcAccessMask;
2838 VkAccessFlags dstAccessMask;
2839 } VkMemoryBarrier;
2840
2841 typedef struct VkBufferMemoryBarrier {
2842 VkStructureType sType;
2843 const void* pNext;
2844 VkAccessFlags srcAccessMask;
2845 VkAccessFlags dstAccessMask;
2846 uint32_t srcQueueFamilyIndex;
2847 uint32_t dstQueueFamilyIndex;
2848 VkBuffer buffer;
2849 VkDeviceSize offset;
2850 VkDeviceSize size;
2851 } VkBufferMemoryBarrier;
2852
2853 typedef struct VkImageMemoryBarrier {
2854 VkStructureType sType;
2855 const void* pNext;
2856 VkAccessFlags srcAccessMask;
2857 VkAccessFlags dstAccessMask;
2858 VkImageLayout oldLayout;
2859 VkImageLayout newLayout;
2860 uint32_t srcQueueFamilyIndex;
2861 uint32_t dstQueueFamilyIndex;
2862 VkImage image;
2863 VkImageSubresourceRange subresourceRange;
2864 } VkImageMemoryBarrier;
2865
2866 typedef struct VkRenderPassBeginInfo {
2867 VkStructureType sType;
2868 const void* pNext;
2869 VkRenderPass renderPass;
2870 VkFramebuffer framebuffer;
2871 VkRect2D renderArea;
2872 uint32_t clearValueCount;
2873 const VkClearValue* pClearValues;
2874 } VkRenderPassBeginInfo;
2875
2876 typedef struct VkDispatchIndirectCommand {
2877 uint32_t x;
2878 uint32_t y;
2879 uint32_t z;
2880 } VkDispatchIndirectCommand;
2881
2882 typedef struct VkDrawIndexedIndirectCommand {
2883 uint32_t indexCount;
2884 uint32_t instanceCount;
2885 uint32_t firstIndex;
2886 int32_t vertexOffset;
2887 uint32_t firstInstance;
2888 } VkDrawIndexedIndirectCommand;
2889
2890 typedef struct VkDrawIndirectCommand {
2891 uint32_t vertexCount;
2892 uint32_t instanceCount;
2893 uint32_t firstVertex;
2894 uint32_t firstInstance;
2895 } VkDrawIndirectCommand;
2896
2897 typedef struct VkBaseOutStructure {
2898 VkStructureType sType;
2899 struct VkBaseOutStructure* pNext;
2900 } VkBaseOutStructure;
2901
2902 typedef struct VkBaseInStructure {
2903 VkStructureType sType;
2904 const struct VkBaseInStructure* pNext;
2905 } VkBaseInStructure;
2906
2907 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
2908 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
2909 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
2910 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
2911 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
2912 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
2913 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
2914 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
2915 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
2916 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
2917 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
2918 typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
2919 typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
2920 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2921 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
2922 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2923 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
2924 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
2925 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
2926 typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
2927 typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
2928 typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
2929 typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
2930 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
2931 typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
2932 typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2933 typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
2934 typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
2935 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2936 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
2937 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
2938 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
2939 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
2940 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
2941 typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
2942 typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
2943 typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
2944 typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
2945 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
2946 typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
2947 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
2948 typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
2949 typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
2950 typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
2951 typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
2952 typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
2953 typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
2954 typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
2955 typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
2956 typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
2957 typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
2958 typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
2959 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
2960 typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
2961 typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
2962 typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
2963 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
2964 typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
2965 typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
2966 typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
2967 typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
2968 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
2969 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
2970 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
2971 typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
2972 typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2973 typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
2974 typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
2975 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
2976 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
2977 typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
2978 typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
2979 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
2980 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
2981 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
2982 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
2983 typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
2984 typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
2985 typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
2986 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
2987 typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
2988 typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
2989 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
2990 typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
2991 typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
2992 typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
2993 typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
2994 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
2995 typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
2996 typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
2997 typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
2998 typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
2999 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
3000 typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
3001 typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
3002 typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
3003 typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
3004 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
3005 typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
3006 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
3007 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
3008 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
3009 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
3010 typedef 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);
3011 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
3012 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
3013 typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
3014 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
3015 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
3016 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
3017 typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
3018 typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
3019 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
3020 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
3021 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
3022 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
3023 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
3024 typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
3025 typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
3026 typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
3027 typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
3028 typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
3029 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
3030 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
3031 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
3032 typedef 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);
3033 typedef 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);
3034 typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
3035 typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
3036 typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
3037 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
3038 typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
3039 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
3040 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
3041 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
3042 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
3043 typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
3044
3045 #ifndef VK_NO_PROTOTYPES
3046 VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
3047 const VkInstanceCreateInfo* pCreateInfo,
3048 const VkAllocationCallbacks* pAllocator,
3049 VkInstance* pInstance);
3050
3051 VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
3052 VkInstance instance,
3053 const VkAllocationCallbacks* pAllocator);
3054
3055 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
3056 VkInstance instance,
3057 uint32_t* pPhysicalDeviceCount,
3058 VkPhysicalDevice* pPhysicalDevices);
3059
3060 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
3061 VkPhysicalDevice physicalDevice,
3062 VkPhysicalDeviceFeatures* pFeatures);
3063
3064 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
3065 VkPhysicalDevice physicalDevice,
3066 VkFormat format,
3067 VkFormatProperties* pFormatProperties);
3068
3069 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
3070 VkPhysicalDevice physicalDevice,
3071 VkFormat format,
3072 VkImageType type,
3073 VkImageTiling tiling,
3074 VkImageUsageFlags usage,
3075 VkImageCreateFlags flags,
3076 VkImageFormatProperties* pImageFormatProperties);
3077
3078 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
3079 VkPhysicalDevice physicalDevice,
3080 VkPhysicalDeviceProperties* pProperties);
3081
3082 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
3083 VkPhysicalDevice physicalDevice,
3084 uint32_t* pQueueFamilyPropertyCount,
3085 VkQueueFamilyProperties* pQueueFamilyProperties);
3086
3087 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
3088 VkPhysicalDevice physicalDevice,
3089 VkPhysicalDeviceMemoryProperties* pMemoryProperties);
3090
3091 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
3092 VkInstance instance,
3093 const char* pName);
3094
3095 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
3096 VkDevice device,
3097 const char* pName);
3098
3099 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
3100 VkPhysicalDevice physicalDevice,
3101 const VkDeviceCreateInfo* pCreateInfo,
3102 const VkAllocationCallbacks* pAllocator,
3103 VkDevice* pDevice);
3104
3105 VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
3106 VkDevice device,
3107 const VkAllocationCallbacks* pAllocator);
3108
3109 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
3110 const char* pLayerName,
3111 uint32_t* pPropertyCount,
3112 VkExtensionProperties* pProperties);
3113
3114 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
3115 VkPhysicalDevice physicalDevice,
3116 const char* pLayerName,
3117 uint32_t* pPropertyCount,
3118 VkExtensionProperties* pProperties);
3119
3120 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
3121 uint32_t* pPropertyCount,
3122 VkLayerProperties* pProperties);
3123
3124 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
3125 VkPhysicalDevice physicalDevice,
3126 uint32_t* pPropertyCount,
3127 VkLayerProperties* pProperties);
3128
3129 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
3130 VkDevice device,
3131 uint32_t queueFamilyIndex,
3132 uint32_t queueIndex,
3133 VkQueue* pQueue);
3134
3135 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
3136 VkQueue queue,
3137 uint32_t submitCount,
3138 const VkSubmitInfo* pSubmits,
3139 VkFence fence);
3140
3141 VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
3142 VkQueue queue);
3143
3144 VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
3145 VkDevice device);
3146
3147 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
3148 VkDevice device,
3149 const VkMemoryAllocateInfo* pAllocateInfo,
3150 const VkAllocationCallbacks* pAllocator,
3151 VkDeviceMemory* pMemory);
3152
3153 VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
3154 VkDevice device,
3155 VkDeviceMemory memory,
3156 const VkAllocationCallbacks* pAllocator);
3157
3158 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
3159 VkDevice device,
3160 VkDeviceMemory memory,
3161 VkDeviceSize offset,
3162 VkDeviceSize size,
3163 VkMemoryMapFlags flags,
3164 void** ppData);
3165
3166 VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
3167 VkDevice device,
3168 VkDeviceMemory memory);
3169
3170 VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
3171 VkDevice device,
3172 uint32_t memoryRangeCount,
3173 const VkMappedMemoryRange* pMemoryRanges);
3174
3175 VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
3176 VkDevice device,
3177 uint32_t memoryRangeCount,
3178 const VkMappedMemoryRange* pMemoryRanges);
3179
3180 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
3181 VkDevice device,
3182 VkDeviceMemory memory,
3183 VkDeviceSize* pCommittedMemoryInBytes);
3184
3185 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
3186 VkDevice device,
3187 VkBuffer buffer,
3188 VkDeviceMemory memory,
3189 VkDeviceSize memoryOffset);
3190
3191 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
3192 VkDevice device,
3193 VkImage image,
3194 VkDeviceMemory memory,
3195 VkDeviceSize memoryOffset);
3196
3197 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
3198 VkDevice device,
3199 VkBuffer buffer,
3200 VkMemoryRequirements* pMemoryRequirements);
3201
3202 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
3203 VkDevice device,
3204 VkImage image,
3205 VkMemoryRequirements* pMemoryRequirements);
3206
3207 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
3208 VkDevice device,
3209 VkImage image,
3210 uint32_t* pSparseMemoryRequirementCount,
3211 VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
3212
3213 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
3214 VkPhysicalDevice physicalDevice,
3215 VkFormat format,
3216 VkImageType type,
3217 VkSampleCountFlagBits samples,
3218 VkImageUsageFlags usage,
3219 VkImageTiling tiling,
3220 uint32_t* pPropertyCount,
3221 VkSparseImageFormatProperties* pProperties);
3222
3223 VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
3224 VkQueue queue,
3225 uint32_t bindInfoCount,
3226 const VkBindSparseInfo* pBindInfo,
3227 VkFence fence);
3228
3229 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
3230 VkDevice device,
3231 const VkFenceCreateInfo* pCreateInfo,
3232 const VkAllocationCallbacks* pAllocator,
3233 VkFence* pFence);
3234
3235 VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
3236 VkDevice device,
3237 VkFence fence,
3238 const VkAllocationCallbacks* pAllocator);
3239
3240 VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
3241 VkDevice device,
3242 uint32_t fenceCount,
3243 const VkFence* pFences);
3244
3245 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
3246 VkDevice device,
3247 VkFence fence);
3248
3249 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
3250 VkDevice device,
3251 uint32_t fenceCount,
3252 const VkFence* pFences,
3253 VkBool32 waitAll,
3254 uint64_t timeout);
3255
3256 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
3257 VkDevice device,
3258 const VkSemaphoreCreateInfo* pCreateInfo,
3259 const VkAllocationCallbacks* pAllocator,
3260 VkSemaphore* pSemaphore);
3261
3262 VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
3263 VkDevice device,
3264 VkSemaphore semaphore,
3265 const VkAllocationCallbacks* pAllocator);
3266
3267 VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
3268 VkDevice device,
3269 const VkEventCreateInfo* pCreateInfo,
3270 const VkAllocationCallbacks* pAllocator,
3271 VkEvent* pEvent);
3272
3273 VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
3274 VkDevice device,
3275 VkEvent event,
3276 const VkAllocationCallbacks* pAllocator);
3277
3278 VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
3279 VkDevice device,
3280 VkEvent event);
3281
3282 VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
3283 VkDevice device,
3284 VkEvent event);
3285
3286 VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
3287 VkDevice device,
3288 VkEvent event);
3289
3290 VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
3291 VkDevice device,
3292 const VkQueryPoolCreateInfo* pCreateInfo,
3293 const VkAllocationCallbacks* pAllocator,
3294 VkQueryPool* pQueryPool);
3295
3296 VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
3297 VkDevice device,
3298 VkQueryPool queryPool,
3299 const VkAllocationCallbacks* pAllocator);
3300
3301 VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
3302 VkDevice device,
3303 VkQueryPool queryPool,
3304 uint32_t firstQuery,
3305 uint32_t queryCount,
3306 size_t dataSize,
3307 void* pData,
3308 VkDeviceSize stride,
3309 VkQueryResultFlags flags);
3310
3311 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
3312 VkDevice device,
3313 const VkBufferCreateInfo* pCreateInfo,
3314 const VkAllocationCallbacks* pAllocator,
3315 VkBuffer* pBuffer);
3316
3317 VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
3318 VkDevice device,
3319 VkBuffer buffer,
3320 const VkAllocationCallbacks* pAllocator);
3321
3322 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
3323 VkDevice device,
3324 const VkBufferViewCreateInfo* pCreateInfo,
3325 const VkAllocationCallbacks* pAllocator,
3326 VkBufferView* pView);
3327
3328 VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
3329 VkDevice device,
3330 VkBufferView bufferView,
3331 const VkAllocationCallbacks* pAllocator);
3332
3333 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
3334 VkDevice device,
3335 const VkImageCreateInfo* pCreateInfo,
3336 const VkAllocationCallbacks* pAllocator,
3337 VkImage* pImage);
3338
3339 VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
3340 VkDevice device,
3341 VkImage image,
3342 const VkAllocationCallbacks* pAllocator);
3343
3344 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
3345 VkDevice device,
3346 VkImage image,
3347 const VkImageSubresource* pSubresource,
3348 VkSubresourceLayout* pLayout);
3349
3350 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
3351 VkDevice device,
3352 const VkImageViewCreateInfo* pCreateInfo,
3353 const VkAllocationCallbacks* pAllocator,
3354 VkImageView* pView);
3355
3356 VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
3357 VkDevice device,
3358 VkImageView imageView,
3359 const VkAllocationCallbacks* pAllocator);
3360
3361 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
3362 VkDevice device,
3363 const VkShaderModuleCreateInfo* pCreateInfo,
3364 const VkAllocationCallbacks* pAllocator,
3365 VkShaderModule* pShaderModule);
3366
3367 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
3368 VkDevice device,
3369 VkShaderModule shaderModule,
3370 const VkAllocationCallbacks* pAllocator);
3371
3372 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
3373 VkDevice device,
3374 const VkPipelineCacheCreateInfo* pCreateInfo,
3375 const VkAllocationCallbacks* pAllocator,
3376 VkPipelineCache* pPipelineCache);
3377
3378 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
3379 VkDevice device,
3380 VkPipelineCache pipelineCache,
3381 const VkAllocationCallbacks* pAllocator);
3382
3383 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
3384 VkDevice device,
3385 VkPipelineCache pipelineCache,
3386 size_t* pDataSize,
3387 void* pData);
3388
3389 VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
3390 VkDevice device,
3391 VkPipelineCache dstCache,
3392 uint32_t srcCacheCount,
3393 const VkPipelineCache* pSrcCaches);
3394
3395 VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
3396 VkDevice device,
3397 VkPipelineCache pipelineCache,
3398 uint32_t createInfoCount,
3399 const VkGraphicsPipelineCreateInfo* pCreateInfos,
3400 const VkAllocationCallbacks* pAllocator,
3401 VkPipeline* pPipelines);
3402
3403 VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
3404 VkDevice device,
3405 VkPipelineCache pipelineCache,
3406 uint32_t createInfoCount,
3407 const VkComputePipelineCreateInfo* pCreateInfos,
3408 const VkAllocationCallbacks* pAllocator,
3409 VkPipeline* pPipelines);
3410
3411 VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
3412 VkDevice device,
3413 VkPipeline pipeline,
3414 const VkAllocationCallbacks* pAllocator);
3415
3416 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
3417 VkDevice device,
3418 const VkPipelineLayoutCreateInfo* pCreateInfo,
3419 const VkAllocationCallbacks* pAllocator,
3420 VkPipelineLayout* pPipelineLayout);
3421
3422 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
3423 VkDevice device,
3424 VkPipelineLayout pipelineLayout,
3425 const VkAllocationCallbacks* pAllocator);
3426
3427 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
3428 VkDevice device,
3429 const VkSamplerCreateInfo* pCreateInfo,
3430 const VkAllocationCallbacks* pAllocator,
3431 VkSampler* pSampler);
3432
3433 VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
3434 VkDevice device,
3435 VkSampler sampler,
3436 const VkAllocationCallbacks* pAllocator);
3437
3438 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
3439 VkDevice device,
3440 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
3441 const VkAllocationCallbacks* pAllocator,
3442 VkDescriptorSetLayout* pSetLayout);
3443
3444 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
3445 VkDevice device,
3446 VkDescriptorSetLayout descriptorSetLayout,
3447 const VkAllocationCallbacks* pAllocator);
3448
3449 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
3450 VkDevice device,
3451 const VkDescriptorPoolCreateInfo* pCreateInfo,
3452 const VkAllocationCallbacks* pAllocator,
3453 VkDescriptorPool* pDescriptorPool);
3454
3455 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
3456 VkDevice device,
3457 VkDescriptorPool descriptorPool,
3458 const VkAllocationCallbacks* pAllocator);
3459
3460 VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
3461 VkDevice device,
3462 VkDescriptorPool descriptorPool,
3463 VkDescriptorPoolResetFlags flags);
3464
3465 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
3466 VkDevice device,
3467 const VkDescriptorSetAllocateInfo* pAllocateInfo,
3468 VkDescriptorSet* pDescriptorSets);
3469
3470 VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
3471 VkDevice device,
3472 VkDescriptorPool descriptorPool,
3473 uint32_t descriptorSetCount,
3474 const VkDescriptorSet* pDescriptorSets);
3475
3476 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
3477 VkDevice device,
3478 uint32_t descriptorWriteCount,
3479 const VkWriteDescriptorSet* pDescriptorWrites,
3480 uint32_t descriptorCopyCount,
3481 const VkCopyDescriptorSet* pDescriptorCopies);
3482
3483 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
3484 VkDevice device,
3485 const VkFramebufferCreateInfo* pCreateInfo,
3486 const VkAllocationCallbacks* pAllocator,
3487 VkFramebuffer* pFramebuffer);
3488
3489 VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
3490 VkDevice device,
3491 VkFramebuffer framebuffer,
3492 const VkAllocationCallbacks* pAllocator);
3493
3494 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
3495 VkDevice device,
3496 const VkRenderPassCreateInfo* pCreateInfo,
3497 const VkAllocationCallbacks* pAllocator,
3498 VkRenderPass* pRenderPass);
3499
3500 VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
3501 VkDevice device,
3502 VkRenderPass renderPass,
3503 const VkAllocationCallbacks* pAllocator);
3504
3505 VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
3506 VkDevice device,
3507 VkRenderPass renderPass,
3508 VkExtent2D* pGranularity);
3509
3510 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
3511 VkDevice device,
3512 const VkCommandPoolCreateInfo* pCreateInfo,
3513 const VkAllocationCallbacks* pAllocator,
3514 VkCommandPool* pCommandPool);
3515
3516 VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
3517 VkDevice device,
3518 VkCommandPool commandPool,
3519 const VkAllocationCallbacks* pAllocator);
3520
3521 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
3522 VkDevice device,
3523 VkCommandPool commandPool,
3524 VkCommandPoolResetFlags flags);
3525
3526 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
3527 VkDevice device,
3528 const VkCommandBufferAllocateInfo* pAllocateInfo,
3529 VkCommandBuffer* pCommandBuffers);
3530
3531 VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
3532 VkDevice device,
3533 VkCommandPool commandPool,
3534 uint32_t commandBufferCount,
3535 const VkCommandBuffer* pCommandBuffers);
3536
3537 VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
3538 VkCommandBuffer commandBuffer,
3539 const VkCommandBufferBeginInfo* pBeginInfo);
3540
3541 VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
3542 VkCommandBuffer commandBuffer);
3543
3544 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
3545 VkCommandBuffer commandBuffer,
3546 VkCommandBufferResetFlags flags);
3547
3548 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
3549 VkCommandBuffer commandBuffer,
3550 VkPipelineBindPoint pipelineBindPoint,
3551 VkPipeline pipeline);
3552
3553 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
3554 VkCommandBuffer commandBuffer,
3555 uint32_t firstViewport,
3556 uint32_t viewportCount,
3557 const VkViewport* pViewports);
3558
3559 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
3560 VkCommandBuffer commandBuffer,
3561 uint32_t firstScissor,
3562 uint32_t scissorCount,
3563 const VkRect2D* pScissors);
3564
3565 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
3566 VkCommandBuffer commandBuffer,
3567 float lineWidth);
3568
3569 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
3570 VkCommandBuffer commandBuffer,
3571 float depthBiasConstantFactor,
3572 float depthBiasClamp,
3573 float depthBiasSlopeFactor);
3574
3575 VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
3576 VkCommandBuffer commandBuffer,
3577 const float blendConstants[4]);
3578
3579 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
3580 VkCommandBuffer commandBuffer,
3581 float minDepthBounds,
3582 float maxDepthBounds);
3583
3584 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
3585 VkCommandBuffer commandBuffer,
3586 VkStencilFaceFlags faceMask,
3587 uint32_t compareMask);
3588
3589 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
3590 VkCommandBuffer commandBuffer,
3591 VkStencilFaceFlags faceMask,
3592 uint32_t writeMask);
3593
3594 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
3595 VkCommandBuffer commandBuffer,
3596 VkStencilFaceFlags faceMask,
3597 uint32_t reference);
3598
3599 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
3600 VkCommandBuffer commandBuffer,
3601 VkPipelineBindPoint pipelineBindPoint,
3602 VkPipelineLayout layout,
3603 uint32_t firstSet,
3604 uint32_t descriptorSetCount,
3605 const VkDescriptorSet* pDescriptorSets,
3606 uint32_t dynamicOffsetCount,
3607 const uint32_t* pDynamicOffsets);
3608
3609 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
3610 VkCommandBuffer commandBuffer,
3611 VkBuffer buffer,
3612 VkDeviceSize offset,
3613 VkIndexType indexType);
3614
3615 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
3616 VkCommandBuffer commandBuffer,
3617 uint32_t firstBinding,
3618 uint32_t bindingCount,
3619 const VkBuffer* pBuffers,
3620 const VkDeviceSize* pOffsets);
3621
3622 VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
3623 VkCommandBuffer commandBuffer,
3624 uint32_t vertexCount,
3625 uint32_t instanceCount,
3626 uint32_t firstVertex,
3627 uint32_t firstInstance);
3628
3629 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
3630 VkCommandBuffer commandBuffer,
3631 uint32_t indexCount,
3632 uint32_t instanceCount,
3633 uint32_t firstIndex,
3634 int32_t vertexOffset,
3635 uint32_t firstInstance);
3636
3637 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
3638 VkCommandBuffer commandBuffer,
3639 VkBuffer buffer,
3640 VkDeviceSize offset,
3641 uint32_t drawCount,
3642 uint32_t stride);
3643
3644 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
3645 VkCommandBuffer commandBuffer,
3646 VkBuffer buffer,
3647 VkDeviceSize offset,
3648 uint32_t drawCount,
3649 uint32_t stride);
3650
3651 VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
3652 VkCommandBuffer commandBuffer,
3653 uint32_t groupCountX,
3654 uint32_t groupCountY,
3655 uint32_t groupCountZ);
3656
3657 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
3658 VkCommandBuffer commandBuffer,
3659 VkBuffer buffer,
3660 VkDeviceSize offset);
3661
3662 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
3663 VkCommandBuffer commandBuffer,
3664 VkBuffer srcBuffer,
3665 VkBuffer dstBuffer,
3666 uint32_t regionCount,
3667 const VkBufferCopy* pRegions);
3668
3669 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
3670 VkCommandBuffer commandBuffer,
3671 VkImage srcImage,
3672 VkImageLayout srcImageLayout,
3673 VkImage dstImage,
3674 VkImageLayout dstImageLayout,
3675 uint32_t regionCount,
3676 const VkImageCopy* pRegions);
3677
3678 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
3679 VkCommandBuffer commandBuffer,
3680 VkImage srcImage,
3681 VkImageLayout srcImageLayout,
3682 VkImage dstImage,
3683 VkImageLayout dstImageLayout,
3684 uint32_t regionCount,
3685 const VkImageBlit* pRegions,
3686 VkFilter filter);
3687
3688 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
3689 VkCommandBuffer commandBuffer,
3690 VkBuffer srcBuffer,
3691 VkImage dstImage,
3692 VkImageLayout dstImageLayout,
3693 uint32_t regionCount,
3694 const VkBufferImageCopy* pRegions);
3695
3696 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
3697 VkCommandBuffer commandBuffer,
3698 VkImage srcImage,
3699 VkImageLayout srcImageLayout,
3700 VkBuffer dstBuffer,
3701 uint32_t regionCount,
3702 const VkBufferImageCopy* pRegions);
3703
3704 VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
3705 VkCommandBuffer commandBuffer,
3706 VkBuffer dstBuffer,
3707 VkDeviceSize dstOffset,
3708 VkDeviceSize dataSize,
3709 const void* pData);
3710
3711 VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
3712 VkCommandBuffer commandBuffer,
3713 VkBuffer dstBuffer,
3714 VkDeviceSize dstOffset,
3715 VkDeviceSize size,
3716 uint32_t data);
3717
3718 VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
3719 VkCommandBuffer commandBuffer,
3720 VkImage image,
3721 VkImageLayout imageLayout,
3722 const VkClearColorValue* pColor,
3723 uint32_t rangeCount,
3724 const VkImageSubresourceRange* pRanges);
3725
3726 VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
3727 VkCommandBuffer commandBuffer,
3728 VkImage image,
3729 VkImageLayout imageLayout,
3730 const VkClearDepthStencilValue* pDepthStencil,
3731 uint32_t rangeCount,
3732 const VkImageSubresourceRange* pRanges);
3733
3734 VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
3735 VkCommandBuffer commandBuffer,
3736 uint32_t attachmentCount,
3737 const VkClearAttachment* pAttachments,
3738 uint32_t rectCount,
3739 const VkClearRect* pRects);
3740
3741 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
3742 VkCommandBuffer commandBuffer,
3743 VkImage srcImage,
3744 VkImageLayout srcImageLayout,
3745 VkImage dstImage,
3746 VkImageLayout dstImageLayout,
3747 uint32_t regionCount,
3748 const VkImageResolve* pRegions);
3749
3750 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
3751 VkCommandBuffer commandBuffer,
3752 VkEvent event,
3753 VkPipelineStageFlags stageMask);
3754
3755 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
3756 VkCommandBuffer commandBuffer,
3757 VkEvent event,
3758 VkPipelineStageFlags stageMask);
3759
3760 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
3761 VkCommandBuffer commandBuffer,
3762 uint32_t eventCount,
3763 const VkEvent* pEvents,
3764 VkPipelineStageFlags srcStageMask,
3765 VkPipelineStageFlags dstStageMask,
3766 uint32_t memoryBarrierCount,
3767 const VkMemoryBarrier* pMemoryBarriers,
3768 uint32_t bufferMemoryBarrierCount,
3769 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
3770 uint32_t imageMemoryBarrierCount,
3771 const VkImageMemoryBarrier* pImageMemoryBarriers);
3772
3773 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
3774 VkCommandBuffer commandBuffer,
3775 VkPipelineStageFlags srcStageMask,
3776 VkPipelineStageFlags dstStageMask,
3777 VkDependencyFlags dependencyFlags,
3778 uint32_t memoryBarrierCount,
3779 const VkMemoryBarrier* pMemoryBarriers,
3780 uint32_t bufferMemoryBarrierCount,
3781 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
3782 uint32_t imageMemoryBarrierCount,
3783 const VkImageMemoryBarrier* pImageMemoryBarriers);
3784
3785 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
3786 VkCommandBuffer commandBuffer,
3787 VkQueryPool queryPool,
3788 uint32_t query,
3789 VkQueryControlFlags flags);
3790
3791 VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
3792 VkCommandBuffer commandBuffer,
3793 VkQueryPool queryPool,
3794 uint32_t query);
3795
3796 VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
3797 VkCommandBuffer commandBuffer,
3798 VkQueryPool queryPool,
3799 uint32_t firstQuery,
3800 uint32_t queryCount);
3801
3802 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
3803 VkCommandBuffer commandBuffer,
3804 VkPipelineStageFlagBits pipelineStage,
3805 VkQueryPool queryPool,
3806 uint32_t query);
3807
3808 VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
3809 VkCommandBuffer commandBuffer,
3810 VkQueryPool queryPool,
3811 uint32_t firstQuery,
3812 uint32_t queryCount,
3813 VkBuffer dstBuffer,
3814 VkDeviceSize dstOffset,
3815 VkDeviceSize stride,
3816 VkQueryResultFlags flags);
3817
3818 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
3819 VkCommandBuffer commandBuffer,
3820 VkPipelineLayout layout,
3821 VkShaderStageFlags stageFlags,
3822 uint32_t offset,
3823 uint32_t size,
3824 const void* pValues);
3825
3826 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
3827 VkCommandBuffer commandBuffer,
3828 const VkRenderPassBeginInfo* pRenderPassBegin,
3829 VkSubpassContents contents);
3830
3831 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
3832 VkCommandBuffer commandBuffer,
3833 VkSubpassContents contents);
3834
3835 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
3836 VkCommandBuffer commandBuffer);
3837
3838 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
3839 VkCommandBuffer commandBuffer,
3840 uint32_t commandBufferCount,
3841 const VkCommandBuffer* pCommandBuffers);
3842 #endif
3843
3844
3845 #define VK_VERSION_1_1 1
3846 // Vulkan 1.1 version number
3847 #define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0
3848
3849 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
3850 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
3851 #define VK_MAX_DEVICE_GROUP_SIZE 32
3852 #define VK_LUID_SIZE 8
3853 #define VK_QUEUE_FAMILY_EXTERNAL (~0U-1)
3854
3855 typedef enum VkPointClippingBehavior {
3856 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
3857 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
3858 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
3859 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
3860 VK_POINT_CLIPPING_BEHAVIOR_BEGIN_RANGE = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
3861 VK_POINT_CLIPPING_BEHAVIOR_END_RANGE = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
3862 VK_POINT_CLIPPING_BEHAVIOR_RANGE_SIZE = (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES + 1),
3863 VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
3864 } VkPointClippingBehavior;
3865
3866 typedef enum VkTessellationDomainOrigin {
3867 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
3868 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
3869 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
3870 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
3871 VK_TESSELLATION_DOMAIN_ORIGIN_BEGIN_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
3872 VK_TESSELLATION_DOMAIN_ORIGIN_END_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
3873 VK_TESSELLATION_DOMAIN_ORIGIN_RANGE_SIZE = (VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT + 1),
3874 VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
3875 } VkTessellationDomainOrigin;
3876
3877 typedef enum VkSamplerYcbcrModelConversion {
3878 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
3879 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
3880 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
3881 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
3882 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
3883 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
3884 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
3885 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
3886 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
3887 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
3888 VK_SAMPLER_YCBCR_MODEL_CONVERSION_BEGIN_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
3889 VK_SAMPLER_YCBCR_MODEL_CONVERSION_END_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
3890 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RANGE_SIZE = (VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY + 1),
3891 VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
3892 } VkSamplerYcbcrModelConversion;
3893
3894 typedef enum VkSamplerYcbcrRange {
3895 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
3896 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
3897 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
3898 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
3899 VK_SAMPLER_YCBCR_RANGE_BEGIN_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
3900 VK_SAMPLER_YCBCR_RANGE_END_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
3901 VK_SAMPLER_YCBCR_RANGE_RANGE_SIZE = (VK_SAMPLER_YCBCR_RANGE_ITU_NARROW - VK_SAMPLER_YCBCR_RANGE_ITU_FULL + 1),
3902 VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
3903 } VkSamplerYcbcrRange;
3904
3905 typedef enum VkChromaLocation {
3906 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
3907 VK_CHROMA_LOCATION_MIDPOINT = 1,
3908 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
3909 VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
3910 VK_CHROMA_LOCATION_BEGIN_RANGE = VK_CHROMA_LOCATION_COSITED_EVEN,
3911 VK_CHROMA_LOCATION_END_RANGE = VK_CHROMA_LOCATION_MIDPOINT,
3912 VK_CHROMA_LOCATION_RANGE_SIZE = (VK_CHROMA_LOCATION_MIDPOINT - VK_CHROMA_LOCATION_COSITED_EVEN + 1),
3913 VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
3914 } VkChromaLocation;
3915
3916 typedef enum VkDescriptorUpdateTemplateType {
3917 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
3918 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
3919 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
3920 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
3921 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
3922 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET + 1),
3923 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
3924 } VkDescriptorUpdateTemplateType;
3925
3926 typedef enum VkSubgroupFeatureFlagBits {
3927 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
3928 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
3929 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
3930 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
3931 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
3932 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
3933 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
3934 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
3935 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
3936 VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3937 } VkSubgroupFeatureFlagBits;
3938 typedef VkFlags VkSubgroupFeatureFlags;
3939
3940 typedef enum VkPeerMemoryFeatureFlagBits {
3941 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
3942 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
3943 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
3944 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
3945 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
3946 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
3947 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
3948 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
3949 VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3950 } VkPeerMemoryFeatureFlagBits;
3951 typedef VkFlags VkPeerMemoryFeatureFlags;
3952
3953 typedef enum VkMemoryAllocateFlagBits {
3954 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
3955 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
3956 VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3957 } VkMemoryAllocateFlagBits;
3958 typedef VkFlags VkMemoryAllocateFlags;
3959 typedef VkFlags VkCommandPoolTrimFlags;
3960 typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
3961
3962 typedef enum VkExternalMemoryHandleTypeFlagBits {
3963 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3964 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3965 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3966 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
3967 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
3968 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
3969 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
3970 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
3971 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
3972 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
3973 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
3974 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
3975 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
3976 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
3977 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
3978 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
3979 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
3980 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
3981 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3982 } VkExternalMemoryHandleTypeFlagBits;
3983 typedef VkFlags VkExternalMemoryHandleTypeFlags;
3984
3985 typedef enum VkExternalMemoryFeatureFlagBits {
3986 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
3987 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
3988 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
3989 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
3990 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
3991 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
3992 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3993 } VkExternalMemoryFeatureFlagBits;
3994 typedef VkFlags VkExternalMemoryFeatureFlags;
3995
3996 typedef enum VkExternalFenceHandleTypeFlagBits {
3997 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3998 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3999 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
4000 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
4001 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
4002 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
4003 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
4004 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
4005 VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4006 } VkExternalFenceHandleTypeFlagBits;
4007 typedef VkFlags VkExternalFenceHandleTypeFlags;
4008
4009 typedef enum VkExternalFenceFeatureFlagBits {
4010 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
4011 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
4012 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
4013 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
4014 VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4015 } VkExternalFenceFeatureFlagBits;
4016 typedef VkFlags VkExternalFenceFeatureFlags;
4017
4018 typedef enum VkFenceImportFlagBits {
4019 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
4020 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
4021 VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4022 } VkFenceImportFlagBits;
4023 typedef VkFlags VkFenceImportFlags;
4024
4025 typedef enum VkSemaphoreImportFlagBits {
4026 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
4027 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
4028 VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4029 } VkSemaphoreImportFlagBits;
4030 typedef VkFlags VkSemaphoreImportFlags;
4031
4032 typedef enum VkExternalSemaphoreHandleTypeFlagBits {
4033 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
4034 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
4035 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
4036 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
4037 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
4038 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
4039 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
4040 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
4041 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
4042 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
4043 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4044 } VkExternalSemaphoreHandleTypeFlagBits;
4045 typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
4046
4047 typedef enum VkExternalSemaphoreFeatureFlagBits {
4048 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
4049 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
4050 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
4051 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
4052 VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
4053 } VkExternalSemaphoreFeatureFlagBits;
4054 typedef VkFlags VkExternalSemaphoreFeatureFlags;
4055 typedef struct VkPhysicalDeviceSubgroupProperties {
4056 VkStructureType sType;
4057 void* pNext;
4058 uint32_t subgroupSize;
4059 VkShaderStageFlags supportedStages;
4060 VkSubgroupFeatureFlags supportedOperations;
4061 VkBool32 quadOperationsInAllStages;
4062 } VkPhysicalDeviceSubgroupProperties;
4063
4064 typedef struct VkBindBufferMemoryInfo {
4065 VkStructureType sType;
4066 const void* pNext;
4067 VkBuffer buffer;
4068 VkDeviceMemory memory;
4069 VkDeviceSize memoryOffset;
4070 } VkBindBufferMemoryInfo;
4071
4072 typedef struct VkBindImageMemoryInfo {
4073 VkStructureType sType;
4074 const void* pNext;
4075 VkImage image;
4076 VkDeviceMemory memory;
4077 VkDeviceSize memoryOffset;
4078 } VkBindImageMemoryInfo;
4079
4080 typedef struct VkPhysicalDevice16BitStorageFeatures {
4081 VkStructureType sType;
4082 void* pNext;
4083 VkBool32 storageBuffer16BitAccess;
4084 VkBool32 uniformAndStorageBuffer16BitAccess;
4085 VkBool32 storagePushConstant16;
4086 VkBool32 storageInputOutput16;
4087 } VkPhysicalDevice16BitStorageFeatures;
4088
4089 typedef struct VkMemoryDedicatedRequirements {
4090 VkStructureType sType;
4091 void* pNext;
4092 VkBool32 prefersDedicatedAllocation;
4093 VkBool32 requiresDedicatedAllocation;
4094 } VkMemoryDedicatedRequirements;
4095
4096 typedef struct VkMemoryDedicatedAllocateInfo {
4097 VkStructureType sType;
4098 const void* pNext;
4099 VkImage image;
4100 VkBuffer buffer;
4101 } VkMemoryDedicatedAllocateInfo;
4102
4103 typedef struct VkMemoryAllocateFlagsInfo {
4104 VkStructureType sType;
4105 const void* pNext;
4106 VkMemoryAllocateFlags flags;
4107 uint32_t deviceMask;
4108 } VkMemoryAllocateFlagsInfo;
4109
4110 typedef struct VkDeviceGroupRenderPassBeginInfo {
4111 VkStructureType sType;
4112 const void* pNext;
4113 uint32_t deviceMask;
4114 uint32_t deviceRenderAreaCount;
4115 const VkRect2D* pDeviceRenderAreas;
4116 } VkDeviceGroupRenderPassBeginInfo;
4117
4118 typedef struct VkDeviceGroupCommandBufferBeginInfo {
4119 VkStructureType sType;
4120 const void* pNext;
4121 uint32_t deviceMask;
4122 } VkDeviceGroupCommandBufferBeginInfo;
4123
4124 typedef struct VkDeviceGroupSubmitInfo {
4125 VkStructureType sType;
4126 const void* pNext;
4127 uint32_t waitSemaphoreCount;
4128 const uint32_t* pWaitSemaphoreDeviceIndices;
4129 uint32_t commandBufferCount;
4130 const uint32_t* pCommandBufferDeviceMasks;
4131 uint32_t signalSemaphoreCount;
4132 const uint32_t* pSignalSemaphoreDeviceIndices;
4133 } VkDeviceGroupSubmitInfo;
4134
4135 typedef struct VkDeviceGroupBindSparseInfo {
4136 VkStructureType sType;
4137 const void* pNext;
4138 uint32_t resourceDeviceIndex;
4139 uint32_t memoryDeviceIndex;
4140 } VkDeviceGroupBindSparseInfo;
4141
4142 typedef struct VkBindBufferMemoryDeviceGroupInfo {
4143 VkStructureType sType;
4144 const void* pNext;
4145 uint32_t deviceIndexCount;
4146 const uint32_t* pDeviceIndices;
4147 } VkBindBufferMemoryDeviceGroupInfo;
4148
4149 typedef struct VkBindImageMemoryDeviceGroupInfo {
4150 VkStructureType sType;
4151 const void* pNext;
4152 uint32_t deviceIndexCount;
4153 const uint32_t* pDeviceIndices;
4154 uint32_t splitInstanceBindRegionCount;
4155 const VkRect2D* pSplitInstanceBindRegions;
4156 } VkBindImageMemoryDeviceGroupInfo;
4157
4158 typedef struct VkPhysicalDeviceGroupProperties {
4159 VkStructureType sType;
4160 void* pNext;
4161 uint32_t physicalDeviceCount;
4162 VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
4163 VkBool32 subsetAllocation;
4164 } VkPhysicalDeviceGroupProperties;
4165
4166 typedef struct VkDeviceGroupDeviceCreateInfo {
4167 VkStructureType sType;
4168 const void* pNext;
4169 uint32_t physicalDeviceCount;
4170 const VkPhysicalDevice* pPhysicalDevices;
4171 } VkDeviceGroupDeviceCreateInfo;
4172
4173 typedef struct VkBufferMemoryRequirementsInfo2 {
4174 VkStructureType sType;
4175 const void* pNext;
4176 VkBuffer buffer;
4177 } VkBufferMemoryRequirementsInfo2;
4178
4179 typedef struct VkImageMemoryRequirementsInfo2 {
4180 VkStructureType sType;
4181 const void* pNext;
4182 VkImage image;
4183 } VkImageMemoryRequirementsInfo2;
4184
4185 typedef struct VkImageSparseMemoryRequirementsInfo2 {
4186 VkStructureType sType;
4187 const void* pNext;
4188 VkImage image;
4189 } VkImageSparseMemoryRequirementsInfo2;
4190
4191 typedef struct VkMemoryRequirements2 {
4192 VkStructureType sType;
4193 void* pNext;
4194 VkMemoryRequirements memoryRequirements;
4195 } VkMemoryRequirements2;
4196
4197 typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
4198
4199 typedef struct VkSparseImageMemoryRequirements2 {
4200 VkStructureType sType;
4201 void* pNext;
4202 VkSparseImageMemoryRequirements memoryRequirements;
4203 } VkSparseImageMemoryRequirements2;
4204
4205 typedef struct VkPhysicalDeviceFeatures2 {
4206 VkStructureType sType;
4207 void* pNext;
4208 VkPhysicalDeviceFeatures features;
4209 } VkPhysicalDeviceFeatures2;
4210
4211 typedef struct VkPhysicalDeviceProperties2 {
4212 VkStructureType sType;
4213 void* pNext;
4214 VkPhysicalDeviceProperties properties;
4215 } VkPhysicalDeviceProperties2;
4216
4217 typedef struct VkFormatProperties2 {
4218 VkStructureType sType;
4219 void* pNext;
4220 VkFormatProperties formatProperties;
4221 } VkFormatProperties2;
4222
4223 typedef struct VkImageFormatProperties2 {
4224 VkStructureType sType;
4225 void* pNext;
4226 VkImageFormatProperties imageFormatProperties;
4227 } VkImageFormatProperties2;
4228
4229 typedef struct VkPhysicalDeviceImageFormatInfo2 {
4230 VkStructureType sType;
4231 const void* pNext;
4232 VkFormat format;
4233 VkImageType type;
4234 VkImageTiling tiling;
4235 VkImageUsageFlags usage;
4236 VkImageCreateFlags flags;
4237 } VkPhysicalDeviceImageFormatInfo2;
4238
4239 typedef struct VkQueueFamilyProperties2 {
4240 VkStructureType sType;
4241 void* pNext;
4242 VkQueueFamilyProperties queueFamilyProperties;
4243 } VkQueueFamilyProperties2;
4244
4245 typedef struct VkPhysicalDeviceMemoryProperties2 {
4246 VkStructureType sType;
4247 void* pNext;
4248 VkPhysicalDeviceMemoryProperties memoryProperties;
4249 } VkPhysicalDeviceMemoryProperties2;
4250
4251 typedef struct VkSparseImageFormatProperties2 {
4252 VkStructureType sType;
4253 void* pNext;
4254 VkSparseImageFormatProperties properties;
4255 } VkSparseImageFormatProperties2;
4256
4257 typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
4258 VkStructureType sType;
4259 const void* pNext;
4260 VkFormat format;
4261 VkImageType type;
4262 VkSampleCountFlagBits samples;
4263 VkImageUsageFlags usage;
4264 VkImageTiling tiling;
4265 } VkPhysicalDeviceSparseImageFormatInfo2;
4266
4267 typedef struct VkPhysicalDevicePointClippingProperties {
4268 VkStructureType sType;
4269 void* pNext;
4270 VkPointClippingBehavior pointClippingBehavior;
4271 } VkPhysicalDevicePointClippingProperties;
4272
4273 typedef struct VkInputAttachmentAspectReference {
4274 uint32_t subpass;
4275 uint32_t inputAttachmentIndex;
4276 VkImageAspectFlags aspectMask;
4277 } VkInputAttachmentAspectReference;
4278
4279 typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
4280 VkStructureType sType;
4281 const void* pNext;
4282 uint32_t aspectReferenceCount;
4283 const VkInputAttachmentAspectReference* pAspectReferences;
4284 } VkRenderPassInputAttachmentAspectCreateInfo;
4285
4286 typedef struct VkImageViewUsageCreateInfo {
4287 VkStructureType sType;
4288 const void* pNext;
4289 VkImageUsageFlags usage;
4290 } VkImageViewUsageCreateInfo;
4291
4292 typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
4293 VkStructureType sType;
4294 const void* pNext;
4295 VkTessellationDomainOrigin domainOrigin;
4296 } VkPipelineTessellationDomainOriginStateCreateInfo;
4297
4298 typedef struct VkRenderPassMultiviewCreateInfo {
4299 VkStructureType sType;
4300 const void* pNext;
4301 uint32_t subpassCount;
4302 const uint32_t* pViewMasks;
4303 uint32_t dependencyCount;
4304 const int32_t* pViewOffsets;
4305 uint32_t correlationMaskCount;
4306 const uint32_t* pCorrelationMasks;
4307 } VkRenderPassMultiviewCreateInfo;
4308
4309 typedef struct VkPhysicalDeviceMultiviewFeatures {
4310 VkStructureType sType;
4311 void* pNext;
4312 VkBool32 multiview;
4313 VkBool32 multiviewGeometryShader;
4314 VkBool32 multiviewTessellationShader;
4315 } VkPhysicalDeviceMultiviewFeatures;
4316
4317 typedef struct VkPhysicalDeviceMultiviewProperties {
4318 VkStructureType sType;
4319 void* pNext;
4320 uint32_t maxMultiviewViewCount;
4321 uint32_t maxMultiviewInstanceIndex;
4322 } VkPhysicalDeviceMultiviewProperties;
4323
4324 typedef struct VkPhysicalDeviceVariablePointersFeatures {
4325 VkStructureType sType;
4326 void* pNext;
4327 VkBool32 variablePointersStorageBuffer;
4328 VkBool32 variablePointers;
4329 } VkPhysicalDeviceVariablePointersFeatures;
4330
4331 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
4332
4333 typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
4334 VkStructureType sType;
4335 void* pNext;
4336 VkBool32 protectedMemory;
4337 } VkPhysicalDeviceProtectedMemoryFeatures;
4338
4339 typedef struct VkPhysicalDeviceProtectedMemoryProperties {
4340 VkStructureType sType;
4341 void* pNext;
4342 VkBool32 protectedNoFault;
4343 } VkPhysicalDeviceProtectedMemoryProperties;
4344
4345 typedef struct VkDeviceQueueInfo2 {
4346 VkStructureType sType;
4347 const void* pNext;
4348 VkDeviceQueueCreateFlags flags;
4349 uint32_t queueFamilyIndex;
4350 uint32_t queueIndex;
4351 } VkDeviceQueueInfo2;
4352
4353 typedef struct VkProtectedSubmitInfo {
4354 VkStructureType sType;
4355 const void* pNext;
4356 VkBool32 protectedSubmit;
4357 } VkProtectedSubmitInfo;
4358
4359 typedef struct VkSamplerYcbcrConversionCreateInfo {
4360 VkStructureType sType;
4361 const void* pNext;
4362 VkFormat format;
4363 VkSamplerYcbcrModelConversion ycbcrModel;
4364 VkSamplerYcbcrRange ycbcrRange;
4365 VkComponentMapping components;
4366 VkChromaLocation xChromaOffset;
4367 VkChromaLocation yChromaOffset;
4368 VkFilter chromaFilter;
4369 VkBool32 forceExplicitReconstruction;
4370 } VkSamplerYcbcrConversionCreateInfo;
4371
4372 typedef struct VkSamplerYcbcrConversionInfo {
4373 VkStructureType sType;
4374 const void* pNext;
4375 VkSamplerYcbcrConversion conversion;
4376 } VkSamplerYcbcrConversionInfo;
4377
4378 typedef struct VkBindImagePlaneMemoryInfo {
4379 VkStructureType sType;
4380 const void* pNext;
4381 VkImageAspectFlagBits planeAspect;
4382 } VkBindImagePlaneMemoryInfo;
4383
4384 typedef struct VkImagePlaneMemoryRequirementsInfo {
4385 VkStructureType sType;
4386 const void* pNext;
4387 VkImageAspectFlagBits planeAspect;
4388 } VkImagePlaneMemoryRequirementsInfo;
4389
4390 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
4391 VkStructureType sType;
4392 void* pNext;
4393 VkBool32 samplerYcbcrConversion;
4394 } VkPhysicalDeviceSamplerYcbcrConversionFeatures;
4395
4396 typedef struct VkSamplerYcbcrConversionImageFormatProperties {
4397 VkStructureType sType;
4398 void* pNext;
4399 uint32_t combinedImageSamplerDescriptorCount;
4400 } VkSamplerYcbcrConversionImageFormatProperties;
4401
4402 typedef struct VkDescriptorUpdateTemplateEntry {
4403 uint32_t dstBinding;
4404 uint32_t dstArrayElement;
4405 uint32_t descriptorCount;
4406 VkDescriptorType descriptorType;
4407 size_t offset;
4408 size_t stride;
4409 } VkDescriptorUpdateTemplateEntry;
4410
4411 typedef struct VkDescriptorUpdateTemplateCreateInfo {
4412 VkStructureType sType;
4413 const void* pNext;
4414 VkDescriptorUpdateTemplateCreateFlags flags;
4415 uint32_t descriptorUpdateEntryCount;
4416 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries;
4417 VkDescriptorUpdateTemplateType templateType;
4418 VkDescriptorSetLayout descriptorSetLayout;
4419 VkPipelineBindPoint pipelineBindPoint;
4420 VkPipelineLayout pipelineLayout;
4421 uint32_t set;
4422 } VkDescriptorUpdateTemplateCreateInfo;
4423
4424 typedef struct VkExternalMemoryProperties {
4425 VkExternalMemoryFeatureFlags externalMemoryFeatures;
4426 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
4427 VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
4428 } VkExternalMemoryProperties;
4429
4430 typedef struct VkPhysicalDeviceExternalImageFormatInfo {
4431 VkStructureType sType;
4432 const void* pNext;
4433 VkExternalMemoryHandleTypeFlagBits handleType;
4434 } VkPhysicalDeviceExternalImageFormatInfo;
4435
4436 typedef struct VkExternalImageFormatProperties {
4437 VkStructureType sType;
4438 void* pNext;
4439 VkExternalMemoryProperties externalMemoryProperties;
4440 } VkExternalImageFormatProperties;
4441
4442 typedef struct VkPhysicalDeviceExternalBufferInfo {
4443 VkStructureType sType;
4444 const void* pNext;
4445 VkBufferCreateFlags flags;
4446 VkBufferUsageFlags usage;
4447 VkExternalMemoryHandleTypeFlagBits handleType;
4448 } VkPhysicalDeviceExternalBufferInfo;
4449
4450 typedef struct VkExternalBufferProperties {
4451 VkStructureType sType;
4452 void* pNext;
4453 VkExternalMemoryProperties externalMemoryProperties;
4454 } VkExternalBufferProperties;
4455
4456 typedef struct VkPhysicalDeviceIDProperties {
4457 VkStructureType sType;
4458 void* pNext;
4459 uint8_t deviceUUID[VK_UUID_SIZE];
4460 uint8_t driverUUID[VK_UUID_SIZE];
4461 uint8_t deviceLUID[VK_LUID_SIZE];
4462 uint32_t deviceNodeMask;
4463 VkBool32 deviceLUIDValid;
4464 } VkPhysicalDeviceIDProperties;
4465
4466 typedef struct VkExternalMemoryImageCreateInfo {
4467 VkStructureType sType;
4468 const void* pNext;
4469 VkExternalMemoryHandleTypeFlags handleTypes;
4470 } VkExternalMemoryImageCreateInfo;
4471
4472 typedef struct VkExternalMemoryBufferCreateInfo {
4473 VkStructureType sType;
4474 const void* pNext;
4475 VkExternalMemoryHandleTypeFlags handleTypes;
4476 } VkExternalMemoryBufferCreateInfo;
4477
4478 typedef struct VkExportMemoryAllocateInfo {
4479 VkStructureType sType;
4480 const void* pNext;
4481 VkExternalMemoryHandleTypeFlags handleTypes;
4482 } VkExportMemoryAllocateInfo;
4483
4484 typedef struct VkPhysicalDeviceExternalFenceInfo {
4485 VkStructureType sType;
4486 const void* pNext;
4487 VkExternalFenceHandleTypeFlagBits handleType;
4488 } VkPhysicalDeviceExternalFenceInfo;
4489
4490 typedef struct VkExternalFenceProperties {
4491 VkStructureType sType;
4492 void* pNext;
4493 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
4494 VkExternalFenceHandleTypeFlags compatibleHandleTypes;
4495 VkExternalFenceFeatureFlags externalFenceFeatures;
4496 } VkExternalFenceProperties;
4497
4498 typedef struct VkExportFenceCreateInfo {
4499 VkStructureType sType;
4500 const void* pNext;
4501 VkExternalFenceHandleTypeFlags handleTypes;
4502 } VkExportFenceCreateInfo;
4503
4504 typedef struct VkExportSemaphoreCreateInfo {
4505 VkStructureType sType;
4506 const void* pNext;
4507 VkExternalSemaphoreHandleTypeFlags handleTypes;
4508 } VkExportSemaphoreCreateInfo;
4509
4510 typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
4511 VkStructureType sType;
4512 const void* pNext;
4513 VkExternalSemaphoreHandleTypeFlagBits handleType;
4514 } VkPhysicalDeviceExternalSemaphoreInfo;
4515
4516 typedef struct VkExternalSemaphoreProperties {
4517 VkStructureType sType;
4518 void* pNext;
4519 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
4520 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
4521 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
4522 } VkExternalSemaphoreProperties;
4523
4524 typedef struct VkPhysicalDeviceMaintenance3Properties {
4525 VkStructureType sType;
4526 void* pNext;
4527 uint32_t maxPerSetDescriptors;
4528 VkDeviceSize maxMemoryAllocationSize;
4529 } VkPhysicalDeviceMaintenance3Properties;
4530
4531 typedef struct VkDescriptorSetLayoutSupport {
4532 VkStructureType sType;
4533 void* pNext;
4534 VkBool32 supported;
4535 } VkDescriptorSetLayoutSupport;
4536
4537 typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
4538 VkStructureType sType;
4539 void* pNext;
4540 VkBool32 shaderDrawParameters;
4541 } VkPhysicalDeviceShaderDrawParametersFeatures;
4542
4543 typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
4544
4545 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
4546 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
4547 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
4548 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
4549 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
4550 typedef 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);
4551 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
4552 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
4553 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
4554 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
4555 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
4556 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
4557 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
4558 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
4559 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
4560 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
4561 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
4562 typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
4563 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
4564 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
4565 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
4566 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
4567 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
4568 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
4569 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
4570 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
4571 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
4572 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
4573
4574 #ifndef VK_NO_PROTOTYPES
4575 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
4576 uint32_t* pApiVersion);
4577
4578 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
4579 VkDevice device,
4580 uint32_t bindInfoCount,
4581 const VkBindBufferMemoryInfo* pBindInfos);
4582
4583 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
4584 VkDevice device,
4585 uint32_t bindInfoCount,
4586 const VkBindImageMemoryInfo* pBindInfos);
4587
4588 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
4589 VkDevice device,
4590 uint32_t heapIndex,
4591 uint32_t localDeviceIndex,
4592 uint32_t remoteDeviceIndex,
4593 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
4594
4595 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
4596 VkCommandBuffer commandBuffer,
4597 uint32_t deviceMask);
4598
4599 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
4600 VkCommandBuffer commandBuffer,
4601 uint32_t baseGroupX,
4602 uint32_t baseGroupY,
4603 uint32_t baseGroupZ,
4604 uint32_t groupCountX,
4605 uint32_t groupCountY,
4606 uint32_t groupCountZ);
4607
4608 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
4609 VkInstance instance,
4610 uint32_t* pPhysicalDeviceGroupCount,
4611 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
4612
4613 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
4614 VkDevice device,
4615 const VkImageMemoryRequirementsInfo2* pInfo,
4616 VkMemoryRequirements2* pMemoryRequirements);
4617
4618 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
4619 VkDevice device,
4620 const VkBufferMemoryRequirementsInfo2* pInfo,
4621 VkMemoryRequirements2* pMemoryRequirements);
4622
4623 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
4624 VkDevice device,
4625 const VkImageSparseMemoryRequirementsInfo2* pInfo,
4626 uint32_t* pSparseMemoryRequirementCount,
4627 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
4628
4629 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
4630 VkPhysicalDevice physicalDevice,
4631 VkPhysicalDeviceFeatures2* pFeatures);
4632
4633 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
4634 VkPhysicalDevice physicalDevice,
4635 VkPhysicalDeviceProperties2* pProperties);
4636
4637 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
4638 VkPhysicalDevice physicalDevice,
4639 VkFormat format,
4640 VkFormatProperties2* pFormatProperties);
4641
4642 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
4643 VkPhysicalDevice physicalDevice,
4644 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
4645 VkImageFormatProperties2* pImageFormatProperties);
4646
4647 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
4648 VkPhysicalDevice physicalDevice,
4649 uint32_t* pQueueFamilyPropertyCount,
4650 VkQueueFamilyProperties2* pQueueFamilyProperties);
4651
4652 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
4653 VkPhysicalDevice physicalDevice,
4654 VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
4655
4656 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
4657 VkPhysicalDevice physicalDevice,
4658 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
4659 uint32_t* pPropertyCount,
4660 VkSparseImageFormatProperties2* pProperties);
4661
4662 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
4663 VkDevice device,
4664 VkCommandPool commandPool,
4665 VkCommandPoolTrimFlags flags);
4666
4667 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
4668 VkDevice device,
4669 const VkDeviceQueueInfo2* pQueueInfo,
4670 VkQueue* pQueue);
4671
4672 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
4673 VkDevice device,
4674 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
4675 const VkAllocationCallbacks* pAllocator,
4676 VkSamplerYcbcrConversion* pYcbcrConversion);
4677
4678 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
4679 VkDevice device,
4680 VkSamplerYcbcrConversion ycbcrConversion,
4681 const VkAllocationCallbacks* pAllocator);
4682
4683 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
4684 VkDevice device,
4685 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
4686 const VkAllocationCallbacks* pAllocator,
4687 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
4688
4689 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
4690 VkDevice device,
4691 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
4692 const VkAllocationCallbacks* pAllocator);
4693
4694 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
4695 VkDevice device,
4696 VkDescriptorSet descriptorSet,
4697 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
4698 const void* pData);
4699
4700 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
4701 VkPhysicalDevice physicalDevice,
4702 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
4703 VkExternalBufferProperties* pExternalBufferProperties);
4704
4705 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
4706 VkPhysicalDevice physicalDevice,
4707 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
4708 VkExternalFenceProperties* pExternalFenceProperties);
4709
4710 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
4711 VkPhysicalDevice physicalDevice,
4712 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
4713 VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
4714
4715 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
4716 VkDevice device,
4717 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
4718 VkDescriptorSetLayoutSupport* pSupport);
4719 #endif
4720
4721
4722 #define VK_KHR_surface 1
4723 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
4724 #define VK_KHR_SURFACE_SPEC_VERSION 25
4725 #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
4726
4727 typedef enum VkColorSpaceKHR {
4728 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
4729 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
4730 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
4731 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
4732 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
4733 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
4734 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
4735 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
4736 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
4737 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
4738 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
4739 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
4740 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
4741 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
4742 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
4743 VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
4744 VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
4745 VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
4746 VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
4747 VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1),
4748 VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
4749 } VkColorSpaceKHR;
4750
4751 typedef enum VkPresentModeKHR {
4752 VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
4753 VK_PRESENT_MODE_MAILBOX_KHR = 1,
4754 VK_PRESENT_MODE_FIFO_KHR = 2,
4755 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
4756 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
4757 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
4758 VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR,
4759 VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR,
4760 VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1),
4761 VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
4762 } VkPresentModeKHR;
4763
4764 typedef enum VkSurfaceTransformFlagBitsKHR {
4765 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
4766 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
4767 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
4768 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
4769 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
4770 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
4771 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
4772 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
4773 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
4774 VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
4775 } VkSurfaceTransformFlagBitsKHR;
4776 typedef VkFlags VkSurfaceTransformFlagsKHR;
4777
4778 typedef enum VkCompositeAlphaFlagBitsKHR {
4779 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
4780 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
4781 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
4782 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
4783 VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
4784 } VkCompositeAlphaFlagBitsKHR;
4785 typedef VkFlags VkCompositeAlphaFlagsKHR;
4786 typedef struct VkSurfaceCapabilitiesKHR {
4787 uint32_t minImageCount;
4788 uint32_t maxImageCount;
4789 VkExtent2D currentExtent;
4790 VkExtent2D minImageExtent;
4791 VkExtent2D maxImageExtent;
4792 uint32_t maxImageArrayLayers;
4793 VkSurfaceTransformFlagsKHR supportedTransforms;
4794 VkSurfaceTransformFlagBitsKHR currentTransform;
4795 VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
4796 VkImageUsageFlags supportedUsageFlags;
4797 } VkSurfaceCapabilitiesKHR;
4798
4799 typedef struct VkSurfaceFormatKHR {
4800 VkFormat format;
4801 VkColorSpaceKHR colorSpace;
4802 } VkSurfaceFormatKHR;
4803
4804 typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
4805 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
4806 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
4807 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
4808 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
4809
4810 #ifndef VK_NO_PROTOTYPES
4811 VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
4812 VkInstance instance,
4813 VkSurfaceKHR surface,
4814 const VkAllocationCallbacks* pAllocator);
4815
4816 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
4817 VkPhysicalDevice physicalDevice,
4818 uint32_t queueFamilyIndex,
4819 VkSurfaceKHR surface,
4820 VkBool32* pSupported);
4821
4822 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
4823 VkPhysicalDevice physicalDevice,
4824 VkSurfaceKHR surface,
4825 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
4826
4827 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
4828 VkPhysicalDevice physicalDevice,
4829 VkSurfaceKHR surface,
4830 uint32_t* pSurfaceFormatCount,
4831 VkSurfaceFormatKHR* pSurfaceFormats);
4832
4833 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
4834 VkPhysicalDevice physicalDevice,
4835 VkSurfaceKHR surface,
4836 uint32_t* pPresentModeCount,
4837 VkPresentModeKHR* pPresentModes);
4838 #endif
4839
4840
4841 #define VK_KHR_swapchain 1
4842 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
4843 #define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
4844 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
4845
4846 typedef enum VkSwapchainCreateFlagBitsKHR {
4847 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
4848 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
4849 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
4850 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
4851 } VkSwapchainCreateFlagBitsKHR;
4852 typedef VkFlags VkSwapchainCreateFlagsKHR;
4853
4854 typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
4855 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
4856 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
4857 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
4858 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
4859 VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
4860 } VkDeviceGroupPresentModeFlagBitsKHR;
4861 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
4862 typedef struct VkSwapchainCreateInfoKHR {
4863 VkStructureType sType;
4864 const void* pNext;
4865 VkSwapchainCreateFlagsKHR flags;
4866 VkSurfaceKHR surface;
4867 uint32_t minImageCount;
4868 VkFormat imageFormat;
4869 VkColorSpaceKHR imageColorSpace;
4870 VkExtent2D imageExtent;
4871 uint32_t imageArrayLayers;
4872 VkImageUsageFlags imageUsage;
4873 VkSharingMode imageSharingMode;
4874 uint32_t queueFamilyIndexCount;
4875 const uint32_t* pQueueFamilyIndices;
4876 VkSurfaceTransformFlagBitsKHR preTransform;
4877 VkCompositeAlphaFlagBitsKHR compositeAlpha;
4878 VkPresentModeKHR presentMode;
4879 VkBool32 clipped;
4880 VkSwapchainKHR oldSwapchain;
4881 } VkSwapchainCreateInfoKHR;
4882
4883 typedef struct VkPresentInfoKHR {
4884 VkStructureType sType;
4885 const void* pNext;
4886 uint32_t waitSemaphoreCount;
4887 const VkSemaphore* pWaitSemaphores;
4888 uint32_t swapchainCount;
4889 const VkSwapchainKHR* pSwapchains;
4890 const uint32_t* pImageIndices;
4891 VkResult* pResults;
4892 } VkPresentInfoKHR;
4893
4894 typedef struct VkImageSwapchainCreateInfoKHR {
4895 VkStructureType sType;
4896 const void* pNext;
4897 VkSwapchainKHR swapchain;
4898 } VkImageSwapchainCreateInfoKHR;
4899
4900 typedef struct VkBindImageMemorySwapchainInfoKHR {
4901 VkStructureType sType;
4902 const void* pNext;
4903 VkSwapchainKHR swapchain;
4904 uint32_t imageIndex;
4905 } VkBindImageMemorySwapchainInfoKHR;
4906
4907 typedef struct VkAcquireNextImageInfoKHR {
4908 VkStructureType sType;
4909 const void* pNext;
4910 VkSwapchainKHR swapchain;
4911 uint64_t timeout;
4912 VkSemaphore semaphore;
4913 VkFence fence;
4914 uint32_t deviceMask;
4915 } VkAcquireNextImageInfoKHR;
4916
4917 typedef struct VkDeviceGroupPresentCapabilitiesKHR {
4918 VkStructureType sType;
4919 const void* pNext;
4920 uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE];
4921 VkDeviceGroupPresentModeFlagsKHR modes;
4922 } VkDeviceGroupPresentCapabilitiesKHR;
4923
4924 typedef struct VkDeviceGroupPresentInfoKHR {
4925 VkStructureType sType;
4926 const void* pNext;
4927 uint32_t swapchainCount;
4928 const uint32_t* pDeviceMasks;
4929 VkDeviceGroupPresentModeFlagBitsKHR mode;
4930 } VkDeviceGroupPresentInfoKHR;
4931
4932 typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
4933 VkStructureType sType;
4934 const void* pNext;
4935 VkDeviceGroupPresentModeFlagsKHR modes;
4936 } VkDeviceGroupSwapchainCreateInfoKHR;
4937
4938 typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
4939 typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
4940 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
4941 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
4942 typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
4943 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
4944 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
4945 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
4946 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
4947
4948 #ifndef VK_NO_PROTOTYPES
4949 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
4950 VkDevice device,
4951 const VkSwapchainCreateInfoKHR* pCreateInfo,
4952 const VkAllocationCallbacks* pAllocator,
4953 VkSwapchainKHR* pSwapchain);
4954
4955 VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
4956 VkDevice device,
4957 VkSwapchainKHR swapchain,
4958 const VkAllocationCallbacks* pAllocator);
4959
4960 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
4961 VkDevice device,
4962 VkSwapchainKHR swapchain,
4963 uint32_t* pSwapchainImageCount,
4964 VkImage* pSwapchainImages);
4965
4966 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
4967 VkDevice device,
4968 VkSwapchainKHR swapchain,
4969 uint64_t timeout,
4970 VkSemaphore semaphore,
4971 VkFence fence,
4972 uint32_t* pImageIndex);
4973
4974 VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
4975 VkQueue queue,
4976 const VkPresentInfoKHR* pPresentInfo);
4977
4978 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
4979 VkDevice device,
4980 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
4981
4982 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
4983 VkDevice device,
4984 VkSurfaceKHR surface,
4985 VkDeviceGroupPresentModeFlagsKHR* pModes);
4986
4987 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
4988 VkPhysicalDevice physicalDevice,
4989 VkSurfaceKHR surface,
4990 uint32_t* pRectCount,
4991 VkRect2D* pRects);
4992
4993 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
4994 VkDevice device,
4995 const VkAcquireNextImageInfoKHR* pAcquireInfo,
4996 uint32_t* pImageIndex);
4997 #endif
4998
4999
5000 #define VK_KHR_display 1
5001 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
5002 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
5003 #define VK_KHR_DISPLAY_SPEC_VERSION 21
5004 #define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
5005
5006 typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
5007 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
5008 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
5009 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
5010 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
5011 VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
5012 } VkDisplayPlaneAlphaFlagBitsKHR;
5013 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
5014 typedef VkFlags VkDisplayModeCreateFlagsKHR;
5015 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
5016 typedef struct VkDisplayPropertiesKHR {
5017 VkDisplayKHR display;
5018 const char* displayName;
5019 VkExtent2D physicalDimensions;
5020 VkExtent2D physicalResolution;
5021 VkSurfaceTransformFlagsKHR supportedTransforms;
5022 VkBool32 planeReorderPossible;
5023 VkBool32 persistentContent;
5024 } VkDisplayPropertiesKHR;
5025
5026 typedef struct VkDisplayModeParametersKHR {
5027 VkExtent2D visibleRegion;
5028 uint32_t refreshRate;
5029 } VkDisplayModeParametersKHR;
5030
5031 typedef struct VkDisplayModePropertiesKHR {
5032 VkDisplayModeKHR displayMode;
5033 VkDisplayModeParametersKHR parameters;
5034 } VkDisplayModePropertiesKHR;
5035
5036 typedef struct VkDisplayModeCreateInfoKHR {
5037 VkStructureType sType;
5038 const void* pNext;
5039 VkDisplayModeCreateFlagsKHR flags;
5040 VkDisplayModeParametersKHR parameters;
5041 } VkDisplayModeCreateInfoKHR;
5042
5043 typedef struct VkDisplayPlaneCapabilitiesKHR {
5044 VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
5045 VkOffset2D minSrcPosition;
5046 VkOffset2D maxSrcPosition;
5047 VkExtent2D minSrcExtent;
5048 VkExtent2D maxSrcExtent;
5049 VkOffset2D minDstPosition;
5050 VkOffset2D maxDstPosition;
5051 VkExtent2D minDstExtent;
5052 VkExtent2D maxDstExtent;
5053 } VkDisplayPlaneCapabilitiesKHR;
5054
5055 typedef struct VkDisplayPlanePropertiesKHR {
5056 VkDisplayKHR currentDisplay;
5057 uint32_t currentStackIndex;
5058 } VkDisplayPlanePropertiesKHR;
5059
5060 typedef struct VkDisplaySurfaceCreateInfoKHR {
5061 VkStructureType sType;
5062 const void* pNext;
5063 VkDisplaySurfaceCreateFlagsKHR flags;
5064 VkDisplayModeKHR displayMode;
5065 uint32_t planeIndex;
5066 uint32_t planeStackIndex;
5067 VkSurfaceTransformFlagBitsKHR transform;
5068 float globalAlpha;
5069 VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
5070 VkExtent2D imageExtent;
5071 } VkDisplaySurfaceCreateInfoKHR;
5072
5073 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
5074 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
5075 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
5076 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
5077 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
5078 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
5079 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
5080
5081 #ifndef VK_NO_PROTOTYPES
5082 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
5083 VkPhysicalDevice physicalDevice,
5084 uint32_t* pPropertyCount,
5085 VkDisplayPropertiesKHR* pProperties);
5086
5087 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
5088 VkPhysicalDevice physicalDevice,
5089 uint32_t* pPropertyCount,
5090 VkDisplayPlanePropertiesKHR* pProperties);
5091
5092 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
5093 VkPhysicalDevice physicalDevice,
5094 uint32_t planeIndex,
5095 uint32_t* pDisplayCount,
5096 VkDisplayKHR* pDisplays);
5097
5098 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
5099 VkPhysicalDevice physicalDevice,
5100 VkDisplayKHR display,
5101 uint32_t* pPropertyCount,
5102 VkDisplayModePropertiesKHR* pProperties);
5103
5104 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
5105 VkPhysicalDevice physicalDevice,
5106 VkDisplayKHR display,
5107 const VkDisplayModeCreateInfoKHR* pCreateInfo,
5108 const VkAllocationCallbacks* pAllocator,
5109 VkDisplayModeKHR* pMode);
5110
5111 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
5112 VkPhysicalDevice physicalDevice,
5113 VkDisplayModeKHR mode,
5114 uint32_t planeIndex,
5115 VkDisplayPlaneCapabilitiesKHR* pCapabilities);
5116
5117 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
5118 VkInstance instance,
5119 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
5120 const VkAllocationCallbacks* pAllocator,
5121 VkSurfaceKHR* pSurface);
5122 #endif
5123
5124
5125 #define VK_KHR_display_swapchain 1
5126 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9
5127 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
5128 typedef struct VkDisplayPresentInfoKHR {
5129 VkStructureType sType;
5130 const void* pNext;
5131 VkRect2D srcRect;
5132 VkRect2D dstRect;
5133 VkBool32 persistent;
5134 } VkDisplayPresentInfoKHR;
5135
5136 typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
5137
5138 #ifndef VK_NO_PROTOTYPES
5139 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
5140 VkDevice device,
5141 uint32_t swapchainCount,
5142 const VkSwapchainCreateInfoKHR* pCreateInfos,
5143 const VkAllocationCallbacks* pAllocator,
5144 VkSwapchainKHR* pSwapchains);
5145 #endif
5146
5147
5148 #define VK_KHR_sampler_mirror_clamp_to_edge 1
5149 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1
5150 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
5151
5152
5153 #define VK_KHR_multiview 1
5154 #define VK_KHR_MULTIVIEW_SPEC_VERSION 1
5155 #define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
5156 typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
5157
5158 typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
5159
5160 typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
5161
5162
5163
5164 #define VK_KHR_get_physical_device_properties2 1
5165 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1
5166 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
5167 typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
5168
5169 typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
5170
5171 typedef VkFormatProperties2 VkFormatProperties2KHR;
5172
5173 typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
5174
5175 typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
5176
5177 typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
5178
5179 typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
5180
5181 typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
5182
5183 typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
5184
5185 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
5186 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
5187 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
5188 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
5189 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
5190 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
5191 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
5192
5193 #ifndef VK_NO_PROTOTYPES
5194 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
5195 VkPhysicalDevice physicalDevice,
5196 VkPhysicalDeviceFeatures2* pFeatures);
5197
5198 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
5199 VkPhysicalDevice physicalDevice,
5200 VkPhysicalDeviceProperties2* pProperties);
5201
5202 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
5203 VkPhysicalDevice physicalDevice,
5204 VkFormat format,
5205 VkFormatProperties2* pFormatProperties);
5206
5207 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
5208 VkPhysicalDevice physicalDevice,
5209 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
5210 VkImageFormatProperties2* pImageFormatProperties);
5211
5212 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
5213 VkPhysicalDevice physicalDevice,
5214 uint32_t* pQueueFamilyPropertyCount,
5215 VkQueueFamilyProperties2* pQueueFamilyProperties);
5216
5217 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
5218 VkPhysicalDevice physicalDevice,
5219 VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
5220
5221 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
5222 VkPhysicalDevice physicalDevice,
5223 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
5224 uint32_t* pPropertyCount,
5225 VkSparseImageFormatProperties2* pProperties);
5226 #endif
5227
5228
5229 #define VK_KHR_device_group 1
5230 #define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3
5231 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
5232 typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
5233
5234 typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
5235
5236 typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
5237
5238 typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
5239
5240 typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
5241
5242 typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
5243
5244 typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
5245
5246 typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
5247
5248 typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
5249
5250 typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
5251
5252 typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
5253
5254 typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
5255 VkStructureType sType;
5256 const void* pNext;
5257 VkSurfaceKHR surface;
5258 } VkPhysicalDeviceSurfaceInfo2KHR;
5259
5260 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
5261 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
5262 typedef 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);
5263 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModes2EXT)(VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes);
5264
5265 #ifndef VK_NO_PROTOTYPES
5266 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
5267 VkDevice device,
5268 uint32_t heapIndex,
5269 uint32_t localDeviceIndex,
5270 uint32_t remoteDeviceIndex,
5271 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
5272
5273 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
5274 VkCommandBuffer commandBuffer,
5275 uint32_t deviceMask);
5276
5277 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
5278 VkCommandBuffer commandBuffer,
5279 uint32_t baseGroupX,
5280 uint32_t baseGroupY,
5281 uint32_t baseGroupZ,
5282 uint32_t groupCountX,
5283 uint32_t groupCountY,
5284 uint32_t groupCountZ);
5285
5286 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModes2EXT(
5287 VkDevice device,
5288 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
5289 VkDeviceGroupPresentModeFlagsKHR* pModes);
5290 #endif
5291
5292
5293 #define VK_KHR_shader_draw_parameters 1
5294 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
5295 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
5296
5297
5298 #define VK_KHR_maintenance1 1
5299 #define VK_KHR_MAINTENANCE1_SPEC_VERSION 2
5300 #define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
5301 typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
5302
5303 typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
5304
5305 #ifndef VK_NO_PROTOTYPES
5306 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
5307 VkDevice device,
5308 VkCommandPool commandPool,
5309 VkCommandPoolTrimFlags flags);
5310 #endif
5311
5312
5313 #define VK_KHR_device_group_creation 1
5314 #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
5315 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
5316 #define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE
5317 typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
5318
5319 typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
5320
5321 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
5322
5323 #ifndef VK_NO_PROTOTYPES
5324 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
5325 VkInstance instance,
5326 uint32_t* pPhysicalDeviceGroupCount,
5327 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
5328 #endif
5329
5330
5331 #define VK_KHR_external_memory_capabilities 1
5332 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
5333 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
5334 #define VK_LUID_SIZE_KHR VK_LUID_SIZE
5335 typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
5336
5337 typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
5338
5339 typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
5340
5341 typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
5342
5343 typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
5344
5345 typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
5346
5347 typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
5348
5349 typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
5350
5351 typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
5352
5353 typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
5354
5355 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
5356
5357 #ifndef VK_NO_PROTOTYPES
5358 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
5359 VkPhysicalDevice physicalDevice,
5360 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
5361 VkExternalBufferProperties* pExternalBufferProperties);
5362 #endif
5363
5364
5365 #define VK_KHR_external_memory 1
5366 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
5367 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
5368 #define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL
5369 typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
5370
5371 typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
5372
5373 typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
5374
5375
5376
5377 #define VK_KHR_external_memory_fd 1
5378 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
5379 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
5380 typedef struct VkImportMemoryFdInfoKHR {
5381 VkStructureType sType;
5382 const void* pNext;
5383 VkExternalMemoryHandleTypeFlagBits handleType;
5384 int fd;
5385 } VkImportMemoryFdInfoKHR;
5386
5387 typedef struct VkMemoryFdPropertiesKHR {
5388 VkStructureType sType;
5389 void* pNext;
5390 uint32_t memoryTypeBits;
5391 } VkMemoryFdPropertiesKHR;
5392
5393 typedef struct VkMemoryGetFdInfoKHR {
5394 VkStructureType sType;
5395 const void* pNext;
5396 VkDeviceMemory memory;
5397 VkExternalMemoryHandleTypeFlagBits handleType;
5398 } VkMemoryGetFdInfoKHR;
5399
5400 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
5401 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
5402
5403 #ifndef VK_NO_PROTOTYPES
5404 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
5405 VkDevice device,
5406 const VkMemoryGetFdInfoKHR* pGetFdInfo,
5407 int* pFd);
5408
5409 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
5410 VkDevice device,
5411 VkExternalMemoryHandleTypeFlagBits handleType,
5412 int fd,
5413 VkMemoryFdPropertiesKHR* pMemoryFdProperties);
5414 #endif
5415
5416
5417 #define VK_KHR_external_semaphore_capabilities 1
5418 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
5419 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
5420 typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
5421
5422 typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
5423
5424 typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
5425
5426 typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
5427
5428 typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
5429
5430 typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
5431
5432 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
5433
5434 #ifndef VK_NO_PROTOTYPES
5435 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
5436 VkPhysicalDevice physicalDevice,
5437 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
5438 VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
5439 #endif
5440
5441
5442 #define VK_KHR_external_semaphore 1
5443 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
5444 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
5445 typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
5446
5447 typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
5448
5449 typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
5450
5451
5452
5453 #define VK_KHR_external_semaphore_fd 1
5454 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
5455 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
5456 typedef struct VkImportSemaphoreFdInfoKHR {
5457 VkStructureType sType;
5458 const void* pNext;
5459 VkSemaphore semaphore;
5460 VkSemaphoreImportFlags flags;
5461 VkExternalSemaphoreHandleTypeFlagBits handleType;
5462 int fd;
5463 } VkImportSemaphoreFdInfoKHR;
5464
5465 typedef struct VkSemaphoreGetFdInfoKHR {
5466 VkStructureType sType;
5467 const void* pNext;
5468 VkSemaphore semaphore;
5469 VkExternalSemaphoreHandleTypeFlagBits handleType;
5470 } VkSemaphoreGetFdInfoKHR;
5471
5472 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
5473 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
5474
5475 #ifndef VK_NO_PROTOTYPES
5476 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
5477 VkDevice device,
5478 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
5479
5480 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
5481 VkDevice device,
5482 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
5483 int* pFd);
5484 #endif
5485
5486
5487 #define VK_KHR_push_descriptor 1
5488 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
5489 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
5490 typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
5491 VkStructureType sType;
5492 void* pNext;
5493 uint32_t maxPushDescriptors;
5494 } VkPhysicalDevicePushDescriptorPropertiesKHR;
5495
5496 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
5497 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
5498
5499 #ifndef VK_NO_PROTOTYPES
5500 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
5501 VkCommandBuffer commandBuffer,
5502 VkPipelineBindPoint pipelineBindPoint,
5503 VkPipelineLayout layout,
5504 uint32_t set,
5505 uint32_t descriptorWriteCount,
5506 const VkWriteDescriptorSet* pDescriptorWrites);
5507
5508 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
5509 VkCommandBuffer commandBuffer,
5510 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
5511 VkPipelineLayout layout,
5512 uint32_t set,
5513 const void* pData);
5514 #endif
5515
5516
5517 #define VK_KHR_shader_float16_int8 1
5518 #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
5519 #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
5520 typedef struct VkPhysicalDeviceFloat16Int8FeaturesKHR {
5521 VkStructureType sType;
5522 void* pNext;
5523 VkBool32 shaderFloat16;
5524 VkBool32 shaderInt8;
5525 } VkPhysicalDeviceFloat16Int8FeaturesKHR;
5526
5527
5528
5529 #define VK_KHR_16bit_storage 1
5530 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
5531 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
5532 typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
5533
5534
5535
5536 #define VK_KHR_incremental_present 1
5537 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
5538 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
5539 typedef struct VkRectLayerKHR {
5540 VkOffset2D offset;
5541 VkExtent2D extent;
5542 uint32_t layer;
5543 } VkRectLayerKHR;
5544
5545 typedef struct VkPresentRegionKHR {
5546 uint32_t rectangleCount;
5547 const VkRectLayerKHR* pRectangles;
5548 } VkPresentRegionKHR;
5549
5550 typedef struct VkPresentRegionsKHR {
5551 VkStructureType sType;
5552 const void* pNext;
5553 uint32_t swapchainCount;
5554 const VkPresentRegionKHR* pRegions;
5555 } VkPresentRegionsKHR;
5556
5557
5558
5559 #define VK_KHR_descriptor_update_template 1
5560 typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
5561
5562 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
5563 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
5564 typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
5565
5566 typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
5567
5568 typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
5569
5570 typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
5571
5572 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
5573 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
5574 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
5575
5576 #ifndef VK_NO_PROTOTYPES
5577 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
5578 VkDevice device,
5579 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
5580 const VkAllocationCallbacks* pAllocator,
5581 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
5582
5583 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
5584 VkDevice device,
5585 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
5586 const VkAllocationCallbacks* pAllocator);
5587
5588 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
5589 VkDevice device,
5590 VkDescriptorSet descriptorSet,
5591 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
5592 const void* pData);
5593 #endif
5594
5595
5596 #define VK_KHR_create_renderpass2 1
5597 #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
5598 #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
5599 typedef struct VkAttachmentDescription2KHR {
5600 VkStructureType sType;
5601 const void* pNext;
5602 VkAttachmentDescriptionFlags flags;
5603 VkFormat format;
5604 VkSampleCountFlagBits samples;
5605 VkAttachmentLoadOp loadOp;
5606 VkAttachmentStoreOp storeOp;
5607 VkAttachmentLoadOp stencilLoadOp;
5608 VkAttachmentStoreOp stencilStoreOp;
5609 VkImageLayout initialLayout;
5610 VkImageLayout finalLayout;
5611 } VkAttachmentDescription2KHR;
5612
5613 typedef struct VkAttachmentReference2KHR {
5614 VkStructureType sType;
5615 const void* pNext;
5616 uint32_t attachment;
5617 VkImageLayout layout;
5618 VkImageAspectFlags aspectMask;
5619 } VkAttachmentReference2KHR;
5620
5621 typedef struct VkSubpassDescription2KHR {
5622 VkStructureType sType;
5623 const void* pNext;
5624 VkSubpassDescriptionFlags flags;
5625 VkPipelineBindPoint pipelineBindPoint;
5626 uint32_t viewMask;
5627 uint32_t inputAttachmentCount;
5628 const VkAttachmentReference2KHR* pInputAttachments;
5629 uint32_t colorAttachmentCount;
5630 const VkAttachmentReference2KHR* pColorAttachments;
5631 const VkAttachmentReference2KHR* pResolveAttachments;
5632 const VkAttachmentReference2KHR* pDepthStencilAttachment;
5633 uint32_t preserveAttachmentCount;
5634 const uint32_t* pPreserveAttachments;
5635 } VkSubpassDescription2KHR;
5636
5637 typedef struct VkSubpassDependency2KHR {
5638 VkStructureType sType;
5639 const void* pNext;
5640 uint32_t srcSubpass;
5641 uint32_t dstSubpass;
5642 VkPipelineStageFlags srcStageMask;
5643 VkPipelineStageFlags dstStageMask;
5644 VkAccessFlags srcAccessMask;
5645 VkAccessFlags dstAccessMask;
5646 VkDependencyFlags dependencyFlags;
5647 int32_t viewOffset;
5648 } VkSubpassDependency2KHR;
5649
5650 typedef struct VkRenderPassCreateInfo2KHR {
5651 VkStructureType sType;
5652 const void* pNext;
5653 VkRenderPassCreateFlags flags;
5654 uint32_t attachmentCount;
5655 const VkAttachmentDescription2KHR* pAttachments;
5656 uint32_t subpassCount;
5657 const VkSubpassDescription2KHR* pSubpasses;
5658 uint32_t dependencyCount;
5659 const VkSubpassDependency2KHR* pDependencies;
5660 uint32_t correlatedViewMaskCount;
5661 const uint32_t* pCorrelatedViewMasks;
5662 } VkRenderPassCreateInfo2KHR;
5663
5664 typedef struct VkSubpassBeginInfoKHR {
5665 VkStructureType sType;
5666 const void* pNext;
5667 VkSubpassContents contents;
5668 } VkSubpassBeginInfoKHR;
5669
5670 typedef struct VkSubpassEndInfoKHR {
5671 VkStructureType sType;
5672 const void* pNext;
5673 } VkSubpassEndInfoKHR;
5674
5675 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2KHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
5676 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfoKHR* pSubpassBeginInfo);
5677 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfoKHR* pSubpassBeginInfo, const VkSubpassEndInfoKHR* pSubpassEndInfo);
5678 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfoKHR* pSubpassEndInfo);
5679
5680 #ifndef VK_NO_PROTOTYPES
5681 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
5682 VkDevice device,
5683 const VkRenderPassCreateInfo2KHR* pCreateInfo,
5684 const VkAllocationCallbacks* pAllocator,
5685 VkRenderPass* pRenderPass);
5686
5687 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
5688 VkCommandBuffer commandBuffer,
5689 const VkRenderPassBeginInfo* pRenderPassBegin,
5690 const VkSubpassBeginInfoKHR* pSubpassBeginInfo);
5691
5692 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
5693 VkCommandBuffer commandBuffer,
5694 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
5695 const VkSubpassEndInfoKHR* pSubpassEndInfo);
5696
5697 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
5698 VkCommandBuffer commandBuffer,
5699 const VkSubpassEndInfoKHR* pSubpassEndInfo);
5700 #endif
5701
5702
5703 #define VK_KHR_shared_presentable_image 1
5704 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
5705 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
5706 typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
5707 VkStructureType sType;
5708 void* pNext;
5709 VkImageUsageFlags sharedPresentSupportedUsageFlags;
5710 } VkSharedPresentSurfaceCapabilitiesKHR;
5711
5712 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
5713
5714 #ifndef VK_NO_PROTOTYPES
5715 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
5716 VkDevice device,
5717 VkSwapchainKHR swapchain);
5718 #endif
5719
5720
5721 #define VK_KHR_external_fence_capabilities 1
5722 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
5723 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
5724 typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
5725
5726 typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
5727
5728 typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
5729
5730 typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
5731
5732 typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
5733
5734 typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
5735
5736 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
5737
5738 #ifndef VK_NO_PROTOTYPES
5739 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
5740 VkPhysicalDevice physicalDevice,
5741 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
5742 VkExternalFenceProperties* pExternalFenceProperties);
5743 #endif
5744
5745
5746 #define VK_KHR_external_fence 1
5747 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
5748 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
5749 typedef VkFenceImportFlags VkFenceImportFlagsKHR;
5750
5751 typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
5752
5753 typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
5754
5755
5756
5757 #define VK_KHR_external_fence_fd 1
5758 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
5759 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
5760 typedef struct VkImportFenceFdInfoKHR {
5761 VkStructureType sType;
5762 const void* pNext;
5763 VkFence fence;
5764 VkFenceImportFlags flags;
5765 VkExternalFenceHandleTypeFlagBits handleType;
5766 int fd;
5767 } VkImportFenceFdInfoKHR;
5768
5769 typedef struct VkFenceGetFdInfoKHR {
5770 VkStructureType sType;
5771 const void* pNext;
5772 VkFence fence;
5773 VkExternalFenceHandleTypeFlagBits handleType;
5774 } VkFenceGetFdInfoKHR;
5775
5776 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
5777 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
5778
5779 #ifndef VK_NO_PROTOTYPES
5780 VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
5781 VkDevice device,
5782 const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
5783
5784 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
5785 VkDevice device,
5786 const VkFenceGetFdInfoKHR* pGetFdInfo,
5787 int* pFd);
5788 #endif
5789
5790
5791 #define VK_KHR_maintenance2 1
5792 #define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
5793 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
5794 typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
5795
5796 typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
5797
5798 typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
5799
5800 typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
5801
5802 typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
5803
5804 typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
5805
5806 typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
5807
5808
5809
5810 #define VK_KHR_get_surface_capabilities2 1
5811 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
5812 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
5813 typedef struct VkSurfaceCapabilities2KHR {
5814 VkStructureType sType;
5815 void* pNext;
5816 VkSurfaceCapabilitiesKHR surfaceCapabilities;
5817 } VkSurfaceCapabilities2KHR;
5818
5819 typedef struct VkSurfaceFormat2KHR {
5820 VkStructureType sType;
5821 void* pNext;
5822 VkSurfaceFormatKHR surfaceFormat;
5823 } VkSurfaceFormat2KHR;
5824
5825 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
5826 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
5827
5828 #ifndef VK_NO_PROTOTYPES
5829 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
5830 VkPhysicalDevice physicalDevice,
5831 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
5832 VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
5833
5834 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
5835 VkPhysicalDevice physicalDevice,
5836 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
5837 uint32_t* pSurfaceFormatCount,
5838 VkSurfaceFormat2KHR* pSurfaceFormats);
5839 #endif
5840
5841
5842 #define VK_KHR_variable_pointers 1
5843 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
5844 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
5845 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
5846
5847 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
5848
5849
5850
5851 #define VK_KHR_get_display_properties2 1
5852 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
5853 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
5854 typedef struct VkDisplayProperties2KHR {
5855 VkStructureType sType;
5856 void* pNext;
5857 VkDisplayPropertiesKHR displayProperties;
5858 } VkDisplayProperties2KHR;
5859
5860 typedef struct VkDisplayPlaneProperties2KHR {
5861 VkStructureType sType;
5862 void* pNext;
5863 VkDisplayPlanePropertiesKHR displayPlaneProperties;
5864 } VkDisplayPlaneProperties2KHR;
5865
5866 typedef struct VkDisplayModeProperties2KHR {
5867 VkStructureType sType;
5868 void* pNext;
5869 VkDisplayModePropertiesKHR displayModeProperties;
5870 } VkDisplayModeProperties2KHR;
5871
5872 typedef struct VkDisplayPlaneInfo2KHR {
5873 VkStructureType sType;
5874 const void* pNext;
5875 VkDisplayModeKHR mode;
5876 uint32_t planeIndex;
5877 } VkDisplayPlaneInfo2KHR;
5878
5879 typedef struct VkDisplayPlaneCapabilities2KHR {
5880 VkStructureType sType;
5881 void* pNext;
5882 VkDisplayPlaneCapabilitiesKHR capabilities;
5883 } VkDisplayPlaneCapabilities2KHR;
5884
5885 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
5886 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
5887 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
5888 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
5889
5890 #ifndef VK_NO_PROTOTYPES
5891 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
5892 VkPhysicalDevice physicalDevice,
5893 uint32_t* pPropertyCount,
5894 VkDisplayProperties2KHR* pProperties);
5895
5896 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
5897 VkPhysicalDevice physicalDevice,
5898 uint32_t* pPropertyCount,
5899 VkDisplayPlaneProperties2KHR* pProperties);
5900
5901 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
5902 VkPhysicalDevice physicalDevice,
5903 VkDisplayKHR display,
5904 uint32_t* pPropertyCount,
5905 VkDisplayModeProperties2KHR* pProperties);
5906
5907 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
5908 VkPhysicalDevice physicalDevice,
5909 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
5910 VkDisplayPlaneCapabilities2KHR* pCapabilities);
5911 #endif
5912
5913
5914 #define VK_KHR_dedicated_allocation 1
5915 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
5916 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
5917 typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
5918
5919 typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
5920
5921
5922
5923 #define VK_KHR_storage_buffer_storage_class 1
5924 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
5925 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
5926
5927
5928 #define VK_KHR_relaxed_block_layout 1
5929 #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
5930 #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
5931
5932
5933 #define VK_KHR_get_memory_requirements2 1
5934 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
5935 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
5936 typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
5937
5938 typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
5939
5940 typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
5941
5942 typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
5943
5944 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5945 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5946 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
5947
5948 #ifndef VK_NO_PROTOTYPES
5949 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
5950 VkDevice device,
5951 const VkImageMemoryRequirementsInfo2* pInfo,
5952 VkMemoryRequirements2* pMemoryRequirements);
5953
5954 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
5955 VkDevice device,
5956 const VkBufferMemoryRequirementsInfo2* pInfo,
5957 VkMemoryRequirements2* pMemoryRequirements);
5958
5959 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
5960 VkDevice device,
5961 const VkImageSparseMemoryRequirementsInfo2* pInfo,
5962 uint32_t* pSparseMemoryRequirementCount,
5963 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
5964 #endif
5965
5966
5967 #define VK_KHR_image_format_list 1
5968 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
5969 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
5970 typedef struct VkImageFormatListCreateInfoKHR {
5971 VkStructureType sType;
5972 const void* pNext;
5973 uint32_t viewFormatCount;
5974 const VkFormat* pViewFormats;
5975 } VkImageFormatListCreateInfoKHR;
5976
5977
5978
5979 #define VK_KHR_sampler_ycbcr_conversion 1
5980 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
5981
5982 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1
5983 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
5984 typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
5985
5986 typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
5987
5988 typedef VkChromaLocation VkChromaLocationKHR;
5989
5990 typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
5991
5992 typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
5993
5994 typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
5995
5996 typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
5997
5998 typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
5999
6000 typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
6001
6002 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
6003 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
6004
6005 #ifndef VK_NO_PROTOTYPES
6006 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
6007 VkDevice device,
6008 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
6009 const VkAllocationCallbacks* pAllocator,
6010 VkSamplerYcbcrConversion* pYcbcrConversion);
6011
6012 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
6013 VkDevice device,
6014 VkSamplerYcbcrConversion ycbcrConversion,
6015 const VkAllocationCallbacks* pAllocator);
6016 #endif
6017
6018
6019 #define VK_KHR_bind_memory2 1
6020 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
6021 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
6022 typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
6023
6024 typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
6025
6026 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
6027 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
6028
6029 #ifndef VK_NO_PROTOTYPES
6030 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
6031 VkDevice device,
6032 uint32_t bindInfoCount,
6033 const VkBindBufferMemoryInfo* pBindInfos);
6034
6035 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
6036 VkDevice device,
6037 uint32_t bindInfoCount,
6038 const VkBindImageMemoryInfo* pBindInfos);
6039 #endif
6040
6041
6042 #define VK_KHR_maintenance3 1
6043 #define VK_KHR_MAINTENANCE3_SPEC_VERSION 1
6044 #define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
6045 typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
6046
6047 typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
6048
6049 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
6050
6051 #ifndef VK_NO_PROTOTYPES
6052 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
6053 VkDevice device,
6054 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
6055 VkDescriptorSetLayoutSupport* pSupport);
6056 #endif
6057
6058
6059 #define VK_KHR_draw_indirect_count 1
6060 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
6061 #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
6062 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6063 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6064
6065 #ifndef VK_NO_PROTOTYPES
6066 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
6067 VkCommandBuffer commandBuffer,
6068 VkBuffer buffer,
6069 VkDeviceSize offset,
6070 VkBuffer countBuffer,
6071 VkDeviceSize countBufferOffset,
6072 uint32_t maxDrawCount,
6073 uint32_t stride);
6074
6075 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
6076 VkCommandBuffer commandBuffer,
6077 VkBuffer buffer,
6078 VkDeviceSize offset,
6079 VkBuffer countBuffer,
6080 VkDeviceSize countBufferOffset,
6081 uint32_t maxDrawCount,
6082 uint32_t stride);
6083 #endif
6084
6085
6086 #define VK_KHR_8bit_storage 1
6087 #define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
6088 #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
6089 typedef struct VkPhysicalDevice8BitStorageFeaturesKHR {
6090 VkStructureType sType;
6091 void* pNext;
6092 VkBool32 storageBuffer8BitAccess;
6093 VkBool32 uniformAndStorageBuffer8BitAccess;
6094 VkBool32 storagePushConstant8;
6095 } VkPhysicalDevice8BitStorageFeaturesKHR;
6096
6097
6098
6099 #define VK_KHR_shader_atomic_int64 1
6100 #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
6101 #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
6102 typedef struct VkPhysicalDeviceShaderAtomicInt64FeaturesKHR {
6103 VkStructureType sType;
6104 void* pNext;
6105 VkBool32 shaderBufferInt64Atomics;
6106 VkBool32 shaderSharedInt64Atomics;
6107 } VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
6108
6109
6110
6111 #define VK_KHR_driver_properties 1
6112 #define VK_MAX_DRIVER_NAME_SIZE_KHR 256
6113 #define VK_MAX_DRIVER_INFO_SIZE_KHR 256
6114 #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
6115 #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
6116
6117 typedef enum VkDriverIdKHR {
6118 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1,
6119 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2,
6120 VK_DRIVER_ID_MESA_RADV_KHR = 3,
6121 VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = 4,
6122 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = 5,
6123 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = 6,
6124 VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7,
6125 VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8,
6126 VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9,
6127 VK_DRIVER_ID_GOOGLE_PASTEL_KHR = 10,
6128 VK_DRIVER_ID_GGP_PROPRIETARY_KHR = 11,
6129 VK_DRIVER_ID_BEGIN_RANGE_KHR = VK_DRIVER_ID_AMD_PROPRIETARY_KHR,
6130 VK_DRIVER_ID_END_RANGE_KHR = VK_DRIVER_ID_GGP_PROPRIETARY_KHR,
6131 VK_DRIVER_ID_RANGE_SIZE_KHR = (VK_DRIVER_ID_GGP_PROPRIETARY_KHR - VK_DRIVER_ID_AMD_PROPRIETARY_KHR + 1),
6132 VK_DRIVER_ID_MAX_ENUM_KHR = 0x7FFFFFFF
6133 } VkDriverIdKHR;
6134 typedef struct VkConformanceVersionKHR {
6135 uint8_t major;
6136 uint8_t minor;
6137 uint8_t subminor;
6138 uint8_t patch;
6139 } VkConformanceVersionKHR;
6140
6141 typedef struct VkPhysicalDeviceDriverPropertiesKHR {
6142 VkStructureType sType;
6143 void* pNext;
6144 VkDriverIdKHR driverID;
6145 char driverName[VK_MAX_DRIVER_NAME_SIZE_KHR];
6146 char driverInfo[VK_MAX_DRIVER_INFO_SIZE_KHR];
6147 VkConformanceVersionKHR conformanceVersion;
6148 } VkPhysicalDeviceDriverPropertiesKHR;
6149
6150
6151
6152 #define VK_KHR_shader_float_controls 1
6153 #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 1
6154 #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
6155 typedef struct VkPhysicalDeviceFloatControlsPropertiesKHR {
6156 VkStructureType sType;
6157 void* pNext;
6158 VkBool32 separateDenormSettings;
6159 VkBool32 separateRoundingModeSettings;
6160 VkBool32 shaderSignedZeroInfNanPreserveFloat16;
6161 VkBool32 shaderSignedZeroInfNanPreserveFloat32;
6162 VkBool32 shaderSignedZeroInfNanPreserveFloat64;
6163 VkBool32 shaderDenormPreserveFloat16;
6164 VkBool32 shaderDenormPreserveFloat32;
6165 VkBool32 shaderDenormPreserveFloat64;
6166 VkBool32 shaderDenormFlushToZeroFloat16;
6167 VkBool32 shaderDenormFlushToZeroFloat32;
6168 VkBool32 shaderDenormFlushToZeroFloat64;
6169 VkBool32 shaderRoundingModeRTEFloat16;
6170 VkBool32 shaderRoundingModeRTEFloat32;
6171 VkBool32 shaderRoundingModeRTEFloat64;
6172 VkBool32 shaderRoundingModeRTZFloat16;
6173 VkBool32 shaderRoundingModeRTZFloat32;
6174 VkBool32 shaderRoundingModeRTZFloat64;
6175 } VkPhysicalDeviceFloatControlsPropertiesKHR;
6176
6177
6178
6179 #define VK_KHR_depth_stencil_resolve 1
6180 #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
6181 #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
6182
6183 typedef enum VkResolveModeFlagBitsKHR {
6184 VK_RESOLVE_MODE_NONE_KHR = 0,
6185 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = 0x00000001,
6186 VK_RESOLVE_MODE_AVERAGE_BIT_KHR = 0x00000002,
6187 VK_RESOLVE_MODE_MIN_BIT_KHR = 0x00000004,
6188 VK_RESOLVE_MODE_MAX_BIT_KHR = 0x00000008,
6189 VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
6190 } VkResolveModeFlagBitsKHR;
6191 typedef VkFlags VkResolveModeFlagsKHR;
6192 typedef struct VkSubpassDescriptionDepthStencilResolveKHR {
6193 VkStructureType sType;
6194 const void* pNext;
6195 VkResolveModeFlagBitsKHR depthResolveMode;
6196 VkResolveModeFlagBitsKHR stencilResolveMode;
6197 const VkAttachmentReference2KHR* pDepthStencilResolveAttachment;
6198 } VkSubpassDescriptionDepthStencilResolveKHR;
6199
6200 typedef struct VkPhysicalDeviceDepthStencilResolvePropertiesKHR {
6201 VkStructureType sType;
6202 void* pNext;
6203 VkResolveModeFlagsKHR supportedDepthResolveModes;
6204 VkResolveModeFlagsKHR supportedStencilResolveModes;
6205 VkBool32 independentResolveNone;
6206 VkBool32 independentResolve;
6207 } VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
6208
6209
6210
6211 #define VK_KHR_swapchain_mutable_format 1
6212 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
6213 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
6214
6215
6216 #define VK_KHR_vulkan_memory_model 1
6217 #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
6218 #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
6219 typedef struct VkPhysicalDeviceVulkanMemoryModelFeaturesKHR {
6220 VkStructureType sType;
6221 void* pNext;
6222 VkBool32 vulkanMemoryModel;
6223 VkBool32 vulkanMemoryModelDeviceScope;
6224 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
6225 } VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
6226
6227
6228
6229 #define VK_KHR_surface_protected_capabilities 1
6230 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
6231 #define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
6232 typedef struct VkSurfaceProtectedCapabilitiesKHR {
6233 VkStructureType sType;
6234 const void* pNext;
6235 VkBool32 supportsProtected;
6236 } VkSurfaceProtectedCapabilitiesKHR;
6237
6238
6239
6240 #define VK_EXT_debug_report 1
6241 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
6242 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9
6243 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
6244
6245 typedef enum VkDebugReportObjectTypeEXT {
6246 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
6247 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
6248 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
6249 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
6250 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
6251 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
6252 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
6253 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
6254 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
6255 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
6256 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
6257 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
6258 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
6259 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
6260 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
6261 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
6262 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
6263 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
6264 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
6265 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
6266 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
6267 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
6268 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
6269 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
6270 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
6271 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
6272 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
6273 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
6274 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
6275 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
6276 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
6277 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
6278 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
6279 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
6280 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
6281 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
6282 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
6283 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
6284 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
6285 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
6286 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
6287 VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,
6288 VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
6289 VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1),
6290 VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
6291 } VkDebugReportObjectTypeEXT;
6292
6293 typedef enum VkDebugReportFlagBitsEXT {
6294 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
6295 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
6296 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
6297 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
6298 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
6299 VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
6300 } VkDebugReportFlagBitsEXT;
6301 typedef VkFlags VkDebugReportFlagsEXT;
6302 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
6303 VkDebugReportFlagsEXT flags,
6304 VkDebugReportObjectTypeEXT objectType,
6305 uint64_t object,
6306 size_t location,
6307 int32_t messageCode,
6308 const char* pLayerPrefix,
6309 const char* pMessage,
6310 void* pUserData);
6311
6312 typedef struct VkDebugReportCallbackCreateInfoEXT {
6313 VkStructureType sType;
6314 const void* pNext;
6315 VkDebugReportFlagsEXT flags;
6316 PFN_vkDebugReportCallbackEXT pfnCallback;
6317 void* pUserData;
6318 } VkDebugReportCallbackCreateInfoEXT;
6319
6320 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
6321 typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
6322 typedef 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);
6323
6324 #ifndef VK_NO_PROTOTYPES
6325 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
6326 VkInstance instance,
6327 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
6328 const VkAllocationCallbacks* pAllocator,
6329 VkDebugReportCallbackEXT* pCallback);
6330
6331 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
6332 VkInstance instance,
6333 VkDebugReportCallbackEXT callback,
6334 const VkAllocationCallbacks* pAllocator);
6335
6336 VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
6337 VkInstance instance,
6338 VkDebugReportFlagsEXT flags,
6339 VkDebugReportObjectTypeEXT objectType,
6340 uint64_t object,
6341 size_t location,
6342 int32_t messageCode,
6343 const char* pLayerPrefix,
6344 const char* pMessage);
6345 #endif
6346
6347
6348 #define VK_NV_glsl_shader 1
6349 #define VK_NV_GLSL_SHADER_SPEC_VERSION 1
6350 #define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader"
6351
6352
6353 #define VK_EXT_depth_range_unrestricted 1
6354 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
6355 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
6356
6357
6358 #define VK_IMG_filter_cubic 1
6359 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
6360 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
6361
6362
6363 #define VK_AMD_rasterization_order 1
6364 #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
6365 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
6366
6367 typedef enum VkRasterizationOrderAMD {
6368 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
6369 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
6370 VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD,
6371 VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD,
6372 VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1),
6373 VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
6374 } VkRasterizationOrderAMD;
6375 typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
6376 VkStructureType sType;
6377 const void* pNext;
6378 VkRasterizationOrderAMD rasterizationOrder;
6379 } VkPipelineRasterizationStateRasterizationOrderAMD;
6380
6381
6382
6383 #define VK_AMD_shader_trinary_minmax 1
6384 #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
6385 #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
6386
6387
6388 #define VK_AMD_shader_explicit_vertex_parameter 1
6389 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
6390 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
6391
6392
6393 #define VK_EXT_debug_marker 1
6394 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
6395 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
6396 typedef struct VkDebugMarkerObjectNameInfoEXT {
6397 VkStructureType sType;
6398 const void* pNext;
6399 VkDebugReportObjectTypeEXT objectType;
6400 uint64_t object;
6401 const char* pObjectName;
6402 } VkDebugMarkerObjectNameInfoEXT;
6403
6404 typedef struct VkDebugMarkerObjectTagInfoEXT {
6405 VkStructureType sType;
6406 const void* pNext;
6407 VkDebugReportObjectTypeEXT objectType;
6408 uint64_t object;
6409 uint64_t tagName;
6410 size_t tagSize;
6411 const void* pTag;
6412 } VkDebugMarkerObjectTagInfoEXT;
6413
6414 typedef struct VkDebugMarkerMarkerInfoEXT {
6415 VkStructureType sType;
6416 const void* pNext;
6417 const char* pMarkerName;
6418 float color[4];
6419 } VkDebugMarkerMarkerInfoEXT;
6420
6421 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
6422 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
6423 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
6424 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
6425 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
6426
6427 #ifndef VK_NO_PROTOTYPES
6428 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
6429 VkDevice device,
6430 const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
6431
6432 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
6433 VkDevice device,
6434 const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
6435
6436 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
6437 VkCommandBuffer commandBuffer,
6438 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
6439
6440 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
6441 VkCommandBuffer commandBuffer);
6442
6443 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
6444 VkCommandBuffer commandBuffer,
6445 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
6446 #endif
6447
6448
6449 #define VK_AMD_gcn_shader 1
6450 #define VK_AMD_GCN_SHADER_SPEC_VERSION 1
6451 #define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
6452
6453
6454 #define VK_NV_dedicated_allocation 1
6455 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
6456 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
6457 typedef struct VkDedicatedAllocationImageCreateInfoNV {
6458 VkStructureType sType;
6459 const void* pNext;
6460 VkBool32 dedicatedAllocation;
6461 } VkDedicatedAllocationImageCreateInfoNV;
6462
6463 typedef struct VkDedicatedAllocationBufferCreateInfoNV {
6464 VkStructureType sType;
6465 const void* pNext;
6466 VkBool32 dedicatedAllocation;
6467 } VkDedicatedAllocationBufferCreateInfoNV;
6468
6469 typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
6470 VkStructureType sType;
6471 const void* pNext;
6472 VkImage image;
6473 VkBuffer buffer;
6474 } VkDedicatedAllocationMemoryAllocateInfoNV;
6475
6476
6477
6478 #define VK_EXT_transform_feedback 1
6479 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
6480 #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
6481 typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
6482 typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
6483 VkStructureType sType;
6484 void* pNext;
6485 VkBool32 transformFeedback;
6486 VkBool32 geometryStreams;
6487 } VkPhysicalDeviceTransformFeedbackFeaturesEXT;
6488
6489 typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
6490 VkStructureType sType;
6491 void* pNext;
6492 uint32_t maxTransformFeedbackStreams;
6493 uint32_t maxTransformFeedbackBuffers;
6494 VkDeviceSize maxTransformFeedbackBufferSize;
6495 uint32_t maxTransformFeedbackStreamDataSize;
6496 uint32_t maxTransformFeedbackBufferDataSize;
6497 uint32_t maxTransformFeedbackBufferDataStride;
6498 VkBool32 transformFeedbackQueries;
6499 VkBool32 transformFeedbackStreamsLinesTriangles;
6500 VkBool32 transformFeedbackRasterizationStreamSelect;
6501 VkBool32 transformFeedbackDraw;
6502 } VkPhysicalDeviceTransformFeedbackPropertiesEXT;
6503
6504 typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
6505 VkStructureType sType;
6506 const void* pNext;
6507 VkPipelineRasterizationStateStreamCreateFlagsEXT flags;
6508 uint32_t rasterizationStream;
6509 } VkPipelineRasterizationStateStreamCreateInfoEXT;
6510
6511 typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
6512 typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
6513 typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
6514 typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
6515 typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
6516 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
6517
6518 #ifndef VK_NO_PROTOTYPES
6519 VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
6520 VkCommandBuffer commandBuffer,
6521 uint32_t firstBinding,
6522 uint32_t bindingCount,
6523 const VkBuffer* pBuffers,
6524 const VkDeviceSize* pOffsets,
6525 const VkDeviceSize* pSizes);
6526
6527 VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
6528 VkCommandBuffer commandBuffer,
6529 uint32_t firstCounterBuffer,
6530 uint32_t counterBufferCount,
6531 const VkBuffer* pCounterBuffers,
6532 const VkDeviceSize* pCounterBufferOffsets);
6533
6534 VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
6535 VkCommandBuffer commandBuffer,
6536 uint32_t firstCounterBuffer,
6537 uint32_t counterBufferCount,
6538 const VkBuffer* pCounterBuffers,
6539 const VkDeviceSize* pCounterBufferOffsets);
6540
6541 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
6542 VkCommandBuffer commandBuffer,
6543 VkQueryPool queryPool,
6544 uint32_t query,
6545 VkQueryControlFlags flags,
6546 uint32_t index);
6547
6548 VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
6549 VkCommandBuffer commandBuffer,
6550 VkQueryPool queryPool,
6551 uint32_t query,
6552 uint32_t index);
6553
6554 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
6555 VkCommandBuffer commandBuffer,
6556 uint32_t instanceCount,
6557 uint32_t firstInstance,
6558 VkBuffer counterBuffer,
6559 VkDeviceSize counterBufferOffset,
6560 uint32_t counterOffset,
6561 uint32_t vertexStride);
6562 #endif
6563
6564
6565 #define VK_NVX_image_view_handle 1
6566 #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 1
6567 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
6568 typedef struct VkImageViewHandleInfoNVX {
6569 VkStructureType sType;
6570 const void* pNext;
6571 VkImageView imageView;
6572 VkDescriptorType descriptorType;
6573 VkSampler sampler;
6574 } VkImageViewHandleInfoNVX;
6575
6576 typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
6577
6578 #ifndef VK_NO_PROTOTYPES
6579 VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
6580 VkDevice device,
6581 const VkImageViewHandleInfoNVX* pInfo);
6582 #endif
6583
6584
6585 #define VK_AMD_draw_indirect_count 1
6586 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
6587 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
6588 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6589 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6590
6591 #ifndef VK_NO_PROTOTYPES
6592 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
6593 VkCommandBuffer commandBuffer,
6594 VkBuffer buffer,
6595 VkDeviceSize offset,
6596 VkBuffer countBuffer,
6597 VkDeviceSize countBufferOffset,
6598 uint32_t maxDrawCount,
6599 uint32_t stride);
6600
6601 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
6602 VkCommandBuffer commandBuffer,
6603 VkBuffer buffer,
6604 VkDeviceSize offset,
6605 VkBuffer countBuffer,
6606 VkDeviceSize countBufferOffset,
6607 uint32_t maxDrawCount,
6608 uint32_t stride);
6609 #endif
6610
6611
6612 #define VK_AMD_negative_viewport_height 1
6613 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
6614 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
6615
6616
6617 #define VK_AMD_gpu_shader_half_float 1
6618 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1
6619 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
6620
6621
6622 #define VK_AMD_shader_ballot 1
6623 #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
6624 #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
6625
6626
6627 #define VK_AMD_texture_gather_bias_lod 1
6628 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
6629 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
6630 typedef struct VkTextureLODGatherFormatPropertiesAMD {
6631 VkStructureType sType;
6632 void* pNext;
6633 VkBool32 supportsTextureGatherLODBiasAMD;
6634 } VkTextureLODGatherFormatPropertiesAMD;
6635
6636
6637
6638 #define VK_AMD_shader_info 1
6639 #define VK_AMD_SHADER_INFO_SPEC_VERSION 1
6640 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
6641
6642 typedef enum VkShaderInfoTypeAMD {
6643 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
6644 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
6645 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
6646 VK_SHADER_INFO_TYPE_BEGIN_RANGE_AMD = VK_SHADER_INFO_TYPE_STATISTICS_AMD,
6647 VK_SHADER_INFO_TYPE_END_RANGE_AMD = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD,
6648 VK_SHADER_INFO_TYPE_RANGE_SIZE_AMD = (VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - VK_SHADER_INFO_TYPE_STATISTICS_AMD + 1),
6649 VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
6650 } VkShaderInfoTypeAMD;
6651 typedef struct VkShaderResourceUsageAMD {
6652 uint32_t numUsedVgprs;
6653 uint32_t numUsedSgprs;
6654 uint32_t ldsSizePerLocalWorkGroup;
6655 size_t ldsUsageSizeInBytes;
6656 size_t scratchMemUsageInBytes;
6657 } VkShaderResourceUsageAMD;
6658
6659 typedef struct VkShaderStatisticsInfoAMD {
6660 VkShaderStageFlags shaderStageMask;
6661 VkShaderResourceUsageAMD resourceUsage;
6662 uint32_t numPhysicalVgprs;
6663 uint32_t numPhysicalSgprs;
6664 uint32_t numAvailableVgprs;
6665 uint32_t numAvailableSgprs;
6666 uint32_t computeWorkGroupSize[3];
6667 } VkShaderStatisticsInfoAMD;
6668
6669 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
6670
6671 #ifndef VK_NO_PROTOTYPES
6672 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
6673 VkDevice device,
6674 VkPipeline pipeline,
6675 VkShaderStageFlagBits shaderStage,
6676 VkShaderInfoTypeAMD infoType,
6677 size_t* pInfoSize,
6678 void* pInfo);
6679 #endif
6680
6681
6682 #define VK_AMD_shader_image_load_store_lod 1
6683 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
6684 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
6685
6686
6687 #define VK_NV_corner_sampled_image 1
6688 #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
6689 #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
6690 typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
6691 VkStructureType sType;
6692 void* pNext;
6693 VkBool32 cornerSampledImage;
6694 } VkPhysicalDeviceCornerSampledImageFeaturesNV;
6695
6696
6697
6698 #define VK_IMG_format_pvrtc 1
6699 #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
6700 #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
6701
6702
6703 #define VK_NV_external_memory_capabilities 1
6704 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
6705 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
6706
6707 typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
6708 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
6709 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
6710 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
6711 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
6712 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
6713 } VkExternalMemoryHandleTypeFlagBitsNV;
6714 typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
6715
6716 typedef enum VkExternalMemoryFeatureFlagBitsNV {
6717 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
6718 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
6719 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
6720 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
6721 } VkExternalMemoryFeatureFlagBitsNV;
6722 typedef VkFlags VkExternalMemoryFeatureFlagsNV;
6723 typedef struct VkExternalImageFormatPropertiesNV {
6724 VkImageFormatProperties imageFormatProperties;
6725 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures;
6726 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
6727 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
6728 } VkExternalImageFormatPropertiesNV;
6729
6730 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
6731
6732 #ifndef VK_NO_PROTOTYPES
6733 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
6734 VkPhysicalDevice physicalDevice,
6735 VkFormat format,
6736 VkImageType type,
6737 VkImageTiling tiling,
6738 VkImageUsageFlags usage,
6739 VkImageCreateFlags flags,
6740 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
6741 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
6742 #endif
6743
6744
6745 #define VK_NV_external_memory 1
6746 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
6747 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
6748 typedef struct VkExternalMemoryImageCreateInfoNV {
6749 VkStructureType sType;
6750 const void* pNext;
6751 VkExternalMemoryHandleTypeFlagsNV handleTypes;
6752 } VkExternalMemoryImageCreateInfoNV;
6753
6754 typedef struct VkExportMemoryAllocateInfoNV {
6755 VkStructureType sType;
6756 const void* pNext;
6757 VkExternalMemoryHandleTypeFlagsNV handleTypes;
6758 } VkExportMemoryAllocateInfoNV;
6759
6760
6761
6762 #define VK_EXT_validation_flags 1
6763 #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1
6764 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
6765
6766 typedef enum VkValidationCheckEXT {
6767 VK_VALIDATION_CHECK_ALL_EXT = 0,
6768 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
6769 VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT,
6770 VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_SHADERS_EXT,
6771 VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_SHADERS_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1),
6772 VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
6773 } VkValidationCheckEXT;
6774 typedef struct VkValidationFlagsEXT {
6775 VkStructureType sType;
6776 const void* pNext;
6777 uint32_t disabledValidationCheckCount;
6778 const VkValidationCheckEXT* pDisabledValidationChecks;
6779 } VkValidationFlagsEXT;
6780
6781
6782
6783 #define VK_EXT_shader_subgroup_ballot 1
6784 #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
6785 #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
6786
6787
6788 #define VK_EXT_shader_subgroup_vote 1
6789 #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
6790 #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
6791
6792
6793 #define VK_EXT_astc_decode_mode 1
6794 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
6795 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
6796 typedef struct VkImageViewASTCDecodeModeEXT {
6797 VkStructureType sType;
6798 const void* pNext;
6799 VkFormat decodeMode;
6800 } VkImageViewASTCDecodeModeEXT;
6801
6802 typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
6803 VkStructureType sType;
6804 void* pNext;
6805 VkBool32 decodeModeSharedExponent;
6806 } VkPhysicalDeviceASTCDecodeFeaturesEXT;
6807
6808
6809
6810 #define VK_EXT_conditional_rendering 1
6811 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1
6812 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
6813
6814 typedef enum VkConditionalRenderingFlagBitsEXT {
6815 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
6816 VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
6817 } VkConditionalRenderingFlagBitsEXT;
6818 typedef VkFlags VkConditionalRenderingFlagsEXT;
6819 typedef struct VkConditionalRenderingBeginInfoEXT {
6820 VkStructureType sType;
6821 const void* pNext;
6822 VkBuffer buffer;
6823 VkDeviceSize offset;
6824 VkConditionalRenderingFlagsEXT flags;
6825 } VkConditionalRenderingBeginInfoEXT;
6826
6827 typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
6828 VkStructureType sType;
6829 void* pNext;
6830 VkBool32 conditionalRendering;
6831 VkBool32 inheritedConditionalRendering;
6832 } VkPhysicalDeviceConditionalRenderingFeaturesEXT;
6833
6834 typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
6835 VkStructureType sType;
6836 const void* pNext;
6837 VkBool32 conditionalRenderingEnable;
6838 } VkCommandBufferInheritanceConditionalRenderingInfoEXT;
6839
6840 typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
6841 typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
6842
6843 #ifndef VK_NO_PROTOTYPES
6844 VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
6845 VkCommandBuffer commandBuffer,
6846 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
6847
6848 VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
6849 VkCommandBuffer commandBuffer);
6850 #endif
6851
6852
6853 #define VK_NVX_device_generated_commands 1
6854 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX)
6855 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX)
6856 #define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
6857 #define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands"
6858
6859 typedef enum VkIndirectCommandsTokenTypeNVX {
6860 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
6861 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
6862 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
6863 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
6864 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
6865 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
6866 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
6867 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
6868 VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX,
6869 VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX,
6870 VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX + 1),
6871 VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
6872 } VkIndirectCommandsTokenTypeNVX;
6873
6874 typedef enum VkObjectEntryTypeNVX {
6875 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
6876 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
6877 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
6878 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
6879 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
6880 VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX,
6881 VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX,
6882 VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX + 1),
6883 VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF
6884 } VkObjectEntryTypeNVX;
6885
6886 typedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX {
6887 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
6888 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
6889 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
6890 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
6891 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
6892 } VkIndirectCommandsLayoutUsageFlagBitsNVX;
6893 typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX;
6894
6895 typedef enum VkObjectEntryUsageFlagBitsNVX {
6896 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
6897 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
6898 VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF
6899 } VkObjectEntryUsageFlagBitsNVX;
6900 typedef VkFlags VkObjectEntryUsageFlagsNVX;
6901 typedef struct VkDeviceGeneratedCommandsFeaturesNVX {
6902 VkStructureType sType;
6903 const void* pNext;
6904 VkBool32 computeBindingPointSupport;
6905 } VkDeviceGeneratedCommandsFeaturesNVX;
6906
6907 typedef struct VkDeviceGeneratedCommandsLimitsNVX {
6908 VkStructureType sType;
6909 const void* pNext;
6910 uint32_t maxIndirectCommandsLayoutTokenCount;
6911 uint32_t maxObjectEntryCounts;
6912 uint32_t minSequenceCountBufferOffsetAlignment;
6913 uint32_t minSequenceIndexBufferOffsetAlignment;
6914 uint32_t minCommandsTokenBufferOffsetAlignment;
6915 } VkDeviceGeneratedCommandsLimitsNVX;
6916
6917 typedef struct VkIndirectCommandsTokenNVX {
6918 VkIndirectCommandsTokenTypeNVX tokenType;
6919 VkBuffer buffer;
6920 VkDeviceSize offset;
6921 } VkIndirectCommandsTokenNVX;
6922
6923 typedef struct VkIndirectCommandsLayoutTokenNVX {
6924 VkIndirectCommandsTokenTypeNVX tokenType;
6925 uint32_t bindingUnit;
6926 uint32_t dynamicCount;
6927 uint32_t divisor;
6928 } VkIndirectCommandsLayoutTokenNVX;
6929
6930 typedef struct VkIndirectCommandsLayoutCreateInfoNVX {
6931 VkStructureType sType;
6932 const void* pNext;
6933 VkPipelineBindPoint pipelineBindPoint;
6934 VkIndirectCommandsLayoutUsageFlagsNVX flags;
6935 uint32_t tokenCount;
6936 const VkIndirectCommandsLayoutTokenNVX* pTokens;
6937 } VkIndirectCommandsLayoutCreateInfoNVX;
6938
6939 typedef struct VkCmdProcessCommandsInfoNVX {
6940 VkStructureType sType;
6941 const void* pNext;
6942 VkObjectTableNVX objectTable;
6943 VkIndirectCommandsLayoutNVX indirectCommandsLayout;
6944 uint32_t indirectCommandsTokenCount;
6945 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens;
6946 uint32_t maxSequencesCount;
6947 VkCommandBuffer targetCommandBuffer;
6948 VkBuffer sequencesCountBuffer;
6949 VkDeviceSize sequencesCountOffset;
6950 VkBuffer sequencesIndexBuffer;
6951 VkDeviceSize sequencesIndexOffset;
6952 } VkCmdProcessCommandsInfoNVX;
6953
6954 typedef struct VkCmdReserveSpaceForCommandsInfoNVX {
6955 VkStructureType sType;
6956 const void* pNext;
6957 VkObjectTableNVX objectTable;
6958 VkIndirectCommandsLayoutNVX indirectCommandsLayout;
6959 uint32_t maxSequencesCount;
6960 } VkCmdReserveSpaceForCommandsInfoNVX;
6961
6962 typedef struct VkObjectTableCreateInfoNVX {
6963 VkStructureType sType;
6964 const void* pNext;
6965 uint32_t objectCount;
6966 const VkObjectEntryTypeNVX* pObjectEntryTypes;
6967 const uint32_t* pObjectEntryCounts;
6968 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags;
6969 uint32_t maxUniformBuffersPerDescriptor;
6970 uint32_t maxStorageBuffersPerDescriptor;
6971 uint32_t maxStorageImagesPerDescriptor;
6972 uint32_t maxSampledImagesPerDescriptor;
6973 uint32_t maxPipelineLayouts;
6974 } VkObjectTableCreateInfoNVX;
6975
6976 typedef struct VkObjectTableEntryNVX {
6977 VkObjectEntryTypeNVX type;
6978 VkObjectEntryUsageFlagsNVX flags;
6979 } VkObjectTableEntryNVX;
6980
6981 typedef struct VkObjectTablePipelineEntryNVX {
6982 VkObjectEntryTypeNVX type;
6983 VkObjectEntryUsageFlagsNVX flags;
6984 VkPipeline pipeline;
6985 } VkObjectTablePipelineEntryNVX;
6986
6987 typedef struct VkObjectTableDescriptorSetEntryNVX {
6988 VkObjectEntryTypeNVX type;
6989 VkObjectEntryUsageFlagsNVX flags;
6990 VkPipelineLayout pipelineLayout;
6991 VkDescriptorSet descriptorSet;
6992 } VkObjectTableDescriptorSetEntryNVX;
6993
6994 typedef struct VkObjectTableVertexBufferEntryNVX {
6995 VkObjectEntryTypeNVX type;
6996 VkObjectEntryUsageFlagsNVX flags;
6997 VkBuffer buffer;
6998 } VkObjectTableVertexBufferEntryNVX;
6999
7000 typedef struct VkObjectTableIndexBufferEntryNVX {
7001 VkObjectEntryTypeNVX type;
7002 VkObjectEntryUsageFlagsNVX flags;
7003 VkBuffer buffer;
7004 VkIndexType indexType;
7005 } VkObjectTableIndexBufferEntryNVX;
7006
7007 typedef struct VkObjectTablePushConstantEntryNVX {
7008 VkObjectEntryTypeNVX type;
7009 VkObjectEntryUsageFlagsNVX flags;
7010 VkPipelineLayout pipelineLayout;
7011 VkShaderStageFlags stageFlags;
7012 } VkObjectTablePushConstantEntryNVX;
7013
7014 typedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
7015 typedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
7016 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
7017 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
7018 typedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable);
7019 typedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator);
7020 typedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices);
7021 typedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices);
7022 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits);
7023
7024 #ifndef VK_NO_PROTOTYPES
7025 VKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX(
7026 VkCommandBuffer commandBuffer,
7027 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo);
7028
7029 VKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX(
7030 VkCommandBuffer commandBuffer,
7031 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo);
7032
7033 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX(
7034 VkDevice device,
7035 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
7036 const VkAllocationCallbacks* pAllocator,
7037 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout);
7038
7039 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX(
7040 VkDevice device,
7041 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
7042 const VkAllocationCallbacks* pAllocator);
7043
7044 VKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX(
7045 VkDevice device,
7046 const VkObjectTableCreateInfoNVX* pCreateInfo,
7047 const VkAllocationCallbacks* pAllocator,
7048 VkObjectTableNVX* pObjectTable);
7049
7050 VKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX(
7051 VkDevice device,
7052 VkObjectTableNVX objectTable,
7053 const VkAllocationCallbacks* pAllocator);
7054
7055 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX(
7056 VkDevice device,
7057 VkObjectTableNVX objectTable,
7058 uint32_t objectCount,
7059 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
7060 const uint32_t* pObjectIndices);
7061
7062 VKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX(
7063 VkDevice device,
7064 VkObjectTableNVX objectTable,
7065 uint32_t objectCount,
7066 const VkObjectEntryTypeNVX* pObjectEntryTypes,
7067 const uint32_t* pObjectIndices);
7068
7069 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
7070 VkPhysicalDevice physicalDevice,
7071 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
7072 VkDeviceGeneratedCommandsLimitsNVX* pLimits);
7073 #endif
7074
7075
7076 #define VK_NV_clip_space_w_scaling 1
7077 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
7078 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
7079 typedef struct VkViewportWScalingNV {
7080 float xcoeff;
7081 float ycoeff;
7082 } VkViewportWScalingNV;
7083
7084 typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
7085 VkStructureType sType;
7086 const void* pNext;
7087 VkBool32 viewportWScalingEnable;
7088 uint32_t viewportCount;
7089 const VkViewportWScalingNV* pViewportWScalings;
7090 } VkPipelineViewportWScalingStateCreateInfoNV;
7091
7092 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
7093
7094 #ifndef VK_NO_PROTOTYPES
7095 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
7096 VkCommandBuffer commandBuffer,
7097 uint32_t firstViewport,
7098 uint32_t viewportCount,
7099 const VkViewportWScalingNV* pViewportWScalings);
7100 #endif
7101
7102
7103 #define VK_EXT_direct_mode_display 1
7104 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
7105 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
7106 typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
7107
7108 #ifndef VK_NO_PROTOTYPES
7109 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
7110 VkPhysicalDevice physicalDevice,
7111 VkDisplayKHR display);
7112 #endif
7113
7114
7115 #define VK_EXT_display_surface_counter 1
7116 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
7117 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
7118
7119 typedef enum VkSurfaceCounterFlagBitsEXT {
7120 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
7121 VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
7122 } VkSurfaceCounterFlagBitsEXT;
7123 typedef VkFlags VkSurfaceCounterFlagsEXT;
7124 typedef struct VkSurfaceCapabilities2EXT {
7125 VkStructureType sType;
7126 void* pNext;
7127 uint32_t minImageCount;
7128 uint32_t maxImageCount;
7129 VkExtent2D currentExtent;
7130 VkExtent2D minImageExtent;
7131 VkExtent2D maxImageExtent;
7132 uint32_t maxImageArrayLayers;
7133 VkSurfaceTransformFlagsKHR supportedTransforms;
7134 VkSurfaceTransformFlagBitsKHR currentTransform;
7135 VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
7136 VkImageUsageFlags supportedUsageFlags;
7137 VkSurfaceCounterFlagsEXT supportedSurfaceCounters;
7138 } VkSurfaceCapabilities2EXT;
7139
7140 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
7141
7142 #ifndef VK_NO_PROTOTYPES
7143 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
7144 VkPhysicalDevice physicalDevice,
7145 VkSurfaceKHR surface,
7146 VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
7147 #endif
7148
7149
7150 #define VK_EXT_display_control 1
7151 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
7152 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
7153
7154 typedef enum VkDisplayPowerStateEXT {
7155 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
7156 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
7157 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
7158 VK_DISPLAY_POWER_STATE_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT,
7159 VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT,
7160 VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1),
7161 VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
7162 } VkDisplayPowerStateEXT;
7163
7164 typedef enum VkDeviceEventTypeEXT {
7165 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
7166 VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
7167 VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT,
7168 VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1),
7169 VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
7170 } VkDeviceEventTypeEXT;
7171
7172 typedef enum VkDisplayEventTypeEXT {
7173 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
7174 VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
7175 VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT,
7176 VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1),
7177 VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
7178 } VkDisplayEventTypeEXT;
7179 typedef struct VkDisplayPowerInfoEXT {
7180 VkStructureType sType;
7181 const void* pNext;
7182 VkDisplayPowerStateEXT powerState;
7183 } VkDisplayPowerInfoEXT;
7184
7185 typedef struct VkDeviceEventInfoEXT {
7186 VkStructureType sType;
7187 const void* pNext;
7188 VkDeviceEventTypeEXT deviceEvent;
7189 } VkDeviceEventInfoEXT;
7190
7191 typedef struct VkDisplayEventInfoEXT {
7192 VkStructureType sType;
7193 const void* pNext;
7194 VkDisplayEventTypeEXT displayEvent;
7195 } VkDisplayEventInfoEXT;
7196
7197 typedef struct VkSwapchainCounterCreateInfoEXT {
7198 VkStructureType sType;
7199 const void* pNext;
7200 VkSurfaceCounterFlagsEXT surfaceCounters;
7201 } VkSwapchainCounterCreateInfoEXT;
7202
7203 typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
7204 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
7205 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
7206 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
7207
7208 #ifndef VK_NO_PROTOTYPES
7209 VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
7210 VkDevice device,
7211 VkDisplayKHR display,
7212 const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
7213
7214 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
7215 VkDevice device,
7216 const VkDeviceEventInfoEXT* pDeviceEventInfo,
7217 const VkAllocationCallbacks* pAllocator,
7218 VkFence* pFence);
7219
7220 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
7221 VkDevice device,
7222 VkDisplayKHR display,
7223 const VkDisplayEventInfoEXT* pDisplayEventInfo,
7224 const VkAllocationCallbacks* pAllocator,
7225 VkFence* pFence);
7226
7227 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
7228 VkDevice device,
7229 VkSwapchainKHR swapchain,
7230 VkSurfaceCounterFlagBitsEXT counter,
7231 uint64_t* pCounterValue);
7232 #endif
7233
7234
7235 #define VK_GOOGLE_display_timing 1
7236 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
7237 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
7238 typedef struct VkRefreshCycleDurationGOOGLE {
7239 uint64_t refreshDuration;
7240 } VkRefreshCycleDurationGOOGLE;
7241
7242 typedef struct VkPastPresentationTimingGOOGLE {
7243 uint32_t presentID;
7244 uint64_t desiredPresentTime;
7245 uint64_t actualPresentTime;
7246 uint64_t earliestPresentTime;
7247 uint64_t presentMargin;
7248 } VkPastPresentationTimingGOOGLE;
7249
7250 typedef struct VkPresentTimeGOOGLE {
7251 uint32_t presentID;
7252 uint64_t desiredPresentTime;
7253 } VkPresentTimeGOOGLE;
7254
7255 typedef struct VkPresentTimesInfoGOOGLE {
7256 VkStructureType sType;
7257 const void* pNext;
7258 uint32_t swapchainCount;
7259 const VkPresentTimeGOOGLE* pTimes;
7260 } VkPresentTimesInfoGOOGLE;
7261
7262 typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
7263 typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
7264
7265 #ifndef VK_NO_PROTOTYPES
7266 VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
7267 VkDevice device,
7268 VkSwapchainKHR swapchain,
7269 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
7270
7271 VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
7272 VkDevice device,
7273 VkSwapchainKHR swapchain,
7274 uint32_t* pPresentationTimingCount,
7275 VkPastPresentationTimingGOOGLE* pPresentationTimings);
7276 #endif
7277
7278
7279 #define VK_NV_sample_mask_override_coverage 1
7280 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
7281 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
7282
7283
7284 #define VK_NV_geometry_shader_passthrough 1
7285 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
7286 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
7287
7288
7289 #define VK_NV_viewport_array2 1
7290 #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
7291 #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
7292
7293
7294 #define VK_NVX_multiview_per_view_attributes 1
7295 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
7296 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
7297 typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
7298 VkStructureType sType;
7299 void* pNext;
7300 VkBool32 perViewPositionAllComponents;
7301 } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
7302
7303
7304
7305 #define VK_NV_viewport_swizzle 1
7306 #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
7307 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
7308
7309 typedef enum VkViewportCoordinateSwizzleNV {
7310 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
7311 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
7312 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
7313 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
7314 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
7315 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
7316 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
7317 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
7318 VK_VIEWPORT_COORDINATE_SWIZZLE_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,
7319 VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV,
7320 VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1),
7321 VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
7322 } VkViewportCoordinateSwizzleNV;
7323 typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
7324 typedef struct VkViewportSwizzleNV {
7325 VkViewportCoordinateSwizzleNV x;
7326 VkViewportCoordinateSwizzleNV y;
7327 VkViewportCoordinateSwizzleNV z;
7328 VkViewportCoordinateSwizzleNV w;
7329 } VkViewportSwizzleNV;
7330
7331 typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
7332 VkStructureType sType;
7333 const void* pNext;
7334 VkPipelineViewportSwizzleStateCreateFlagsNV flags;
7335 uint32_t viewportCount;
7336 const VkViewportSwizzleNV* pViewportSwizzles;
7337 } VkPipelineViewportSwizzleStateCreateInfoNV;
7338
7339
7340
7341 #define VK_EXT_discard_rectangles 1
7342 #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
7343 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
7344
7345 typedef enum VkDiscardRectangleModeEXT {
7346 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
7347 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
7348 VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,
7349 VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT,
7350 VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1),
7351 VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
7352 } VkDiscardRectangleModeEXT;
7353 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
7354 typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
7355 VkStructureType sType;
7356 void* pNext;
7357 uint32_t maxDiscardRectangles;
7358 } VkPhysicalDeviceDiscardRectanglePropertiesEXT;
7359
7360 typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
7361 VkStructureType sType;
7362 const void* pNext;
7363 VkPipelineDiscardRectangleStateCreateFlagsEXT flags;
7364 VkDiscardRectangleModeEXT discardRectangleMode;
7365 uint32_t discardRectangleCount;
7366 const VkRect2D* pDiscardRectangles;
7367 } VkPipelineDiscardRectangleStateCreateInfoEXT;
7368
7369 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
7370
7371 #ifndef VK_NO_PROTOTYPES
7372 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
7373 VkCommandBuffer commandBuffer,
7374 uint32_t firstDiscardRectangle,
7375 uint32_t discardRectangleCount,
7376 const VkRect2D* pDiscardRectangles);
7377 #endif
7378
7379
7380 #define VK_EXT_conservative_rasterization 1
7381 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
7382 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
7383
7384 typedef enum VkConservativeRasterizationModeEXT {
7385 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
7386 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
7387 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
7388 VK_CONSERVATIVE_RASTERIZATION_MODE_BEGIN_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,
7389 VK_CONSERVATIVE_RASTERIZATION_MODE_END_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT,
7390 VK_CONSERVATIVE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT + 1),
7391 VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
7392 } VkConservativeRasterizationModeEXT;
7393 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
7394 typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
7395 VkStructureType sType;
7396 void* pNext;
7397 float primitiveOverestimationSize;
7398 float maxExtraPrimitiveOverestimationSize;
7399 float extraPrimitiveOverestimationSizeGranularity;
7400 VkBool32 primitiveUnderestimation;
7401 VkBool32 conservativePointAndLineRasterization;
7402 VkBool32 degenerateTrianglesRasterized;
7403 VkBool32 degenerateLinesRasterized;
7404 VkBool32 fullyCoveredFragmentShaderInputVariable;
7405 VkBool32 conservativeRasterizationPostDepthCoverage;
7406 } VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
7407
7408 typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
7409 VkStructureType sType;
7410 const void* pNext;
7411 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags;
7412 VkConservativeRasterizationModeEXT conservativeRasterizationMode;
7413 float extraPrimitiveOverestimationSize;
7414 } VkPipelineRasterizationConservativeStateCreateInfoEXT;
7415
7416
7417
7418 #define VK_EXT_depth_clip_enable 1
7419 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
7420 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
7421 typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
7422 typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
7423 VkStructureType sType;
7424 void* pNext;
7425 VkBool32 depthClipEnable;
7426 } VkPhysicalDeviceDepthClipEnableFeaturesEXT;
7427
7428 typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
7429 VkStructureType sType;
7430 const void* pNext;
7431 VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags;
7432 VkBool32 depthClipEnable;
7433 } VkPipelineRasterizationDepthClipStateCreateInfoEXT;
7434
7435
7436
7437 #define VK_EXT_swapchain_colorspace 1
7438 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 3
7439 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
7440
7441
7442 #define VK_EXT_hdr_metadata 1
7443 #define VK_EXT_HDR_METADATA_SPEC_VERSION 1
7444 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
7445 typedef struct VkXYColorEXT {
7446 float x;
7447 float y;
7448 } VkXYColorEXT;
7449
7450 typedef struct VkHdrMetadataEXT {
7451 VkStructureType sType;
7452 const void* pNext;
7453 VkXYColorEXT displayPrimaryRed;
7454 VkXYColorEXT displayPrimaryGreen;
7455 VkXYColorEXT displayPrimaryBlue;
7456 VkXYColorEXT whitePoint;
7457 float maxLuminance;
7458 float minLuminance;
7459 float maxContentLightLevel;
7460 float maxFrameAverageLightLevel;
7461 } VkHdrMetadataEXT;
7462
7463 typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
7464
7465 #ifndef VK_NO_PROTOTYPES
7466 VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
7467 VkDevice device,
7468 uint32_t swapchainCount,
7469 const VkSwapchainKHR* pSwapchains,
7470 const VkHdrMetadataEXT* pMetadata);
7471 #endif
7472
7473
7474 #define VK_EXT_external_memory_dma_buf 1
7475 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
7476 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
7477
7478
7479 #define VK_EXT_queue_family_foreign 1
7480 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
7481 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
7482 #define VK_QUEUE_FAMILY_FOREIGN_EXT (~0U-2)
7483
7484
7485 #define VK_EXT_debug_utils 1
7486 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
7487 #define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1
7488 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
7489 typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
7490 typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
7491
7492 typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
7493 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
7494 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
7495 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
7496 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
7497 VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
7498 } VkDebugUtilsMessageSeverityFlagBitsEXT;
7499 typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
7500
7501 typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
7502 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
7503 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
7504 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
7505 VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
7506 } VkDebugUtilsMessageTypeFlagBitsEXT;
7507 typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
7508 typedef struct VkDebugUtilsObjectNameInfoEXT {
7509 VkStructureType sType;
7510 const void* pNext;
7511 VkObjectType objectType;
7512 uint64_t objectHandle;
7513 const char* pObjectName;
7514 } VkDebugUtilsObjectNameInfoEXT;
7515
7516 typedef struct VkDebugUtilsObjectTagInfoEXT {
7517 VkStructureType sType;
7518 const void* pNext;
7519 VkObjectType objectType;
7520 uint64_t objectHandle;
7521 uint64_t tagName;
7522 size_t tagSize;
7523 const void* pTag;
7524 } VkDebugUtilsObjectTagInfoEXT;
7525
7526 typedef struct VkDebugUtilsLabelEXT {
7527 VkStructureType sType;
7528 const void* pNext;
7529 const char* pLabelName;
7530 float color[4];
7531 } VkDebugUtilsLabelEXT;
7532
7533 typedef struct VkDebugUtilsMessengerCallbackDataEXT {
7534 VkStructureType sType;
7535 const void* pNext;
7536 VkDebugUtilsMessengerCallbackDataFlagsEXT flags;
7537 const char* pMessageIdName;
7538 int32_t messageIdNumber;
7539 const char* pMessage;
7540 uint32_t queueLabelCount;
7541 const VkDebugUtilsLabelEXT* pQueueLabels;
7542 uint32_t cmdBufLabelCount;
7543 const VkDebugUtilsLabelEXT* pCmdBufLabels;
7544 uint32_t objectCount;
7545 const VkDebugUtilsObjectNameInfoEXT* pObjects;
7546 } VkDebugUtilsMessengerCallbackDataEXT;
7547
7548 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
7549 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
7550 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
7551 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
7552 void* pUserData);
7553
7554 typedef struct VkDebugUtilsMessengerCreateInfoEXT {
7555 VkStructureType sType;
7556 const void* pNext;
7557 VkDebugUtilsMessengerCreateFlagsEXT flags;
7558 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity;
7559 VkDebugUtilsMessageTypeFlagsEXT messageType;
7560 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
7561 void* pUserData;
7562 } VkDebugUtilsMessengerCreateInfoEXT;
7563
7564 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
7565 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
7566 typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
7567 typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
7568 typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
7569 typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
7570 typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
7571 typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
7572 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
7573 typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
7574 typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
7575
7576 #ifndef VK_NO_PROTOTYPES
7577 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
7578 VkDevice device,
7579 const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
7580
7581 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
7582 VkDevice device,
7583 const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
7584
7585 VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
7586 VkQueue queue,
7587 const VkDebugUtilsLabelEXT* pLabelInfo);
7588
7589 VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
7590 VkQueue queue);
7591
7592 VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
7593 VkQueue queue,
7594 const VkDebugUtilsLabelEXT* pLabelInfo);
7595
7596 VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
7597 VkCommandBuffer commandBuffer,
7598 const VkDebugUtilsLabelEXT* pLabelInfo);
7599
7600 VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
7601 VkCommandBuffer commandBuffer);
7602
7603 VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
7604 VkCommandBuffer commandBuffer,
7605 const VkDebugUtilsLabelEXT* pLabelInfo);
7606
7607 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
7608 VkInstance instance,
7609 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
7610 const VkAllocationCallbacks* pAllocator,
7611 VkDebugUtilsMessengerEXT* pMessenger);
7612
7613 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
7614 VkInstance instance,
7615 VkDebugUtilsMessengerEXT messenger,
7616 const VkAllocationCallbacks* pAllocator);
7617
7618 VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
7619 VkInstance instance,
7620 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
7621 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
7622 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
7623 #endif
7624
7625
7626 #define VK_EXT_sampler_filter_minmax 1
7627 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1
7628 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
7629
7630 typedef enum VkSamplerReductionModeEXT {
7631 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
7632 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
7633 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
7634 VK_SAMPLER_REDUCTION_MODE_BEGIN_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT,
7635 VK_SAMPLER_REDUCTION_MODE_END_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_MAX_EXT,
7636 VK_SAMPLER_REDUCTION_MODE_RANGE_SIZE_EXT = (VK_SAMPLER_REDUCTION_MODE_MAX_EXT - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT + 1),
7637 VK_SAMPLER_REDUCTION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
7638 } VkSamplerReductionModeEXT;
7639 typedef struct VkSamplerReductionModeCreateInfoEXT {
7640 VkStructureType sType;
7641 const void* pNext;
7642 VkSamplerReductionModeEXT reductionMode;
7643 } VkSamplerReductionModeCreateInfoEXT;
7644
7645 typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
7646 VkStructureType sType;
7647 void* pNext;
7648 VkBool32 filterMinmaxSingleComponentFormats;
7649 VkBool32 filterMinmaxImageComponentMapping;
7650 } VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
7651
7652
7653
7654 #define VK_AMD_gpu_shader_int16 1
7655 #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1
7656 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
7657
7658
7659 #define VK_AMD_mixed_attachment_samples 1
7660 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
7661 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
7662
7663
7664 #define VK_AMD_shader_fragment_mask 1
7665 #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
7666 #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
7667
7668
7669 #define VK_EXT_inline_uniform_block 1
7670 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
7671 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
7672 typedef struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
7673 VkStructureType sType;
7674 void* pNext;
7675 VkBool32 inlineUniformBlock;
7676 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
7677 } VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
7678
7679 typedef struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
7680 VkStructureType sType;
7681 void* pNext;
7682 uint32_t maxInlineUniformBlockSize;
7683 uint32_t maxPerStageDescriptorInlineUniformBlocks;
7684 uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7685 uint32_t maxDescriptorSetInlineUniformBlocks;
7686 uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7687 } VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
7688
7689 typedef struct VkWriteDescriptorSetInlineUniformBlockEXT {
7690 VkStructureType sType;
7691 const void* pNext;
7692 uint32_t dataSize;
7693 const void* pData;
7694 } VkWriteDescriptorSetInlineUniformBlockEXT;
7695
7696 typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
7697 VkStructureType sType;
7698 const void* pNext;
7699 uint32_t maxInlineUniformBlockBindings;
7700 } VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
7701
7702
7703
7704 #define VK_EXT_shader_stencil_export 1
7705 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
7706 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
7707
7708
7709 #define VK_EXT_sample_locations 1
7710 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
7711 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
7712 typedef struct VkSampleLocationEXT {
7713 float x;
7714 float y;
7715 } VkSampleLocationEXT;
7716
7717 typedef struct VkSampleLocationsInfoEXT {
7718 VkStructureType sType;
7719 const void* pNext;
7720 VkSampleCountFlagBits sampleLocationsPerPixel;
7721 VkExtent2D sampleLocationGridSize;
7722 uint32_t sampleLocationsCount;
7723 const VkSampleLocationEXT* pSampleLocations;
7724 } VkSampleLocationsInfoEXT;
7725
7726 typedef struct VkAttachmentSampleLocationsEXT {
7727 uint32_t attachmentIndex;
7728 VkSampleLocationsInfoEXT sampleLocationsInfo;
7729 } VkAttachmentSampleLocationsEXT;
7730
7731 typedef struct VkSubpassSampleLocationsEXT {
7732 uint32_t subpassIndex;
7733 VkSampleLocationsInfoEXT sampleLocationsInfo;
7734 } VkSubpassSampleLocationsEXT;
7735
7736 typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
7737 VkStructureType sType;
7738 const void* pNext;
7739 uint32_t attachmentInitialSampleLocationsCount;
7740 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
7741 uint32_t postSubpassSampleLocationsCount;
7742 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations;
7743 } VkRenderPassSampleLocationsBeginInfoEXT;
7744
7745 typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
7746 VkStructureType sType;
7747 const void* pNext;
7748 VkBool32 sampleLocationsEnable;
7749 VkSampleLocationsInfoEXT sampleLocationsInfo;
7750 } VkPipelineSampleLocationsStateCreateInfoEXT;
7751
7752 typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
7753 VkStructureType sType;
7754 void* pNext;
7755 VkSampleCountFlags sampleLocationSampleCounts;
7756 VkExtent2D maxSampleLocationGridSize;
7757 float sampleLocationCoordinateRange[2];
7758 uint32_t sampleLocationSubPixelBits;
7759 VkBool32 variableSampleLocations;
7760 } VkPhysicalDeviceSampleLocationsPropertiesEXT;
7761
7762 typedef struct VkMultisamplePropertiesEXT {
7763 VkStructureType sType;
7764 void* pNext;
7765 VkExtent2D maxSampleLocationGridSize;
7766 } VkMultisamplePropertiesEXT;
7767
7768 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
7769 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
7770
7771 #ifndef VK_NO_PROTOTYPES
7772 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
7773 VkCommandBuffer commandBuffer,
7774 const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
7775
7776 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
7777 VkPhysicalDevice physicalDevice,
7778 VkSampleCountFlagBits samples,
7779 VkMultisamplePropertiesEXT* pMultisampleProperties);
7780 #endif
7781
7782
7783 #define VK_EXT_blend_operation_advanced 1
7784 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
7785 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
7786
7787 typedef enum VkBlendOverlapEXT {
7788 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
7789 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
7790 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
7791 VK_BLEND_OVERLAP_BEGIN_RANGE_EXT = VK_BLEND_OVERLAP_UNCORRELATED_EXT,
7792 VK_BLEND_OVERLAP_END_RANGE_EXT = VK_BLEND_OVERLAP_CONJOINT_EXT,
7793 VK_BLEND_OVERLAP_RANGE_SIZE_EXT = (VK_BLEND_OVERLAP_CONJOINT_EXT - VK_BLEND_OVERLAP_UNCORRELATED_EXT + 1),
7794 VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
7795 } VkBlendOverlapEXT;
7796 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
7797 VkStructureType sType;
7798 void* pNext;
7799 VkBool32 advancedBlendCoherentOperations;
7800 } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
7801
7802 typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
7803 VkStructureType sType;
7804 void* pNext;
7805 uint32_t advancedBlendMaxColorAttachments;
7806 VkBool32 advancedBlendIndependentBlend;
7807 VkBool32 advancedBlendNonPremultipliedSrcColor;
7808 VkBool32 advancedBlendNonPremultipliedDstColor;
7809 VkBool32 advancedBlendCorrelatedOverlap;
7810 VkBool32 advancedBlendAllOperations;
7811 } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
7812
7813 typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
7814 VkStructureType sType;
7815 const void* pNext;
7816 VkBool32 srcPremultiplied;
7817 VkBool32 dstPremultiplied;
7818 VkBlendOverlapEXT blendOverlap;
7819 } VkPipelineColorBlendAdvancedStateCreateInfoEXT;
7820
7821
7822
7823 #define VK_NV_fragment_coverage_to_color 1
7824 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
7825 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
7826 typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
7827 typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
7828 VkStructureType sType;
7829 const void* pNext;
7830 VkPipelineCoverageToColorStateCreateFlagsNV flags;
7831 VkBool32 coverageToColorEnable;
7832 uint32_t coverageToColorLocation;
7833 } VkPipelineCoverageToColorStateCreateInfoNV;
7834
7835
7836
7837 #define VK_NV_framebuffer_mixed_samples 1
7838 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
7839 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
7840
7841 typedef enum VkCoverageModulationModeNV {
7842 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
7843 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
7844 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
7845 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
7846 VK_COVERAGE_MODULATION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_MODULATION_MODE_NONE_NV,
7847 VK_COVERAGE_MODULATION_MODE_END_RANGE_NV = VK_COVERAGE_MODULATION_MODE_RGBA_NV,
7848 VK_COVERAGE_MODULATION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_MODULATION_MODE_RGBA_NV - VK_COVERAGE_MODULATION_MODE_NONE_NV + 1),
7849 VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
7850 } VkCoverageModulationModeNV;
7851 typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
7852 typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
7853 VkStructureType sType;
7854 const void* pNext;
7855 VkPipelineCoverageModulationStateCreateFlagsNV flags;
7856 VkCoverageModulationModeNV coverageModulationMode;
7857 VkBool32 coverageModulationTableEnable;
7858 uint32_t coverageModulationTableCount;
7859 const float* pCoverageModulationTable;
7860 } VkPipelineCoverageModulationStateCreateInfoNV;
7861
7862
7863
7864 #define VK_NV_fill_rectangle 1
7865 #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
7866 #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
7867
7868
7869 #define VK_EXT_post_depth_coverage 1
7870 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
7871 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
7872
7873
7874 #define VK_EXT_image_drm_format_modifier 1
7875 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1
7876 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
7877 typedef struct VkDrmFormatModifierPropertiesEXT {
7878 uint64_t drmFormatModifier;
7879 uint32_t drmFormatModifierPlaneCount;
7880 VkFormatFeatureFlags drmFormatModifierTilingFeatures;
7881 } VkDrmFormatModifierPropertiesEXT;
7882
7883 typedef struct VkDrmFormatModifierPropertiesListEXT {
7884 VkStructureType sType;
7885 void* pNext;
7886 uint32_t drmFormatModifierCount;
7887 VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties;
7888 } VkDrmFormatModifierPropertiesListEXT;
7889
7890 typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
7891 VkStructureType sType;
7892 const void* pNext;
7893 uint64_t drmFormatModifier;
7894 VkSharingMode sharingMode;
7895 uint32_t queueFamilyIndexCount;
7896 const uint32_t* pQueueFamilyIndices;
7897 } VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
7898
7899 typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
7900 VkStructureType sType;
7901 const void* pNext;
7902 uint32_t drmFormatModifierCount;
7903 const uint64_t* pDrmFormatModifiers;
7904 } VkImageDrmFormatModifierListCreateInfoEXT;
7905
7906 typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
7907 VkStructureType sType;
7908 const void* pNext;
7909 uint64_t drmFormatModifier;
7910 uint32_t drmFormatModifierPlaneCount;
7911 const VkSubresourceLayout* pPlaneLayouts;
7912 } VkImageDrmFormatModifierExplicitCreateInfoEXT;
7913
7914 typedef struct VkImageDrmFormatModifierPropertiesEXT {
7915 VkStructureType sType;
7916 void* pNext;
7917 uint64_t drmFormatModifier;
7918 } VkImageDrmFormatModifierPropertiesEXT;
7919
7920 typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
7921
7922 #ifndef VK_NO_PROTOTYPES
7923 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
7924 VkDevice device,
7925 VkImage image,
7926 VkImageDrmFormatModifierPropertiesEXT* pProperties);
7927 #endif
7928
7929
7930 #define VK_EXT_validation_cache 1
7931 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
7932 #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
7933 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
7934
7935 typedef enum VkValidationCacheHeaderVersionEXT {
7936 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
7937 VK_VALIDATION_CACHE_HEADER_VERSION_BEGIN_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
7938 VK_VALIDATION_CACHE_HEADER_VERSION_END_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT,
7939 VK_VALIDATION_CACHE_HEADER_VERSION_RANGE_SIZE_EXT = (VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT + 1),
7940 VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
7941 } VkValidationCacheHeaderVersionEXT;
7942 typedef VkFlags VkValidationCacheCreateFlagsEXT;
7943 typedef struct VkValidationCacheCreateInfoEXT {
7944 VkStructureType sType;
7945 const void* pNext;
7946 VkValidationCacheCreateFlagsEXT flags;
7947 size_t initialDataSize;
7948 const void* pInitialData;
7949 } VkValidationCacheCreateInfoEXT;
7950
7951 typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
7952 VkStructureType sType;
7953 const void* pNext;
7954 VkValidationCacheEXT validationCache;
7955 } VkShaderModuleValidationCacheCreateInfoEXT;
7956
7957 typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
7958 typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
7959 typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
7960 typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
7961
7962 #ifndef VK_NO_PROTOTYPES
7963 VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
7964 VkDevice device,
7965 const VkValidationCacheCreateInfoEXT* pCreateInfo,
7966 const VkAllocationCallbacks* pAllocator,
7967 VkValidationCacheEXT* pValidationCache);
7968
7969 VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
7970 VkDevice device,
7971 VkValidationCacheEXT validationCache,
7972 const VkAllocationCallbacks* pAllocator);
7973
7974 VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
7975 VkDevice device,
7976 VkValidationCacheEXT dstCache,
7977 uint32_t srcCacheCount,
7978 const VkValidationCacheEXT* pSrcCaches);
7979
7980 VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
7981 VkDevice device,
7982 VkValidationCacheEXT validationCache,
7983 size_t* pDataSize,
7984 void* pData);
7985 #endif
7986
7987
7988 #define VK_EXT_descriptor_indexing 1
7989 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
7990 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
7991
7992 typedef enum VkDescriptorBindingFlagBitsEXT {
7993 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
7994 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
7995 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
7996 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
7997 VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
7998 } VkDescriptorBindingFlagBitsEXT;
7999 typedef VkFlags VkDescriptorBindingFlagsEXT;
8000 typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
8001 VkStructureType sType;
8002 const void* pNext;
8003 uint32_t bindingCount;
8004 const VkDescriptorBindingFlagsEXT* pBindingFlags;
8005 } VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
8006
8007 typedef struct VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
8008 VkStructureType sType;
8009 void* pNext;
8010 VkBool32 shaderInputAttachmentArrayDynamicIndexing;
8011 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
8012 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
8013 VkBool32 shaderUniformBufferArrayNonUniformIndexing;
8014 VkBool32 shaderSampledImageArrayNonUniformIndexing;
8015 VkBool32 shaderStorageBufferArrayNonUniformIndexing;
8016 VkBool32 shaderStorageImageArrayNonUniformIndexing;
8017 VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
8018 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
8019 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
8020 VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
8021 VkBool32 descriptorBindingSampledImageUpdateAfterBind;
8022 VkBool32 descriptorBindingStorageImageUpdateAfterBind;
8023 VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
8024 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
8025 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
8026 VkBool32 descriptorBindingUpdateUnusedWhilePending;
8027 VkBool32 descriptorBindingPartiallyBound;
8028 VkBool32 descriptorBindingVariableDescriptorCount;
8029 VkBool32 runtimeDescriptorArray;
8030 } VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
8031
8032 typedef struct VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
8033 VkStructureType sType;
8034 void* pNext;
8035 uint32_t maxUpdateAfterBindDescriptorsInAllPools;
8036 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
8037 VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
8038 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
8039 VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
8040 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
8041 VkBool32 robustBufferAccessUpdateAfterBind;
8042 VkBool32 quadDivergentImplicitLod;
8043 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
8044 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
8045 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
8046 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
8047 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
8048 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
8049 uint32_t maxPerStageUpdateAfterBindResources;
8050 uint32_t maxDescriptorSetUpdateAfterBindSamplers;
8051 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
8052 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
8053 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
8054 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
8055 uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
8056 uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
8057 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
8058 } VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
8059
8060 typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
8061 VkStructureType sType;
8062 const void* pNext;
8063 uint32_t descriptorSetCount;
8064 const uint32_t* pDescriptorCounts;
8065 } VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
8066
8067 typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
8068 VkStructureType sType;
8069 void* pNext;
8070 uint32_t maxVariableDescriptorCount;
8071 } VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
8072
8073
8074
8075 #define VK_EXT_shader_viewport_index_layer 1
8076 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
8077 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
8078
8079
8080 #define VK_NV_shading_rate_image 1
8081 #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
8082 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
8083
8084 typedef enum VkShadingRatePaletteEntryNV {
8085 VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
8086 VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
8087 VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
8088 VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
8089 VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
8090 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
8091 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
8092 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
8093 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
8094 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
8095 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
8096 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
8097 VK_SHADING_RATE_PALETTE_ENTRY_BEGIN_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,
8098 VK_SHADING_RATE_PALETTE_ENTRY_END_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV,
8099 VK_SHADING_RATE_PALETTE_ENTRY_RANGE_SIZE_NV = (VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV + 1),
8100 VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
8101 } VkShadingRatePaletteEntryNV;
8102
8103 typedef enum VkCoarseSampleOrderTypeNV {
8104 VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
8105 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
8106 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
8107 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
8108 VK_COARSE_SAMPLE_ORDER_TYPE_BEGIN_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV,
8109 VK_COARSE_SAMPLE_ORDER_TYPE_END_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV,
8110 VK_COARSE_SAMPLE_ORDER_TYPE_RANGE_SIZE_NV = (VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV + 1),
8111 VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
8112 } VkCoarseSampleOrderTypeNV;
8113 typedef struct VkShadingRatePaletteNV {
8114 uint32_t shadingRatePaletteEntryCount;
8115 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries;
8116 } VkShadingRatePaletteNV;
8117
8118 typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
8119 VkStructureType sType;
8120 const void* pNext;
8121 VkBool32 shadingRateImageEnable;
8122 uint32_t viewportCount;
8123 const VkShadingRatePaletteNV* pShadingRatePalettes;
8124 } VkPipelineViewportShadingRateImageStateCreateInfoNV;
8125
8126 typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
8127 VkStructureType sType;
8128 void* pNext;
8129 VkBool32 shadingRateImage;
8130 VkBool32 shadingRateCoarseSampleOrder;
8131 } VkPhysicalDeviceShadingRateImageFeaturesNV;
8132
8133 typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
8134 VkStructureType sType;
8135 void* pNext;
8136 VkExtent2D shadingRateTexelSize;
8137 uint32_t shadingRatePaletteSize;
8138 uint32_t shadingRateMaxCoarseSamples;
8139 } VkPhysicalDeviceShadingRateImagePropertiesNV;
8140
8141 typedef struct VkCoarseSampleLocationNV {
8142 uint32_t pixelX;
8143 uint32_t pixelY;
8144 uint32_t sample;
8145 } VkCoarseSampleLocationNV;
8146
8147 typedef struct VkCoarseSampleOrderCustomNV {
8148 VkShadingRatePaletteEntryNV shadingRate;
8149 uint32_t sampleCount;
8150 uint32_t sampleLocationCount;
8151 const VkCoarseSampleLocationNV* pSampleLocations;
8152 } VkCoarseSampleOrderCustomNV;
8153
8154 typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
8155 VkStructureType sType;
8156 const void* pNext;
8157 VkCoarseSampleOrderTypeNV sampleOrderType;
8158 uint32_t customSampleOrderCount;
8159 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders;
8160 } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
8161
8162 typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
8163 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
8164 typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
8165
8166 #ifndef VK_NO_PROTOTYPES
8167 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
8168 VkCommandBuffer commandBuffer,
8169 VkImageView imageView,
8170 VkImageLayout imageLayout);
8171
8172 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
8173 VkCommandBuffer commandBuffer,
8174 uint32_t firstViewport,
8175 uint32_t viewportCount,
8176 const VkShadingRatePaletteNV* pShadingRatePalettes);
8177
8178 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
8179 VkCommandBuffer commandBuffer,
8180 VkCoarseSampleOrderTypeNV sampleOrderType,
8181 uint32_t customSampleOrderCount,
8182 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
8183 #endif
8184
8185
8186 #define VK_NV_ray_tracing 1
8187 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
8188 #define VK_NV_RAY_TRACING_SPEC_VERSION 3
8189 #define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing"
8190 #define VK_SHADER_UNUSED_NV (~0U)
8191
8192 typedef enum VkRayTracingShaderGroupTypeNV {
8193 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0,
8194 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1,
8195 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2,
8196 VK_RAY_TRACING_SHADER_GROUP_TYPE_BEGIN_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV,
8197 VK_RAY_TRACING_SHADER_GROUP_TYPE_END_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV,
8198 VK_RAY_TRACING_SHADER_GROUP_TYPE_RANGE_SIZE_NV = (VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV + 1),
8199 VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
8200 } VkRayTracingShaderGroupTypeNV;
8201
8202 typedef enum VkGeometryTypeNV {
8203 VK_GEOMETRY_TYPE_TRIANGLES_NV = 0,
8204 VK_GEOMETRY_TYPE_AABBS_NV = 1,
8205 VK_GEOMETRY_TYPE_BEGIN_RANGE_NV = VK_GEOMETRY_TYPE_TRIANGLES_NV,
8206 VK_GEOMETRY_TYPE_END_RANGE_NV = VK_GEOMETRY_TYPE_AABBS_NV,
8207 VK_GEOMETRY_TYPE_RANGE_SIZE_NV = (VK_GEOMETRY_TYPE_AABBS_NV - VK_GEOMETRY_TYPE_TRIANGLES_NV + 1),
8208 VK_GEOMETRY_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
8209 } VkGeometryTypeNV;
8210
8211 typedef enum VkAccelerationStructureTypeNV {
8212 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0,
8213 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1,
8214 VK_ACCELERATION_STRUCTURE_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV,
8215 VK_ACCELERATION_STRUCTURE_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV,
8216 VK_ACCELERATION_STRUCTURE_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV + 1),
8217 VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
8218 } VkAccelerationStructureTypeNV;
8219
8220 typedef enum VkCopyAccelerationStructureModeNV {
8221 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0,
8222 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1,
8223 VK_COPY_ACCELERATION_STRUCTURE_MODE_BEGIN_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV,
8224 VK_COPY_ACCELERATION_STRUCTURE_MODE_END_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV,
8225 VK_COPY_ACCELERATION_STRUCTURE_MODE_RANGE_SIZE_NV = (VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV + 1),
8226 VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_NV = 0x7FFFFFFF
8227 } VkCopyAccelerationStructureModeNV;
8228
8229 typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
8230 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
8231 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
8232 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
8233 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV,
8234 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV,
8235 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV + 1),
8236 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
8237 } VkAccelerationStructureMemoryRequirementsTypeNV;
8238
8239 typedef enum VkGeometryFlagBitsNV {
8240 VK_GEOMETRY_OPAQUE_BIT_NV = 0x00000001,
8241 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 0x00000002,
8242 VK_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
8243 } VkGeometryFlagBitsNV;
8244 typedef VkFlags VkGeometryFlagsNV;
8245
8246 typedef enum VkGeometryInstanceFlagBitsNV {
8247 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 0x00000001,
8248 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 0x00000002,
8249 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 0x00000004,
8250 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
8251 VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
8252 } VkGeometryInstanceFlagBitsNV;
8253 typedef VkFlags VkGeometryInstanceFlagsNV;
8254
8255 typedef enum VkBuildAccelerationStructureFlagBitsNV {
8256 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 0x00000001,
8257 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 0x00000002,
8258 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 0x00000004,
8259 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 0x00000008,
8260 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 0x00000010,
8261 VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
8262 } VkBuildAccelerationStructureFlagBitsNV;
8263 typedef VkFlags VkBuildAccelerationStructureFlagsNV;
8264 typedef struct VkRayTracingShaderGroupCreateInfoNV {
8265 VkStructureType sType;
8266 const void* pNext;
8267 VkRayTracingShaderGroupTypeNV type;
8268 uint32_t generalShader;
8269 uint32_t closestHitShader;
8270 uint32_t anyHitShader;
8271 uint32_t intersectionShader;
8272 } VkRayTracingShaderGroupCreateInfoNV;
8273
8274 typedef struct VkRayTracingPipelineCreateInfoNV {
8275 VkStructureType sType;
8276 const void* pNext;
8277 VkPipelineCreateFlags flags;
8278 uint32_t stageCount;
8279 const VkPipelineShaderStageCreateInfo* pStages;
8280 uint32_t groupCount;
8281 const VkRayTracingShaderGroupCreateInfoNV* pGroups;
8282 uint32_t maxRecursionDepth;
8283 VkPipelineLayout layout;
8284 VkPipeline basePipelineHandle;
8285 int32_t basePipelineIndex;
8286 } VkRayTracingPipelineCreateInfoNV;
8287
8288 typedef struct VkGeometryTrianglesNV {
8289 VkStructureType sType;
8290 const void* pNext;
8291 VkBuffer vertexData;
8292 VkDeviceSize vertexOffset;
8293 uint32_t vertexCount;
8294 VkDeviceSize vertexStride;
8295 VkFormat vertexFormat;
8296 VkBuffer indexData;
8297 VkDeviceSize indexOffset;
8298 uint32_t indexCount;
8299 VkIndexType indexType;
8300 VkBuffer transformData;
8301 VkDeviceSize transformOffset;
8302 } VkGeometryTrianglesNV;
8303
8304 typedef struct VkGeometryAABBNV {
8305 VkStructureType sType;
8306 const void* pNext;
8307 VkBuffer aabbData;
8308 uint32_t numAABBs;
8309 uint32_t stride;
8310 VkDeviceSize offset;
8311 } VkGeometryAABBNV;
8312
8313 typedef struct VkGeometryDataNV {
8314 VkGeometryTrianglesNV triangles;
8315 VkGeometryAABBNV aabbs;
8316 } VkGeometryDataNV;
8317
8318 typedef struct VkGeometryNV {
8319 VkStructureType sType;
8320 const void* pNext;
8321 VkGeometryTypeNV geometryType;
8322 VkGeometryDataNV geometry;
8323 VkGeometryFlagsNV flags;
8324 } VkGeometryNV;
8325
8326 typedef struct VkAccelerationStructureInfoNV {
8327 VkStructureType sType;
8328 const void* pNext;
8329 VkAccelerationStructureTypeNV type;
8330 VkBuildAccelerationStructureFlagsNV flags;
8331 uint32_t instanceCount;
8332 uint32_t geometryCount;
8333 const VkGeometryNV* pGeometries;
8334 } VkAccelerationStructureInfoNV;
8335
8336 typedef struct VkAccelerationStructureCreateInfoNV {
8337 VkStructureType sType;
8338 const void* pNext;
8339 VkDeviceSize compactedSize;
8340 VkAccelerationStructureInfoNV info;
8341 } VkAccelerationStructureCreateInfoNV;
8342
8343 typedef struct VkBindAccelerationStructureMemoryInfoNV {
8344 VkStructureType sType;
8345 const void* pNext;
8346 VkAccelerationStructureNV accelerationStructure;
8347 VkDeviceMemory memory;
8348 VkDeviceSize memoryOffset;
8349 uint32_t deviceIndexCount;
8350 const uint32_t* pDeviceIndices;
8351 } VkBindAccelerationStructureMemoryInfoNV;
8352
8353 typedef struct VkWriteDescriptorSetAccelerationStructureNV {
8354 VkStructureType sType;
8355 const void* pNext;
8356 uint32_t accelerationStructureCount;
8357 const VkAccelerationStructureNV* pAccelerationStructures;
8358 } VkWriteDescriptorSetAccelerationStructureNV;
8359
8360 typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
8361 VkStructureType sType;
8362 const void* pNext;
8363 VkAccelerationStructureMemoryRequirementsTypeNV type;
8364 VkAccelerationStructureNV accelerationStructure;
8365 } VkAccelerationStructureMemoryRequirementsInfoNV;
8366
8367 typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
8368 VkStructureType sType;
8369 void* pNext;
8370 uint32_t shaderGroupHandleSize;
8371 uint32_t maxRecursionDepth;
8372 uint32_t maxShaderGroupStride;
8373 uint32_t shaderGroupBaseAlignment;
8374 uint64_t maxGeometryCount;
8375 uint64_t maxInstanceCount;
8376 uint64_t maxTriangleCount;
8377 uint32_t maxDescriptorSetAccelerationStructures;
8378 } VkPhysicalDeviceRayTracingPropertiesNV;
8379
8380 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
8381 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
8382 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
8383 typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
8384 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset);
8385 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode);
8386 typedef 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);
8387 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
8388 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
8389 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
8390 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
8391 typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
8392
8393 #ifndef VK_NO_PROTOTYPES
8394 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
8395 VkDevice device,
8396 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
8397 const VkAllocationCallbacks* pAllocator,
8398 VkAccelerationStructureNV* pAccelerationStructure);
8399
8400 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
8401 VkDevice device,
8402 VkAccelerationStructureNV accelerationStructure,
8403 const VkAllocationCallbacks* pAllocator);
8404
8405 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
8406 VkDevice device,
8407 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
8408 VkMemoryRequirements2KHR* pMemoryRequirements);
8409
8410 VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
8411 VkDevice device,
8412 uint32_t bindInfoCount,
8413 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
8414
8415 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
8416 VkCommandBuffer commandBuffer,
8417 const VkAccelerationStructureInfoNV* pInfo,
8418 VkBuffer instanceData,
8419 VkDeviceSize instanceOffset,
8420 VkBool32 update,
8421 VkAccelerationStructureNV dst,
8422 VkAccelerationStructureNV src,
8423 VkBuffer scratch,
8424 VkDeviceSize scratchOffset);
8425
8426 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
8427 VkCommandBuffer commandBuffer,
8428 VkAccelerationStructureNV dst,
8429 VkAccelerationStructureNV src,
8430 VkCopyAccelerationStructureModeNV mode);
8431
8432 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
8433 VkCommandBuffer commandBuffer,
8434 VkBuffer raygenShaderBindingTableBuffer,
8435 VkDeviceSize raygenShaderBindingOffset,
8436 VkBuffer missShaderBindingTableBuffer,
8437 VkDeviceSize missShaderBindingOffset,
8438 VkDeviceSize missShaderBindingStride,
8439 VkBuffer hitShaderBindingTableBuffer,
8440 VkDeviceSize hitShaderBindingOffset,
8441 VkDeviceSize hitShaderBindingStride,
8442 VkBuffer callableShaderBindingTableBuffer,
8443 VkDeviceSize callableShaderBindingOffset,
8444 VkDeviceSize callableShaderBindingStride,
8445 uint32_t width,
8446 uint32_t height,
8447 uint32_t depth);
8448
8449 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
8450 VkDevice device,
8451 VkPipelineCache pipelineCache,
8452 uint32_t createInfoCount,
8453 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
8454 const VkAllocationCallbacks* pAllocator,
8455 VkPipeline* pPipelines);
8456
8457 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
8458 VkDevice device,
8459 VkPipeline pipeline,
8460 uint32_t firstGroup,
8461 uint32_t groupCount,
8462 size_t dataSize,
8463 void* pData);
8464
8465 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
8466 VkDevice device,
8467 VkAccelerationStructureNV accelerationStructure,
8468 size_t dataSize,
8469 void* pData);
8470
8471 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
8472 VkCommandBuffer commandBuffer,
8473 uint32_t accelerationStructureCount,
8474 const VkAccelerationStructureNV* pAccelerationStructures,
8475 VkQueryType queryType,
8476 VkQueryPool queryPool,
8477 uint32_t firstQuery);
8478
8479 VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
8480 VkDevice device,
8481 VkPipeline pipeline,
8482 uint32_t shader);
8483 #endif
8484
8485
8486 #define VK_NV_representative_fragment_test 1
8487 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 1
8488 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
8489 typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
8490 VkStructureType sType;
8491 void* pNext;
8492 VkBool32 representativeFragmentTest;
8493 } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
8494
8495 typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
8496 VkStructureType sType;
8497 const void* pNext;
8498 VkBool32 representativeFragmentTestEnable;
8499 } VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
8500
8501
8502
8503 #define VK_EXT_filter_cubic 1
8504 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION 1
8505 #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
8506 typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
8507 VkStructureType sType;
8508 void* pNext;
8509 VkImageViewType imageViewType;
8510 } VkPhysicalDeviceImageViewImageFormatInfoEXT;
8511
8512 typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
8513 VkStructureType sType;
8514 void* pNext;
8515 VkBool32 filterCubic;
8516 VkBool32 filterCubicMinmax ;
8517 } VkFilterCubicImageViewImageFormatPropertiesEXT;
8518
8519
8520
8521 #define VK_EXT_global_priority 1
8522 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
8523 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
8524
8525 typedef enum VkQueueGlobalPriorityEXT {
8526 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
8527 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
8528 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
8529 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
8530 VK_QUEUE_GLOBAL_PRIORITY_BEGIN_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT,
8531 VK_QUEUE_GLOBAL_PRIORITY_END_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT,
8532 VK_QUEUE_GLOBAL_PRIORITY_RANGE_SIZE_EXT = (VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT + 1),
8533 VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF
8534 } VkQueueGlobalPriorityEXT;
8535 typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT {
8536 VkStructureType sType;
8537 const void* pNext;
8538 VkQueueGlobalPriorityEXT globalPriority;
8539 } VkDeviceQueueGlobalPriorityCreateInfoEXT;
8540
8541
8542
8543 #define VK_EXT_external_memory_host 1
8544 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
8545 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
8546 typedef struct VkImportMemoryHostPointerInfoEXT {
8547 VkStructureType sType;
8548 const void* pNext;
8549 VkExternalMemoryHandleTypeFlagBits handleType;
8550 void* pHostPointer;
8551 } VkImportMemoryHostPointerInfoEXT;
8552
8553 typedef struct VkMemoryHostPointerPropertiesEXT {
8554 VkStructureType sType;
8555 void* pNext;
8556 uint32_t memoryTypeBits;
8557 } VkMemoryHostPointerPropertiesEXT;
8558
8559 typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
8560 VkStructureType sType;
8561 void* pNext;
8562 VkDeviceSize minImportedHostPointerAlignment;
8563 } VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
8564
8565 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
8566
8567 #ifndef VK_NO_PROTOTYPES
8568 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
8569 VkDevice device,
8570 VkExternalMemoryHandleTypeFlagBits handleType,
8571 const void* pHostPointer,
8572 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
8573 #endif
8574
8575
8576 #define VK_AMD_buffer_marker 1
8577 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
8578 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
8579 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
8580
8581 #ifndef VK_NO_PROTOTYPES
8582 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
8583 VkCommandBuffer commandBuffer,
8584 VkPipelineStageFlagBits pipelineStage,
8585 VkBuffer dstBuffer,
8586 VkDeviceSize dstOffset,
8587 uint32_t marker);
8588 #endif
8589
8590
8591 #define VK_EXT_calibrated_timestamps 1
8592 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
8593 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
8594
8595 typedef enum VkTimeDomainEXT {
8596 VK_TIME_DOMAIN_DEVICE_EXT = 0,
8597 VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,
8598 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,
8599 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3,
8600 VK_TIME_DOMAIN_BEGIN_RANGE_EXT = VK_TIME_DOMAIN_DEVICE_EXT,
8601 VK_TIME_DOMAIN_END_RANGE_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT,
8602 VK_TIME_DOMAIN_RANGE_SIZE_EXT = (VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT - VK_TIME_DOMAIN_DEVICE_EXT + 1),
8603 VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF
8604 } VkTimeDomainEXT;
8605 typedef struct VkCalibratedTimestampInfoEXT {
8606 VkStructureType sType;
8607 const void* pNext;
8608 VkTimeDomainEXT timeDomain;
8609 } VkCalibratedTimestampInfoEXT;
8610
8611 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains);
8612 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
8613
8614 #ifndef VK_NO_PROTOTYPES
8615 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
8616 VkPhysicalDevice physicalDevice,
8617 uint32_t* pTimeDomainCount,
8618 VkTimeDomainEXT* pTimeDomains);
8619
8620 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
8621 VkDevice device,
8622 uint32_t timestampCount,
8623 const VkCalibratedTimestampInfoEXT* pTimestampInfos,
8624 uint64_t* pTimestamps,
8625 uint64_t* pMaxDeviation);
8626 #endif
8627
8628
8629 #define VK_AMD_shader_core_properties 1
8630 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
8631 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
8632 typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
8633 VkStructureType sType;
8634 void* pNext;
8635 uint32_t shaderEngineCount;
8636 uint32_t shaderArraysPerEngineCount;
8637 uint32_t computeUnitsPerShaderArray;
8638 uint32_t simdPerComputeUnit;
8639 uint32_t wavefrontsPerSimd;
8640 uint32_t wavefrontSize;
8641 uint32_t sgprsPerSimd;
8642 uint32_t minSgprAllocation;
8643 uint32_t maxSgprAllocation;
8644 uint32_t sgprAllocationGranularity;
8645 uint32_t vgprsPerSimd;
8646 uint32_t minVgprAllocation;
8647 uint32_t maxVgprAllocation;
8648 uint32_t vgprAllocationGranularity;
8649 } VkPhysicalDeviceShaderCorePropertiesAMD;
8650
8651
8652
8653 #define VK_AMD_memory_overallocation_behavior 1
8654 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
8655 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
8656
8657 typedef enum VkMemoryOverallocationBehaviorAMD {
8658 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
8659 VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
8660 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
8661 VK_MEMORY_OVERALLOCATION_BEHAVIOR_BEGIN_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,
8662 VK_MEMORY_OVERALLOCATION_BEHAVIOR_END_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD,
8663 VK_MEMORY_OVERALLOCATION_BEHAVIOR_RANGE_SIZE_AMD = (VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD + 1),
8664 VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
8665 } VkMemoryOverallocationBehaviorAMD;
8666 typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
8667 VkStructureType sType;
8668 const void* pNext;
8669 VkMemoryOverallocationBehaviorAMD overallocationBehavior;
8670 } VkDeviceMemoryOverallocationCreateInfoAMD;
8671
8672
8673
8674 #define VK_EXT_vertex_attribute_divisor 1
8675 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
8676 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
8677 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
8678 VkStructureType sType;
8679 void* pNext;
8680 uint32_t maxVertexAttribDivisor;
8681 } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
8682
8683 typedef struct VkVertexInputBindingDivisorDescriptionEXT {
8684 uint32_t binding;
8685 uint32_t divisor;
8686 } VkVertexInputBindingDivisorDescriptionEXT;
8687
8688 typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT {
8689 VkStructureType sType;
8690 const void* pNext;
8691 uint32_t vertexBindingDivisorCount;
8692 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors;
8693 } VkPipelineVertexInputDivisorStateCreateInfoEXT;
8694
8695 typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
8696 VkStructureType sType;
8697 void* pNext;
8698 VkBool32 vertexAttributeInstanceRateDivisor;
8699 VkBool32 vertexAttributeInstanceRateZeroDivisor;
8700 } VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
8701
8702
8703
8704 #define VK_EXT_pipeline_creation_feedback 1
8705 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
8706 #define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
8707
8708 typedef enum VkPipelineCreationFeedbackFlagBitsEXT {
8709 VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = 0x00000001,
8710 VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = 0x00000002,
8711 VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = 0x00000004,
8712 VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
8713 } VkPipelineCreationFeedbackFlagBitsEXT;
8714 typedef VkFlags VkPipelineCreationFeedbackFlagsEXT;
8715 typedef struct VkPipelineCreationFeedbackEXT {
8716 VkPipelineCreationFeedbackFlagsEXT flags;
8717 uint64_t duration;
8718 } VkPipelineCreationFeedbackEXT;
8719
8720 typedef struct VkPipelineCreationFeedbackCreateInfoEXT {
8721 VkStructureType sType;
8722 const void* pNext;
8723 VkPipelineCreationFeedbackEXT* pPipelineCreationFeedback;
8724 uint32_t pipelineStageCreationFeedbackCount;
8725 VkPipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks;
8726 } VkPipelineCreationFeedbackCreateInfoEXT;
8727
8728
8729
8730 #define VK_NV_shader_subgroup_partitioned 1
8731 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
8732 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
8733
8734
8735 #define VK_NV_compute_shader_derivatives 1
8736 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
8737 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
8738 typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
8739 VkStructureType sType;
8740 void* pNext;
8741 VkBool32 computeDerivativeGroupQuads;
8742 VkBool32 computeDerivativeGroupLinear;
8743 } VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
8744
8745
8746
8747 #define VK_NV_mesh_shader 1
8748 #define VK_NV_MESH_SHADER_SPEC_VERSION 1
8749 #define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
8750 typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
8751 VkStructureType sType;
8752 void* pNext;
8753 VkBool32 taskShader;
8754 VkBool32 meshShader;
8755 } VkPhysicalDeviceMeshShaderFeaturesNV;
8756
8757 typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
8758 VkStructureType sType;
8759 void* pNext;
8760 uint32_t maxDrawMeshTasksCount;
8761 uint32_t maxTaskWorkGroupInvocations;
8762 uint32_t maxTaskWorkGroupSize[3];
8763 uint32_t maxTaskTotalMemorySize;
8764 uint32_t maxTaskOutputCount;
8765 uint32_t maxMeshWorkGroupInvocations;
8766 uint32_t maxMeshWorkGroupSize[3];
8767 uint32_t maxMeshTotalMemorySize;
8768 uint32_t maxMeshOutputVertices;
8769 uint32_t maxMeshOutputPrimitives;
8770 uint32_t maxMeshMultiviewViewCount;
8771 uint32_t meshOutputPerVertexGranularity;
8772 uint32_t meshOutputPerPrimitiveGranularity;
8773 } VkPhysicalDeviceMeshShaderPropertiesNV;
8774
8775 typedef struct VkDrawMeshTasksIndirectCommandNV {
8776 uint32_t taskCount;
8777 uint32_t firstTask;
8778 } VkDrawMeshTasksIndirectCommandNV;
8779
8780 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
8781 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
8782 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
8783
8784 #ifndef VK_NO_PROTOTYPES
8785 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
8786 VkCommandBuffer commandBuffer,
8787 uint32_t taskCount,
8788 uint32_t firstTask);
8789
8790 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
8791 VkCommandBuffer commandBuffer,
8792 VkBuffer buffer,
8793 VkDeviceSize offset,
8794 uint32_t drawCount,
8795 uint32_t stride);
8796
8797 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
8798 VkCommandBuffer commandBuffer,
8799 VkBuffer buffer,
8800 VkDeviceSize offset,
8801 VkBuffer countBuffer,
8802 VkDeviceSize countBufferOffset,
8803 uint32_t maxDrawCount,
8804 uint32_t stride);
8805 #endif
8806
8807
8808 #define VK_NV_fragment_shader_barycentric 1
8809 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
8810 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
8811 typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV {
8812 VkStructureType sType;
8813 void* pNext;
8814 VkBool32 fragmentShaderBarycentric;
8815 } VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
8816
8817
8818
8819 #define VK_NV_shader_image_footprint 1
8820 #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1
8821 #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
8822 typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
8823 VkStructureType sType;
8824 void* pNext;
8825 VkBool32 imageFootprint;
8826 } VkPhysicalDeviceShaderImageFootprintFeaturesNV;
8827
8828
8829
8830 #define VK_NV_scissor_exclusive 1
8831 #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
8832 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
8833 typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
8834 VkStructureType sType;
8835 const void* pNext;
8836 uint32_t exclusiveScissorCount;
8837 const VkRect2D* pExclusiveScissors;
8838 } VkPipelineViewportExclusiveScissorStateCreateInfoNV;
8839
8840 typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
8841 VkStructureType sType;
8842 void* pNext;
8843 VkBool32 exclusiveScissor;
8844 } VkPhysicalDeviceExclusiveScissorFeaturesNV;
8845
8846 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
8847
8848 #ifndef VK_NO_PROTOTYPES
8849 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
8850 VkCommandBuffer commandBuffer,
8851 uint32_t firstExclusiveScissor,
8852 uint32_t exclusiveScissorCount,
8853 const VkRect2D* pExclusiveScissors);
8854 #endif
8855
8856
8857 #define VK_NV_device_diagnostic_checkpoints 1
8858 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
8859 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
8860 typedef struct VkQueueFamilyCheckpointPropertiesNV {
8861 VkStructureType sType;
8862 void* pNext;
8863 VkPipelineStageFlags checkpointExecutionStageMask;
8864 } VkQueueFamilyCheckpointPropertiesNV;
8865
8866 typedef struct VkCheckpointDataNV {
8867 VkStructureType sType;
8868 void* pNext;
8869 VkPipelineStageFlagBits stage;
8870 void* pCheckpointMarker;
8871 } VkCheckpointDataNV;
8872
8873 typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
8874 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
8875
8876 #ifndef VK_NO_PROTOTYPES
8877 VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
8878 VkCommandBuffer commandBuffer,
8879 const void* pCheckpointMarker);
8880
8881 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
8882 VkQueue queue,
8883 uint32_t* pCheckpointDataCount,
8884 VkCheckpointDataNV* pCheckpointData);
8885 #endif
8886
8887
8888 #define VK_EXT_pci_bus_info 1
8889 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2
8890 #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
8891 typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
8892 VkStructureType sType;
8893 void* pNext;
8894 uint32_t pciDomain;
8895 uint32_t pciBus;
8896 uint32_t pciDevice;
8897 uint32_t pciFunction;
8898 } VkPhysicalDevicePCIBusInfoPropertiesEXT;
8899
8900
8901
8902 #define VK_AMD_display_native_hdr 1
8903 #define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
8904 #define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
8905 typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
8906 VkStructureType sType;
8907 void* pNext;
8908 VkBool32 localDimmingSupport;
8909 } VkDisplayNativeHdrSurfaceCapabilitiesAMD;
8910
8911 typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
8912 VkStructureType sType;
8913 const void* pNext;
8914 VkBool32 localDimmingEnable;
8915 } VkSwapchainDisplayNativeHdrCreateInfoAMD;
8916
8917 typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
8918
8919 #ifndef VK_NO_PROTOTYPES
8920 VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
8921 VkDevice device,
8922 VkSwapchainKHR swapChain,
8923 VkBool32 localDimmingEnable);
8924 #endif
8925
8926
8927 #define VK_EXT_fragment_density_map 1
8928 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 1
8929 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
8930 typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
8931 VkStructureType sType;
8932 void* pNext;
8933 VkBool32 fragmentDensityMap;
8934 VkBool32 fragmentDensityMapDynamic;
8935 VkBool32 fragmentDensityMapNonSubsampledImages;
8936 } VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
8937
8938 typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
8939 VkStructureType sType;
8940 void* pNext;
8941 VkExtent2D minFragmentDensityTexelSize;
8942 VkExtent2D maxFragmentDensityTexelSize;
8943 VkBool32 fragmentDensityInvocations;
8944 } VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
8945
8946 typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
8947 VkStructureType sType;
8948 const void* pNext;
8949 VkAttachmentReference fragmentDensityMapAttachment;
8950 } VkRenderPassFragmentDensityMapCreateInfoEXT;
8951
8952
8953
8954 #define VK_EXT_scalar_block_layout 1
8955 #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
8956 #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
8957 typedef struct VkPhysicalDeviceScalarBlockLayoutFeaturesEXT {
8958 VkStructureType sType;
8959 void* pNext;
8960 VkBool32 scalarBlockLayout;
8961 } VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
8962
8963
8964
8965 #define VK_GOOGLE_hlsl_functionality1 1
8966 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 1
8967 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
8968
8969
8970 #define VK_GOOGLE_decorate_string 1
8971 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
8972 #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
8973
8974
8975 #define VK_EXT_memory_budget 1
8976 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
8977 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
8978 typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
8979 VkStructureType sType;
8980 void* pNext;
8981 VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS];
8982 VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS];
8983 } VkPhysicalDeviceMemoryBudgetPropertiesEXT;
8984
8985
8986
8987 #define VK_EXT_memory_priority 1
8988 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
8989 #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
8990 typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
8991 VkStructureType sType;
8992 void* pNext;
8993 VkBool32 memoryPriority;
8994 } VkPhysicalDeviceMemoryPriorityFeaturesEXT;
8995
8996 typedef struct VkMemoryPriorityAllocateInfoEXT {
8997 VkStructureType sType;
8998 const void* pNext;
8999 float priority;
9000 } VkMemoryPriorityAllocateInfoEXT;
9001
9002
9003
9004 #define VK_NV_dedicated_allocation_image_aliasing 1
9005 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
9006 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
9007 typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
9008 VkStructureType sType;
9009 void* pNext;
9010 VkBool32 dedicatedAllocationImageAliasing;
9011 } VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
9012
9013
9014
9015 #define VK_EXT_buffer_device_address 1
9016 typedef uint64_t VkDeviceAddress;
9017 #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
9018 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
9019 typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
9020 VkStructureType sType;
9021 void* pNext;
9022 VkBool32 bufferDeviceAddress;
9023 VkBool32 bufferDeviceAddressCaptureReplay;
9024 VkBool32 bufferDeviceAddressMultiDevice;
9025 } VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
9026
9027 typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
9028
9029 typedef struct VkBufferDeviceAddressInfoEXT {
9030 VkStructureType sType;
9031 const void* pNext;
9032 VkBuffer buffer;
9033 } VkBufferDeviceAddressInfoEXT;
9034
9035 typedef struct VkBufferDeviceAddressCreateInfoEXT {
9036 VkStructureType sType;
9037 const void* pNext;
9038 VkDeviceAddress deviceAddress;
9039 } VkBufferDeviceAddressCreateInfoEXT;
9040
9041 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfoEXT* pInfo);
9042
9043 #ifndef VK_NO_PROTOTYPES
9044 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
9045 VkDevice device,
9046 const VkBufferDeviceAddressInfoEXT* pInfo);
9047 #endif
9048
9049
9050 #define VK_EXT_separate_stencil_usage 1
9051 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
9052 #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
9053 typedef struct VkImageStencilUsageCreateInfoEXT {
9054 VkStructureType sType;
9055 const void* pNext;
9056 VkImageUsageFlags stencilUsage;
9057 } VkImageStencilUsageCreateInfoEXT;
9058
9059
9060
9061 #define VK_EXT_validation_features 1
9062 #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 1
9063 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
9064
9065 typedef enum VkValidationFeatureEnableEXT {
9066 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
9067 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
9068 VK_VALIDATION_FEATURE_ENABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,
9069 VK_VALIDATION_FEATURE_ENABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,
9070 VK_VALIDATION_FEATURE_ENABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT + 1),
9071 VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
9072 } VkValidationFeatureEnableEXT;
9073
9074 typedef enum VkValidationFeatureDisableEXT {
9075 VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
9076 VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
9077 VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
9078 VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
9079 VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
9080 VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
9081 VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
9082 VK_VALIDATION_FEATURE_DISABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT,
9083 VK_VALIDATION_FEATURE_DISABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT,
9084 VK_VALIDATION_FEATURE_DISABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT + 1),
9085 VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
9086 } VkValidationFeatureDisableEXT;
9087 typedef struct VkValidationFeaturesEXT {
9088 VkStructureType sType;
9089 const void* pNext;
9090 uint32_t enabledValidationFeatureCount;
9091 const VkValidationFeatureEnableEXT* pEnabledValidationFeatures;
9092 uint32_t disabledValidationFeatureCount;
9093 const VkValidationFeatureDisableEXT* pDisabledValidationFeatures;
9094 } VkValidationFeaturesEXT;
9095
9096
9097
9098 #define VK_NV_cooperative_matrix 1
9099 #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
9100 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
9101
9102 typedef enum VkComponentTypeNV {
9103 VK_COMPONENT_TYPE_FLOAT16_NV = 0,
9104 VK_COMPONENT_TYPE_FLOAT32_NV = 1,
9105 VK_COMPONENT_TYPE_FLOAT64_NV = 2,
9106 VK_COMPONENT_TYPE_SINT8_NV = 3,
9107 VK_COMPONENT_TYPE_SINT16_NV = 4,
9108 VK_COMPONENT_TYPE_SINT32_NV = 5,
9109 VK_COMPONENT_TYPE_SINT64_NV = 6,
9110 VK_COMPONENT_TYPE_UINT8_NV = 7,
9111 VK_COMPONENT_TYPE_UINT16_NV = 8,
9112 VK_COMPONENT_TYPE_UINT32_NV = 9,
9113 VK_COMPONENT_TYPE_UINT64_NV = 10,
9114 VK_COMPONENT_TYPE_BEGIN_RANGE_NV = VK_COMPONENT_TYPE_FLOAT16_NV,
9115 VK_COMPONENT_TYPE_END_RANGE_NV = VK_COMPONENT_TYPE_UINT64_NV,
9116 VK_COMPONENT_TYPE_RANGE_SIZE_NV = (VK_COMPONENT_TYPE_UINT64_NV - VK_COMPONENT_TYPE_FLOAT16_NV + 1),
9117 VK_COMPONENT_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
9118 } VkComponentTypeNV;
9119
9120 typedef enum VkScopeNV {
9121 VK_SCOPE_DEVICE_NV = 1,
9122 VK_SCOPE_WORKGROUP_NV = 2,
9123 VK_SCOPE_SUBGROUP_NV = 3,
9124 VK_SCOPE_QUEUE_FAMILY_NV = 5,
9125 VK_SCOPE_BEGIN_RANGE_NV = VK_SCOPE_DEVICE_NV,
9126 VK_SCOPE_END_RANGE_NV = VK_SCOPE_QUEUE_FAMILY_NV,
9127 VK_SCOPE_RANGE_SIZE_NV = (VK_SCOPE_QUEUE_FAMILY_NV - VK_SCOPE_DEVICE_NV + 1),
9128 VK_SCOPE_MAX_ENUM_NV = 0x7FFFFFFF
9129 } VkScopeNV;
9130 typedef struct VkCooperativeMatrixPropertiesNV {
9131 VkStructureType sType;
9132 void* pNext;
9133 uint32_t MSize;
9134 uint32_t NSize;
9135 uint32_t KSize;
9136 VkComponentTypeNV AType;
9137 VkComponentTypeNV BType;
9138 VkComponentTypeNV CType;
9139 VkComponentTypeNV DType;
9140 VkScopeNV scope;
9141 } VkCooperativeMatrixPropertiesNV;
9142
9143 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
9144 VkStructureType sType;
9145 void* pNext;
9146 VkBool32 cooperativeMatrix;
9147 VkBool32 cooperativeMatrixRobustBufferAccess;
9148 } VkPhysicalDeviceCooperativeMatrixFeaturesNV;
9149
9150 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
9151 VkStructureType sType;
9152 void* pNext;
9153 VkShaderStageFlags cooperativeMatrixSupportedStages;
9154 } VkPhysicalDeviceCooperativeMatrixPropertiesNV;
9155
9156 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
9157
9158 #ifndef VK_NO_PROTOTYPES
9159 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
9160 VkPhysicalDevice physicalDevice,
9161 uint32_t* pPropertyCount,
9162 VkCooperativeMatrixPropertiesNV* pProperties);
9163 #endif
9164
9165
9166 #define VK_EXT_ycbcr_image_arrays 1
9167 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
9168 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
9169 typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
9170 VkStructureType sType;
9171 void* pNext;
9172 VkBool32 ycbcrImageArrays;
9173 } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
9174
9175
9176
9177 #define VK_EXT_host_query_reset 1
9178 #define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
9179 #define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
9180 typedef struct VkPhysicalDeviceHostQueryResetFeaturesEXT {
9181 VkStructureType sType;
9182 void* pNext;
9183 VkBool32 hostQueryReset;
9184 } VkPhysicalDeviceHostQueryResetFeaturesEXT;
9185
9186 typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
9187
9188 #ifndef VK_NO_PROTOTYPES
9189 VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
9190 VkDevice device,
9191 VkQueryPool queryPool,
9192 uint32_t firstQuery,
9193 uint32_t queryCount);
9194 #endif
9195
9196 #ifdef __cplusplus
9197 }
9198 #endif
9199
9200 #endif