vulkan_sys/
vulkan_core.rs

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