1 use crate::vk::aliases::*;
2 use crate::vk::bitflags::*;
3 use crate::vk::definitions::*;
4 use crate::vk::enums::*;
5 use crate::vk::platform_types::*;
6 use std::os::raw::*;
7 impl KhrSurfaceFn {
name() -> &'static ::std::ffi::CStr8     pub fn name() -> &'static ::std::ffi::CStr {
9         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_surface\0") }
10     }
11     pub const SPEC_VERSION: u32 = 25u32;
12 }
13 #[allow(non_camel_case_types)]
14 pub type PFN_vkDestroySurfaceKHR = unsafe extern "system" fn(
15     instance: Instance,
16     surface: SurfaceKHR,
17     p_allocator: *const AllocationCallbacks,
18 );
19 #[allow(non_camel_case_types)]
20 pub type PFN_vkGetPhysicalDeviceSurfaceSupportKHR = unsafe extern "system" fn(
21     physical_device: PhysicalDevice,
22     queue_family_index: u32,
23     surface: SurfaceKHR,
24     p_supported: *mut Bool32,
25 ) -> Result;
26 #[allow(non_camel_case_types)]
27 pub type PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = unsafe extern "system" fn(
28     physical_device: PhysicalDevice,
29     surface: SurfaceKHR,
30     p_surface_capabilities: *mut SurfaceCapabilitiesKHR,
31 ) -> Result;
32 #[allow(non_camel_case_types)]
33 pub type PFN_vkGetPhysicalDeviceSurfaceFormatsKHR = unsafe extern "system" fn(
34     physical_device: PhysicalDevice,
35     surface: SurfaceKHR,
36     p_surface_format_count: *mut u32,
37     p_surface_formats: *mut SurfaceFormatKHR,
38 ) -> Result;
39 #[allow(non_camel_case_types)]
40 pub type PFN_vkGetPhysicalDeviceSurfacePresentModesKHR = unsafe extern "system" fn(
41     physical_device: PhysicalDevice,
42     surface: SurfaceKHR,
43     p_present_mode_count: *mut u32,
44     p_present_modes: *mut PresentModeKHR,
45 ) -> Result;
46 #[derive(Clone)]
47 pub struct KhrSurfaceFn {
48     pub destroy_surface_khr: PFN_vkDestroySurfaceKHR,
49     pub get_physical_device_surface_support_khr: PFN_vkGetPhysicalDeviceSurfaceSupportKHR,
50     pub get_physical_device_surface_capabilities_khr: PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR,
51     pub get_physical_device_surface_formats_khr: PFN_vkGetPhysicalDeviceSurfaceFormatsKHR,
52     pub get_physical_device_surface_present_modes_khr:
53         PFN_vkGetPhysicalDeviceSurfacePresentModesKHR,
54 }
55 unsafe impl Send for KhrSurfaceFn {}
56 unsafe impl Sync for KhrSurfaceFn {}
57 impl KhrSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,58     pub fn load<F>(mut _f: F) -> Self
59     where
60         F: FnMut(&::std::ffi::CStr) -> *const c_void,
61     {
62         Self {
63             destroy_surface_khr: unsafe {
64                 unsafe extern "system" fn destroy_surface_khr(
65                     _instance: Instance,
66                     _surface: SurfaceKHR,
67                     _p_allocator: *const AllocationCallbacks,
68                 ) {
69                     panic!(concat!("Unable to load ", stringify!(destroy_surface_khr)))
70                 }
71                 let cname =
72                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroySurfaceKHR\0");
73                 let val = _f(cname);
74                 if val.is_null() {
75                     destroy_surface_khr
76                 } else {
77                     ::std::mem::transmute(val)
78                 }
79             },
80             get_physical_device_surface_support_khr: unsafe {
81                 unsafe extern "system" fn get_physical_device_surface_support_khr(
82                     _physical_device: PhysicalDevice,
83                     _queue_family_index: u32,
84                     _surface: SurfaceKHR,
85                     _p_supported: *mut Bool32,
86                 ) -> Result {
87                     panic!(concat!(
88                         "Unable to load ",
89                         stringify!(get_physical_device_surface_support_khr)
90                     ))
91                 }
92                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
93                     b"vkGetPhysicalDeviceSurfaceSupportKHR\0",
94                 );
95                 let val = _f(cname);
96                 if val.is_null() {
97                     get_physical_device_surface_support_khr
98                 } else {
99                     ::std::mem::transmute(val)
100                 }
101             },
102             get_physical_device_surface_capabilities_khr: unsafe {
103                 unsafe extern "system" fn get_physical_device_surface_capabilities_khr(
104                     _physical_device: PhysicalDevice,
105                     _surface: SurfaceKHR,
106                     _p_surface_capabilities: *mut SurfaceCapabilitiesKHR,
107                 ) -> Result {
108                     panic!(concat!(
109                         "Unable to load ",
110                         stringify!(get_physical_device_surface_capabilities_khr)
111                     ))
112                 }
113                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
114                     b"vkGetPhysicalDeviceSurfaceCapabilitiesKHR\0",
115                 );
116                 let val = _f(cname);
117                 if val.is_null() {
118                     get_physical_device_surface_capabilities_khr
119                 } else {
120                     ::std::mem::transmute(val)
121                 }
122             },
123             get_physical_device_surface_formats_khr: unsafe {
124                 unsafe extern "system" fn get_physical_device_surface_formats_khr(
125                     _physical_device: PhysicalDevice,
126                     _surface: SurfaceKHR,
127                     _p_surface_format_count: *mut u32,
128                     _p_surface_formats: *mut SurfaceFormatKHR,
129                 ) -> Result {
130                     panic!(concat!(
131                         "Unable to load ",
132                         stringify!(get_physical_device_surface_formats_khr)
133                     ))
134                 }
135                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
136                     b"vkGetPhysicalDeviceSurfaceFormatsKHR\0",
137                 );
138                 let val = _f(cname);
139                 if val.is_null() {
140                     get_physical_device_surface_formats_khr
141                 } else {
142                     ::std::mem::transmute(val)
143                 }
144             },
145             get_physical_device_surface_present_modes_khr: unsafe {
146                 unsafe extern "system" fn get_physical_device_surface_present_modes_khr(
147                     _physical_device: PhysicalDevice,
148                     _surface: SurfaceKHR,
149                     _p_present_mode_count: *mut u32,
150                     _p_present_modes: *mut PresentModeKHR,
151                 ) -> Result {
152                     panic!(concat!(
153                         "Unable to load ",
154                         stringify!(get_physical_device_surface_present_modes_khr)
155                     ))
156                 }
157                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
158                     b"vkGetPhysicalDeviceSurfacePresentModesKHR\0",
159                 );
160                 let val = _f(cname);
161                 if val.is_null() {
162                     get_physical_device_surface_present_modes_khr
163                 } else {
164                     ::std::mem::transmute(val)
165                 }
166             },
167         }
168     }
169     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroySurfaceKHR.html>"]
destroy_surface_khr( &self, instance: Instance, surface: SurfaceKHR, p_allocator: *const AllocationCallbacks, )170     pub unsafe fn destroy_surface_khr(
171         &self,
172         instance: Instance,
173         surface: SurfaceKHR,
174         p_allocator: *const AllocationCallbacks,
175     ) {
176         (self.destroy_surface_khr)(instance, surface, p_allocator)
177     }
178     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceSurfaceSupportKHR.html>"]
get_physical_device_surface_support_khr( &self, physical_device: PhysicalDevice, queue_family_index: u32, surface: SurfaceKHR, p_supported: *mut Bool32, ) -> Result179     pub unsafe fn get_physical_device_surface_support_khr(
180         &self,
181         physical_device: PhysicalDevice,
182         queue_family_index: u32,
183         surface: SurfaceKHR,
184         p_supported: *mut Bool32,
185     ) -> Result {
186         (self.get_physical_device_surface_support_khr)(
187             physical_device,
188             queue_family_index,
189             surface,
190             p_supported,
191         )
192     }
193     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceSurfaceCapabilitiesKHR.html>"]
get_physical_device_surface_capabilities_khr( &self, physical_device: PhysicalDevice, surface: SurfaceKHR, p_surface_capabilities: *mut SurfaceCapabilitiesKHR, ) -> Result194     pub unsafe fn get_physical_device_surface_capabilities_khr(
195         &self,
196         physical_device: PhysicalDevice,
197         surface: SurfaceKHR,
198         p_surface_capabilities: *mut SurfaceCapabilitiesKHR,
199     ) -> Result {
200         (self.get_physical_device_surface_capabilities_khr)(
201             physical_device,
202             surface,
203             p_surface_capabilities,
204         )
205     }
206     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceSurfaceFormatsKHR.html>"]
get_physical_device_surface_formats_khr( &self, physical_device: PhysicalDevice, surface: SurfaceKHR, p_surface_format_count: *mut u32, p_surface_formats: *mut SurfaceFormatKHR, ) -> Result207     pub unsafe fn get_physical_device_surface_formats_khr(
208         &self,
209         physical_device: PhysicalDevice,
210         surface: SurfaceKHR,
211         p_surface_format_count: *mut u32,
212         p_surface_formats: *mut SurfaceFormatKHR,
213     ) -> Result {
214         (self.get_physical_device_surface_formats_khr)(
215             physical_device,
216             surface,
217             p_surface_format_count,
218             p_surface_formats,
219         )
220     }
221     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceSurfacePresentModesKHR.html>"]
get_physical_device_surface_present_modes_khr( &self, physical_device: PhysicalDevice, surface: SurfaceKHR, p_present_mode_count: *mut u32, p_present_modes: *mut PresentModeKHR, ) -> Result222     pub unsafe fn get_physical_device_surface_present_modes_khr(
223         &self,
224         physical_device: PhysicalDevice,
225         surface: SurfaceKHR,
226         p_present_mode_count: *mut u32,
227         p_present_modes: *mut PresentModeKHR,
228     ) -> Result {
229         (self.get_physical_device_surface_present_modes_khr)(
230             physical_device,
231             surface,
232             p_present_mode_count,
233             p_present_modes,
234         )
235     }
236 }
237 #[doc = "Generated from 'VK_KHR_surface'"]
238 impl ObjectType {
239     pub const SURFACE_KHR: Self = Self(1_000_000_000);
240 }
241 #[doc = "Generated from 'VK_KHR_surface'"]
242 impl Result {
243     pub const ERROR_SURFACE_LOST_KHR: Self = Self(-1_000_000_000);
244     pub const ERROR_NATIVE_WINDOW_IN_USE_KHR: Self = Self(-1_000_000_001);
245 }
246 impl KhrSwapchainFn {
name() -> &'static ::std::ffi::CStr247     pub fn name() -> &'static ::std::ffi::CStr {
248         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_swapchain\0") }
249     }
250     pub const SPEC_VERSION: u32 = 70u32;
251 }
252 #[allow(non_camel_case_types)]
253 pub type PFN_vkCreateSwapchainKHR = unsafe extern "system" fn(
254     device: Device,
255     p_create_info: *const SwapchainCreateInfoKHR,
256     p_allocator: *const AllocationCallbacks,
257     p_swapchain: *mut SwapchainKHR,
258 ) -> Result;
259 #[allow(non_camel_case_types)]
260 pub type PFN_vkDestroySwapchainKHR = unsafe extern "system" fn(
261     device: Device,
262     swapchain: SwapchainKHR,
263     p_allocator: *const AllocationCallbacks,
264 );
265 #[allow(non_camel_case_types)]
266 pub type PFN_vkGetSwapchainImagesKHR = unsafe extern "system" fn(
267     device: Device,
268     swapchain: SwapchainKHR,
269     p_swapchain_image_count: *mut u32,
270     p_swapchain_images: *mut Image,
271 ) -> Result;
272 #[allow(non_camel_case_types)]
273 pub type PFN_vkAcquireNextImageKHR = unsafe extern "system" fn(
274     device: Device,
275     swapchain: SwapchainKHR,
276     timeout: u64,
277     semaphore: Semaphore,
278     fence: Fence,
279     p_image_index: *mut u32,
280 ) -> Result;
281 #[allow(non_camel_case_types)]
282 pub type PFN_vkQueuePresentKHR =
283     unsafe extern "system" fn(queue: Queue, p_present_info: *const PresentInfoKHR) -> Result;
284 #[allow(non_camel_case_types)]
285 pub type PFN_vkGetDeviceGroupPresentCapabilitiesKHR = unsafe extern "system" fn(
286     device: Device,
287     p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR,
288 ) -> Result;
289 #[allow(non_camel_case_types)]
290 pub type PFN_vkGetDeviceGroupSurfacePresentModesKHR = unsafe extern "system" fn(
291     device: Device,
292     surface: SurfaceKHR,
293     p_modes: *mut DeviceGroupPresentModeFlagsKHR,
294 ) -> Result;
295 #[allow(non_camel_case_types)]
296 pub type PFN_vkGetPhysicalDevicePresentRectanglesKHR = unsafe extern "system" fn(
297     physical_device: PhysicalDevice,
298     surface: SurfaceKHR,
299     p_rect_count: *mut u32,
300     p_rects: *mut Rect2D,
301 ) -> Result;
302 #[allow(non_camel_case_types)]
303 pub type PFN_vkAcquireNextImage2KHR = unsafe extern "system" fn(
304     device: Device,
305     p_acquire_info: *const AcquireNextImageInfoKHR,
306     p_image_index: *mut u32,
307 ) -> Result;
308 #[derive(Clone)]
309 pub struct KhrSwapchainFn {
310     pub create_swapchain_khr: PFN_vkCreateSwapchainKHR,
311     pub destroy_swapchain_khr: PFN_vkDestroySwapchainKHR,
312     pub get_swapchain_images_khr: PFN_vkGetSwapchainImagesKHR,
313     pub acquire_next_image_khr: PFN_vkAcquireNextImageKHR,
314     pub queue_present_khr: PFN_vkQueuePresentKHR,
315     pub get_device_group_present_capabilities_khr: PFN_vkGetDeviceGroupPresentCapabilitiesKHR,
316     pub get_device_group_surface_present_modes_khr: PFN_vkGetDeviceGroupSurfacePresentModesKHR,
317     pub get_physical_device_present_rectangles_khr: PFN_vkGetPhysicalDevicePresentRectanglesKHR,
318     pub acquire_next_image2_khr: PFN_vkAcquireNextImage2KHR,
319 }
320 unsafe impl Send for KhrSwapchainFn {}
321 unsafe impl Sync for KhrSwapchainFn {}
322 impl KhrSwapchainFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,323     pub fn load<F>(mut _f: F) -> Self
324     where
325         F: FnMut(&::std::ffi::CStr) -> *const c_void,
326     {
327         Self {
328             create_swapchain_khr: unsafe {
329                 unsafe extern "system" fn create_swapchain_khr(
330                     _device: Device,
331                     _p_create_info: *const SwapchainCreateInfoKHR,
332                     _p_allocator: *const AllocationCallbacks,
333                     _p_swapchain: *mut SwapchainKHR,
334                 ) -> Result {
335                     panic!(concat!("Unable to load ", stringify!(create_swapchain_khr)))
336                 }
337                 let cname =
338                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateSwapchainKHR\0");
339                 let val = _f(cname);
340                 if val.is_null() {
341                     create_swapchain_khr
342                 } else {
343                     ::std::mem::transmute(val)
344                 }
345             },
346             destroy_swapchain_khr: unsafe {
347                 unsafe extern "system" fn destroy_swapchain_khr(
348                     _device: Device,
349                     _swapchain: SwapchainKHR,
350                     _p_allocator: *const AllocationCallbacks,
351                 ) {
352                     panic!(concat!(
353                         "Unable to load ",
354                         stringify!(destroy_swapchain_khr)
355                     ))
356                 }
357                 let cname =
358                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroySwapchainKHR\0");
359                 let val = _f(cname);
360                 if val.is_null() {
361                     destroy_swapchain_khr
362                 } else {
363                     ::std::mem::transmute(val)
364                 }
365             },
366             get_swapchain_images_khr: unsafe {
367                 unsafe extern "system" fn get_swapchain_images_khr(
368                     _device: Device,
369                     _swapchain: SwapchainKHR,
370                     _p_swapchain_image_count: *mut u32,
371                     _p_swapchain_images: *mut Image,
372                 ) -> Result {
373                     panic!(concat!(
374                         "Unable to load ",
375                         stringify!(get_swapchain_images_khr)
376                     ))
377                 }
378                 let cname =
379                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainImagesKHR\0");
380                 let val = _f(cname);
381                 if val.is_null() {
382                     get_swapchain_images_khr
383                 } else {
384                     ::std::mem::transmute(val)
385                 }
386             },
387             acquire_next_image_khr: unsafe {
388                 unsafe extern "system" fn acquire_next_image_khr(
389                     _device: Device,
390                     _swapchain: SwapchainKHR,
391                     _timeout: u64,
392                     _semaphore: Semaphore,
393                     _fence: Fence,
394                     _p_image_index: *mut u32,
395                 ) -> Result {
396                     panic!(concat!(
397                         "Unable to load ",
398                         stringify!(acquire_next_image_khr)
399                     ))
400                 }
401                 let cname =
402                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImageKHR\0");
403                 let val = _f(cname);
404                 if val.is_null() {
405                     acquire_next_image_khr
406                 } else {
407                     ::std::mem::transmute(val)
408                 }
409             },
410             queue_present_khr: unsafe {
411                 unsafe extern "system" fn queue_present_khr(
412                     _queue: Queue,
413                     _p_present_info: *const PresentInfoKHR,
414                 ) -> Result {
415                     panic!(concat!("Unable to load ", stringify!(queue_present_khr)))
416                 }
417                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkQueuePresentKHR\0");
418                 let val = _f(cname);
419                 if val.is_null() {
420                     queue_present_khr
421                 } else {
422                     ::std::mem::transmute(val)
423                 }
424             },
425             get_device_group_present_capabilities_khr: unsafe {
426                 unsafe extern "system" fn get_device_group_present_capabilities_khr(
427                     _device: Device,
428                     _p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR,
429                 ) -> Result {
430                     panic!(concat!(
431                         "Unable to load ",
432                         stringify!(get_device_group_present_capabilities_khr)
433                     ))
434                 }
435                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
436                     b"vkGetDeviceGroupPresentCapabilitiesKHR\0",
437                 );
438                 let val = _f(cname);
439                 if val.is_null() {
440                     get_device_group_present_capabilities_khr
441                 } else {
442                     ::std::mem::transmute(val)
443                 }
444             },
445             get_device_group_surface_present_modes_khr: unsafe {
446                 unsafe extern "system" fn get_device_group_surface_present_modes_khr(
447                     _device: Device,
448                     _surface: SurfaceKHR,
449                     _p_modes: *mut DeviceGroupPresentModeFlagsKHR,
450                 ) -> Result {
451                     panic!(concat!(
452                         "Unable to load ",
453                         stringify!(get_device_group_surface_present_modes_khr)
454                     ))
455                 }
456                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
457                     b"vkGetDeviceGroupSurfacePresentModesKHR\0",
458                 );
459                 let val = _f(cname);
460                 if val.is_null() {
461                     get_device_group_surface_present_modes_khr
462                 } else {
463                     ::std::mem::transmute(val)
464                 }
465             },
466             get_physical_device_present_rectangles_khr: unsafe {
467                 unsafe extern "system" fn get_physical_device_present_rectangles_khr(
468                     _physical_device: PhysicalDevice,
469                     _surface: SurfaceKHR,
470                     _p_rect_count: *mut u32,
471                     _p_rects: *mut Rect2D,
472                 ) -> Result {
473                     panic!(concat!(
474                         "Unable to load ",
475                         stringify!(get_physical_device_present_rectangles_khr)
476                     ))
477                 }
478                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
479                     b"vkGetPhysicalDevicePresentRectanglesKHR\0",
480                 );
481                 let val = _f(cname);
482                 if val.is_null() {
483                     get_physical_device_present_rectangles_khr
484                 } else {
485                     ::std::mem::transmute(val)
486                 }
487             },
488             acquire_next_image2_khr: unsafe {
489                 unsafe extern "system" fn acquire_next_image2_khr(
490                     _device: Device,
491                     _p_acquire_info: *const AcquireNextImageInfoKHR,
492                     _p_image_index: *mut u32,
493                 ) -> Result {
494                     panic!(concat!(
495                         "Unable to load ",
496                         stringify!(acquire_next_image2_khr)
497                     ))
498                 }
499                 let cname =
500                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImage2KHR\0");
501                 let val = _f(cname);
502                 if val.is_null() {
503                     acquire_next_image2_khr
504                 } else {
505                     ::std::mem::transmute(val)
506                 }
507             },
508         }
509     }
510     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateSwapchainKHR.html>"]
create_swapchain_khr( &self, device: Device, p_create_info: *const SwapchainCreateInfoKHR, p_allocator: *const AllocationCallbacks, p_swapchain: *mut SwapchainKHR, ) -> Result511     pub unsafe fn create_swapchain_khr(
512         &self,
513         device: Device,
514         p_create_info: *const SwapchainCreateInfoKHR,
515         p_allocator: *const AllocationCallbacks,
516         p_swapchain: *mut SwapchainKHR,
517     ) -> Result {
518         (self.create_swapchain_khr)(device, p_create_info, p_allocator, p_swapchain)
519     }
520     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroySwapchainKHR.html>"]
destroy_swapchain_khr( &self, device: Device, swapchain: SwapchainKHR, p_allocator: *const AllocationCallbacks, )521     pub unsafe fn destroy_swapchain_khr(
522         &self,
523         device: Device,
524         swapchain: SwapchainKHR,
525         p_allocator: *const AllocationCallbacks,
526     ) {
527         (self.destroy_swapchain_khr)(device, swapchain, p_allocator)
528     }
529     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetSwapchainImagesKHR.html>"]
get_swapchain_images_khr( &self, device: Device, swapchain: SwapchainKHR, p_swapchain_image_count: *mut u32, p_swapchain_images: *mut Image, ) -> Result530     pub unsafe fn get_swapchain_images_khr(
531         &self,
532         device: Device,
533         swapchain: SwapchainKHR,
534         p_swapchain_image_count: *mut u32,
535         p_swapchain_images: *mut Image,
536     ) -> Result {
537         (self.get_swapchain_images_khr)(
538             device,
539             swapchain,
540             p_swapchain_image_count,
541             p_swapchain_images,
542         )
543     }
544     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkAcquireNextImageKHR.html>"]
acquire_next_image_khr( &self, device: Device, swapchain: SwapchainKHR, timeout: u64, semaphore: Semaphore, fence: Fence, p_image_index: *mut u32, ) -> Result545     pub unsafe fn acquire_next_image_khr(
546         &self,
547         device: Device,
548         swapchain: SwapchainKHR,
549         timeout: u64,
550         semaphore: Semaphore,
551         fence: Fence,
552         p_image_index: *mut u32,
553     ) -> Result {
554         (self.acquire_next_image_khr)(device, swapchain, timeout, semaphore, fence, p_image_index)
555     }
556     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkQueuePresentKHR.html>"]
queue_present_khr( &self, queue: Queue, p_present_info: *const PresentInfoKHR, ) -> Result557     pub unsafe fn queue_present_khr(
558         &self,
559         queue: Queue,
560         p_present_info: *const PresentInfoKHR,
561     ) -> Result {
562         (self.queue_present_khr)(queue, p_present_info)
563     }
564     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeviceGroupPresentCapabilitiesKHR.html>"]
get_device_group_present_capabilities_khr( &self, device: Device, p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR, ) -> Result565     pub unsafe fn get_device_group_present_capabilities_khr(
566         &self,
567         device: Device,
568         p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR,
569     ) -> Result {
570         (self.get_device_group_present_capabilities_khr)(
571             device,
572             p_device_group_present_capabilities,
573         )
574     }
575     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeviceGroupSurfacePresentModesKHR.html>"]
get_device_group_surface_present_modes_khr( &self, device: Device, surface: SurfaceKHR, p_modes: *mut DeviceGroupPresentModeFlagsKHR, ) -> Result576     pub unsafe fn get_device_group_surface_present_modes_khr(
577         &self,
578         device: Device,
579         surface: SurfaceKHR,
580         p_modes: *mut DeviceGroupPresentModeFlagsKHR,
581     ) -> Result {
582         (self.get_device_group_surface_present_modes_khr)(device, surface, p_modes)
583     }
584     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDevicePresentRectanglesKHR.html>"]
get_physical_device_present_rectangles_khr( &self, physical_device: PhysicalDevice, surface: SurfaceKHR, p_rect_count: *mut u32, p_rects: *mut Rect2D, ) -> Result585     pub unsafe fn get_physical_device_present_rectangles_khr(
586         &self,
587         physical_device: PhysicalDevice,
588         surface: SurfaceKHR,
589         p_rect_count: *mut u32,
590         p_rects: *mut Rect2D,
591     ) -> Result {
592         (self.get_physical_device_present_rectangles_khr)(
593             physical_device,
594             surface,
595             p_rect_count,
596             p_rects,
597         )
598     }
599     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkAcquireNextImage2KHR.html>"]
acquire_next_image2_khr( &self, device: Device, p_acquire_info: *const AcquireNextImageInfoKHR, p_image_index: *mut u32, ) -> Result600     pub unsafe fn acquire_next_image2_khr(
601         &self,
602         device: Device,
603         p_acquire_info: *const AcquireNextImageInfoKHR,
604         p_image_index: *mut u32,
605     ) -> Result {
606         (self.acquire_next_image2_khr)(device, p_acquire_info, p_image_index)
607     }
608 }
609 #[doc = "Generated from 'VK_KHR_swapchain'"]
610 impl ImageLayout {
611     pub const PRESENT_SRC_KHR: Self = Self(1_000_001_002);
612 }
613 #[doc = "Generated from 'VK_KHR_swapchain'"]
614 impl ObjectType {
615     pub const SWAPCHAIN_KHR: Self = Self(1_000_001_000);
616 }
617 #[doc = "Generated from 'VK_KHR_swapchain'"]
618 impl Result {
619     pub const SUBOPTIMAL_KHR: Self = Self(1_000_001_003);
620     pub const ERROR_OUT_OF_DATE_KHR: Self = Self(-1_000_001_004);
621 }
622 #[doc = "Generated from 'VK_KHR_swapchain'"]
623 impl StructureType {
624     pub const SWAPCHAIN_CREATE_INFO_KHR: Self = Self(1_000_001_000);
625     pub const PRESENT_INFO_KHR: Self = Self(1_000_001_001);
626     pub const DEVICE_GROUP_PRESENT_CAPABILITIES_KHR: Self = Self(1_000_060_007);
627     pub const IMAGE_SWAPCHAIN_CREATE_INFO_KHR: Self = Self(1_000_060_008);
628     pub const BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: Self = Self(1_000_060_009);
629     pub const ACQUIRE_NEXT_IMAGE_INFO_KHR: Self = Self(1_000_060_010);
630     pub const DEVICE_GROUP_PRESENT_INFO_KHR: Self = Self(1_000_060_011);
631     pub const DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: Self = Self(1_000_060_012);
632 }
633 #[doc = "Generated from 'VK_KHR_swapchain'"]
634 impl SwapchainCreateFlagsKHR {
635     #[doc = "Allow images with VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT"]
636     pub const SPLIT_INSTANCE_BIND_REGIONS: Self = Self(0b1);
637     #[doc = "Swapchain is protected"]
638     pub const PROTECTED: Self = Self(0b10);
639 }
640 impl KhrDisplayFn {
name() -> &'static ::std::ffi::CStr641     pub fn name() -> &'static ::std::ffi::CStr {
642         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_display\0") }
643     }
644     pub const SPEC_VERSION: u32 = 23u32;
645 }
646 #[allow(non_camel_case_types)]
647 pub type PFN_vkGetPhysicalDeviceDisplayPropertiesKHR = unsafe extern "system" fn(
648     physical_device: PhysicalDevice,
649     p_property_count: *mut u32,
650     p_properties: *mut DisplayPropertiesKHR,
651 ) -> Result;
652 #[allow(non_camel_case_types)]
653 pub type PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = unsafe extern "system" fn(
654     physical_device: PhysicalDevice,
655     p_property_count: *mut u32,
656     p_properties: *mut DisplayPlanePropertiesKHR,
657 ) -> Result;
658 #[allow(non_camel_case_types)]
659 pub type PFN_vkGetDisplayPlaneSupportedDisplaysKHR = unsafe extern "system" fn(
660     physical_device: PhysicalDevice,
661     plane_index: u32,
662     p_display_count: *mut u32,
663     p_displays: *mut DisplayKHR,
664 ) -> Result;
665 #[allow(non_camel_case_types)]
666 pub type PFN_vkGetDisplayModePropertiesKHR = unsafe extern "system" fn(
667     physical_device: PhysicalDevice,
668     display: DisplayKHR,
669     p_property_count: *mut u32,
670     p_properties: *mut DisplayModePropertiesKHR,
671 ) -> Result;
672 #[allow(non_camel_case_types)]
673 pub type PFN_vkCreateDisplayModeKHR = unsafe extern "system" fn(
674     physical_device: PhysicalDevice,
675     display: DisplayKHR,
676     p_create_info: *const DisplayModeCreateInfoKHR,
677     p_allocator: *const AllocationCallbacks,
678     p_mode: *mut DisplayModeKHR,
679 ) -> Result;
680 #[allow(non_camel_case_types)]
681 pub type PFN_vkGetDisplayPlaneCapabilitiesKHR = unsafe extern "system" fn(
682     physical_device: PhysicalDevice,
683     mode: DisplayModeKHR,
684     plane_index: u32,
685     p_capabilities: *mut DisplayPlaneCapabilitiesKHR,
686 ) -> Result;
687 #[allow(non_camel_case_types)]
688 pub type PFN_vkCreateDisplayPlaneSurfaceKHR = unsafe extern "system" fn(
689     instance: Instance,
690     p_create_info: *const DisplaySurfaceCreateInfoKHR,
691     p_allocator: *const AllocationCallbacks,
692     p_surface: *mut SurfaceKHR,
693 ) -> Result;
694 #[derive(Clone)]
695 pub struct KhrDisplayFn {
696     pub get_physical_device_display_properties_khr: PFN_vkGetPhysicalDeviceDisplayPropertiesKHR,
697     pub get_physical_device_display_plane_properties_khr:
698         PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR,
699     pub get_display_plane_supported_displays_khr: PFN_vkGetDisplayPlaneSupportedDisplaysKHR,
700     pub get_display_mode_properties_khr: PFN_vkGetDisplayModePropertiesKHR,
701     pub create_display_mode_khr: PFN_vkCreateDisplayModeKHR,
702     pub get_display_plane_capabilities_khr: PFN_vkGetDisplayPlaneCapabilitiesKHR,
703     pub create_display_plane_surface_khr: PFN_vkCreateDisplayPlaneSurfaceKHR,
704 }
705 unsafe impl Send for KhrDisplayFn {}
706 unsafe impl Sync for KhrDisplayFn {}
707 impl KhrDisplayFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,708     pub fn load<F>(mut _f: F) -> Self
709     where
710         F: FnMut(&::std::ffi::CStr) -> *const c_void,
711     {
712         Self {
713             get_physical_device_display_properties_khr: unsafe {
714                 unsafe extern "system" fn get_physical_device_display_properties_khr(
715                     _physical_device: PhysicalDevice,
716                     _p_property_count: *mut u32,
717                     _p_properties: *mut DisplayPropertiesKHR,
718                 ) -> Result {
719                     panic!(concat!(
720                         "Unable to load ",
721                         stringify!(get_physical_device_display_properties_khr)
722                     ))
723                 }
724                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
725                     b"vkGetPhysicalDeviceDisplayPropertiesKHR\0",
726                 );
727                 let val = _f(cname);
728                 if val.is_null() {
729                     get_physical_device_display_properties_khr
730                 } else {
731                     ::std::mem::transmute(val)
732                 }
733             },
734             get_physical_device_display_plane_properties_khr: unsafe {
735                 unsafe extern "system" fn get_physical_device_display_plane_properties_khr(
736                     _physical_device: PhysicalDevice,
737                     _p_property_count: *mut u32,
738                     _p_properties: *mut DisplayPlanePropertiesKHR,
739                 ) -> Result {
740                     panic!(concat!(
741                         "Unable to load ",
742                         stringify!(get_physical_device_display_plane_properties_khr)
743                     ))
744                 }
745                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
746                     b"vkGetPhysicalDeviceDisplayPlanePropertiesKHR\0",
747                 );
748                 let val = _f(cname);
749                 if val.is_null() {
750                     get_physical_device_display_plane_properties_khr
751                 } else {
752                     ::std::mem::transmute(val)
753                 }
754             },
755             get_display_plane_supported_displays_khr: unsafe {
756                 unsafe extern "system" fn get_display_plane_supported_displays_khr(
757                     _physical_device: PhysicalDevice,
758                     _plane_index: u32,
759                     _p_display_count: *mut u32,
760                     _p_displays: *mut DisplayKHR,
761                 ) -> Result {
762                     panic!(concat!(
763                         "Unable to load ",
764                         stringify!(get_display_plane_supported_displays_khr)
765                     ))
766                 }
767                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
768                     b"vkGetDisplayPlaneSupportedDisplaysKHR\0",
769                 );
770                 let val = _f(cname);
771                 if val.is_null() {
772                     get_display_plane_supported_displays_khr
773                 } else {
774                     ::std::mem::transmute(val)
775                 }
776             },
777             get_display_mode_properties_khr: unsafe {
778                 unsafe extern "system" fn get_display_mode_properties_khr(
779                     _physical_device: PhysicalDevice,
780                     _display: DisplayKHR,
781                     _p_property_count: *mut u32,
782                     _p_properties: *mut DisplayModePropertiesKHR,
783                 ) -> Result {
784                     panic!(concat!(
785                         "Unable to load ",
786                         stringify!(get_display_mode_properties_khr)
787                     ))
788                 }
789                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
790                     b"vkGetDisplayModePropertiesKHR\0",
791                 );
792                 let val = _f(cname);
793                 if val.is_null() {
794                     get_display_mode_properties_khr
795                 } else {
796                     ::std::mem::transmute(val)
797                 }
798             },
799             create_display_mode_khr: unsafe {
800                 unsafe extern "system" fn create_display_mode_khr(
801                     _physical_device: PhysicalDevice,
802                     _display: DisplayKHR,
803                     _p_create_info: *const DisplayModeCreateInfoKHR,
804                     _p_allocator: *const AllocationCallbacks,
805                     _p_mode: *mut DisplayModeKHR,
806                 ) -> Result {
807                     panic!(concat!(
808                         "Unable to load ",
809                         stringify!(create_display_mode_khr)
810                     ))
811                 }
812                 let cname =
813                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateDisplayModeKHR\0");
814                 let val = _f(cname);
815                 if val.is_null() {
816                     create_display_mode_khr
817                 } else {
818                     ::std::mem::transmute(val)
819                 }
820             },
821             get_display_plane_capabilities_khr: unsafe {
822                 unsafe extern "system" fn get_display_plane_capabilities_khr(
823                     _physical_device: PhysicalDevice,
824                     _mode: DisplayModeKHR,
825                     _plane_index: u32,
826                     _p_capabilities: *mut DisplayPlaneCapabilitiesKHR,
827                 ) -> Result {
828                     panic!(concat!(
829                         "Unable to load ",
830                         stringify!(get_display_plane_capabilities_khr)
831                     ))
832                 }
833                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
834                     b"vkGetDisplayPlaneCapabilitiesKHR\0",
835                 );
836                 let val = _f(cname);
837                 if val.is_null() {
838                     get_display_plane_capabilities_khr
839                 } else {
840                     ::std::mem::transmute(val)
841                 }
842             },
843             create_display_plane_surface_khr: unsafe {
844                 unsafe extern "system" fn create_display_plane_surface_khr(
845                     _instance: Instance,
846                     _p_create_info: *const DisplaySurfaceCreateInfoKHR,
847                     _p_allocator: *const AllocationCallbacks,
848                     _p_surface: *mut SurfaceKHR,
849                 ) -> Result {
850                     panic!(concat!(
851                         "Unable to load ",
852                         stringify!(create_display_plane_surface_khr)
853                     ))
854                 }
855                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
856                     b"vkCreateDisplayPlaneSurfaceKHR\0",
857                 );
858                 let val = _f(cname);
859                 if val.is_null() {
860                     create_display_plane_surface_khr
861                 } else {
862                     ::std::mem::transmute(val)
863                 }
864             },
865         }
866     }
867     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceDisplayPropertiesKHR.html>"]
get_physical_device_display_properties_khr( &self, physical_device: PhysicalDevice, p_property_count: *mut u32, p_properties: *mut DisplayPropertiesKHR, ) -> Result868     pub unsafe fn get_physical_device_display_properties_khr(
869         &self,
870         physical_device: PhysicalDevice,
871         p_property_count: *mut u32,
872         p_properties: *mut DisplayPropertiesKHR,
873     ) -> Result {
874         (self.get_physical_device_display_properties_khr)(
875             physical_device,
876             p_property_count,
877             p_properties,
878         )
879     }
880     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceDisplayPlanePropertiesKHR.html>"]
get_physical_device_display_plane_properties_khr( &self, physical_device: PhysicalDevice, p_property_count: *mut u32, p_properties: *mut DisplayPlanePropertiesKHR, ) -> Result881     pub unsafe fn get_physical_device_display_plane_properties_khr(
882         &self,
883         physical_device: PhysicalDevice,
884         p_property_count: *mut u32,
885         p_properties: *mut DisplayPlanePropertiesKHR,
886     ) -> Result {
887         (self.get_physical_device_display_plane_properties_khr)(
888             physical_device,
889             p_property_count,
890             p_properties,
891         )
892     }
893     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDisplayPlaneSupportedDisplaysKHR.html>"]
get_display_plane_supported_displays_khr( &self, physical_device: PhysicalDevice, plane_index: u32, p_display_count: *mut u32, p_displays: *mut DisplayKHR, ) -> Result894     pub unsafe fn get_display_plane_supported_displays_khr(
895         &self,
896         physical_device: PhysicalDevice,
897         plane_index: u32,
898         p_display_count: *mut u32,
899         p_displays: *mut DisplayKHR,
900     ) -> Result {
901         (self.get_display_plane_supported_displays_khr)(
902             physical_device,
903             plane_index,
904             p_display_count,
905             p_displays,
906         )
907     }
908     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDisplayModePropertiesKHR.html>"]
get_display_mode_properties_khr( &self, physical_device: PhysicalDevice, display: DisplayKHR, p_property_count: *mut u32, p_properties: *mut DisplayModePropertiesKHR, ) -> Result909     pub unsafe fn get_display_mode_properties_khr(
910         &self,
911         physical_device: PhysicalDevice,
912         display: DisplayKHR,
913         p_property_count: *mut u32,
914         p_properties: *mut DisplayModePropertiesKHR,
915     ) -> Result {
916         (self.get_display_mode_properties_khr)(
917             physical_device,
918             display,
919             p_property_count,
920             p_properties,
921         )
922     }
923     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateDisplayModeKHR.html>"]
create_display_mode_khr( &self, physical_device: PhysicalDevice, display: DisplayKHR, p_create_info: *const DisplayModeCreateInfoKHR, p_allocator: *const AllocationCallbacks, p_mode: *mut DisplayModeKHR, ) -> Result924     pub unsafe fn create_display_mode_khr(
925         &self,
926         physical_device: PhysicalDevice,
927         display: DisplayKHR,
928         p_create_info: *const DisplayModeCreateInfoKHR,
929         p_allocator: *const AllocationCallbacks,
930         p_mode: *mut DisplayModeKHR,
931     ) -> Result {
932         (self.create_display_mode_khr)(physical_device, display, p_create_info, p_allocator, p_mode)
933     }
934     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDisplayPlaneCapabilitiesKHR.html>"]
get_display_plane_capabilities_khr( &self, physical_device: PhysicalDevice, mode: DisplayModeKHR, plane_index: u32, p_capabilities: *mut DisplayPlaneCapabilitiesKHR, ) -> Result935     pub unsafe fn get_display_plane_capabilities_khr(
936         &self,
937         physical_device: PhysicalDevice,
938         mode: DisplayModeKHR,
939         plane_index: u32,
940         p_capabilities: *mut DisplayPlaneCapabilitiesKHR,
941     ) -> Result {
942         (self.get_display_plane_capabilities_khr)(
943             physical_device,
944             mode,
945             plane_index,
946             p_capabilities,
947         )
948     }
949     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateDisplayPlaneSurfaceKHR.html>"]
create_display_plane_surface_khr( &self, instance: Instance, p_create_info: *const DisplaySurfaceCreateInfoKHR, p_allocator: *const AllocationCallbacks, p_surface: *mut SurfaceKHR, ) -> Result950     pub unsafe fn create_display_plane_surface_khr(
951         &self,
952         instance: Instance,
953         p_create_info: *const DisplaySurfaceCreateInfoKHR,
954         p_allocator: *const AllocationCallbacks,
955         p_surface: *mut SurfaceKHR,
956     ) -> Result {
957         (self.create_display_plane_surface_khr)(instance, p_create_info, p_allocator, p_surface)
958     }
959 }
960 #[doc = "Generated from 'VK_KHR_display'"]
961 impl ObjectType {
962     pub const DISPLAY_KHR: Self = Self(1_000_002_000);
963     pub const DISPLAY_MODE_KHR: Self = Self(1_000_002_001);
964 }
965 #[doc = "Generated from 'VK_KHR_display'"]
966 impl StructureType {
967     pub const DISPLAY_MODE_CREATE_INFO_KHR: Self = Self(1_000_002_000);
968     pub const DISPLAY_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_002_001);
969 }
970 impl KhrDisplaySwapchainFn {
name() -> &'static ::std::ffi::CStr971     pub fn name() -> &'static ::std::ffi::CStr {
972         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_display_swapchain\0") }
973     }
974     pub const SPEC_VERSION: u32 = 10u32;
975 }
976 #[allow(non_camel_case_types)]
977 pub type PFN_vkCreateSharedSwapchainsKHR = unsafe extern "system" fn(
978     device: Device,
979     swapchain_count: u32,
980     p_create_infos: *const SwapchainCreateInfoKHR,
981     p_allocator: *const AllocationCallbacks,
982     p_swapchains: *mut SwapchainKHR,
983 ) -> Result;
984 #[derive(Clone)]
985 pub struct KhrDisplaySwapchainFn {
986     pub create_shared_swapchains_khr: PFN_vkCreateSharedSwapchainsKHR,
987 }
988 unsafe impl Send for KhrDisplaySwapchainFn {}
989 unsafe impl Sync for KhrDisplaySwapchainFn {}
990 impl KhrDisplaySwapchainFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,991     pub fn load<F>(mut _f: F) -> Self
992     where
993         F: FnMut(&::std::ffi::CStr) -> *const c_void,
994     {
995         Self {
996             create_shared_swapchains_khr: unsafe {
997                 unsafe extern "system" fn create_shared_swapchains_khr(
998                     _device: Device,
999                     _swapchain_count: u32,
1000                     _p_create_infos: *const SwapchainCreateInfoKHR,
1001                     _p_allocator: *const AllocationCallbacks,
1002                     _p_swapchains: *mut SwapchainKHR,
1003                 ) -> Result {
1004                     panic!(concat!(
1005                         "Unable to load ",
1006                         stringify!(create_shared_swapchains_khr)
1007                     ))
1008                 }
1009                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1010                     b"vkCreateSharedSwapchainsKHR\0",
1011                 );
1012                 let val = _f(cname);
1013                 if val.is_null() {
1014                     create_shared_swapchains_khr
1015                 } else {
1016                     ::std::mem::transmute(val)
1017                 }
1018             },
1019         }
1020     }
1021     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateSharedSwapchainsKHR.html>"]
create_shared_swapchains_khr( &self, device: Device, swapchain_count: u32, p_create_infos: *const SwapchainCreateInfoKHR, p_allocator: *const AllocationCallbacks, p_swapchains: *mut SwapchainKHR, ) -> Result1022     pub unsafe fn create_shared_swapchains_khr(
1023         &self,
1024         device: Device,
1025         swapchain_count: u32,
1026         p_create_infos: *const SwapchainCreateInfoKHR,
1027         p_allocator: *const AllocationCallbacks,
1028         p_swapchains: *mut SwapchainKHR,
1029     ) -> Result {
1030         (self.create_shared_swapchains_khr)(
1031             device,
1032             swapchain_count,
1033             p_create_infos,
1034             p_allocator,
1035             p_swapchains,
1036         )
1037     }
1038 }
1039 #[doc = "Generated from 'VK_KHR_display_swapchain'"]
1040 impl Result {
1041     pub const ERROR_INCOMPATIBLE_DISPLAY_KHR: Self = Self(-1_000_003_001);
1042 }
1043 #[doc = "Generated from 'VK_KHR_display_swapchain'"]
1044 impl StructureType {
1045     pub const DISPLAY_PRESENT_INFO_KHR: Self = Self(1_000_003_000);
1046 }
1047 impl KhrXlibSurfaceFn {
name() -> &'static ::std::ffi::CStr1048     pub fn name() -> &'static ::std::ffi::CStr {
1049         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_xlib_surface\0") }
1050     }
1051     pub const SPEC_VERSION: u32 = 6u32;
1052 }
1053 #[allow(non_camel_case_types)]
1054 pub type PFN_vkCreateXlibSurfaceKHR = unsafe extern "system" fn(
1055     instance: Instance,
1056     p_create_info: *const XlibSurfaceCreateInfoKHR,
1057     p_allocator: *const AllocationCallbacks,
1058     p_surface: *mut SurfaceKHR,
1059 ) -> Result;
1060 #[allow(non_camel_case_types)]
1061 pub type PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR = unsafe extern "system" fn(
1062     physical_device: PhysicalDevice,
1063     queue_family_index: u32,
1064     dpy: *mut Display,
1065     visual_id: VisualID,
1066 ) -> Bool32;
1067 #[derive(Clone)]
1068 pub struct KhrXlibSurfaceFn {
1069     pub create_xlib_surface_khr: PFN_vkCreateXlibSurfaceKHR,
1070     pub get_physical_device_xlib_presentation_support_khr:
1071         PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR,
1072 }
1073 unsafe impl Send for KhrXlibSurfaceFn {}
1074 unsafe impl Sync for KhrXlibSurfaceFn {}
1075 impl KhrXlibSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1076     pub fn load<F>(mut _f: F) -> Self
1077     where
1078         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1079     {
1080         Self {
1081             create_xlib_surface_khr: unsafe {
1082                 unsafe extern "system" fn create_xlib_surface_khr(
1083                     _instance: Instance,
1084                     _p_create_info: *const XlibSurfaceCreateInfoKHR,
1085                     _p_allocator: *const AllocationCallbacks,
1086                     _p_surface: *mut SurfaceKHR,
1087                 ) -> Result {
1088                     panic!(concat!(
1089                         "Unable to load ",
1090                         stringify!(create_xlib_surface_khr)
1091                     ))
1092                 }
1093                 let cname =
1094                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateXlibSurfaceKHR\0");
1095                 let val = _f(cname);
1096                 if val.is_null() {
1097                     create_xlib_surface_khr
1098                 } else {
1099                     ::std::mem::transmute(val)
1100                 }
1101             },
1102             get_physical_device_xlib_presentation_support_khr: unsafe {
1103                 unsafe extern "system" fn get_physical_device_xlib_presentation_support_khr(
1104                     _physical_device: PhysicalDevice,
1105                     _queue_family_index: u32,
1106                     _dpy: *mut Display,
1107                     _visual_id: VisualID,
1108                 ) -> Bool32 {
1109                     panic!(concat!(
1110                         "Unable to load ",
1111                         stringify!(get_physical_device_xlib_presentation_support_khr)
1112                     ))
1113                 }
1114                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1115                     b"vkGetPhysicalDeviceXlibPresentationSupportKHR\0",
1116                 );
1117                 let val = _f(cname);
1118                 if val.is_null() {
1119                     get_physical_device_xlib_presentation_support_khr
1120                 } else {
1121                     ::std::mem::transmute(val)
1122                 }
1123             },
1124         }
1125     }
1126     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateXlibSurfaceKHR.html>"]
create_xlib_surface_khr( &self, instance: Instance, p_create_info: *const XlibSurfaceCreateInfoKHR, p_allocator: *const AllocationCallbacks, p_surface: *mut SurfaceKHR, ) -> Result1127     pub unsafe fn create_xlib_surface_khr(
1128         &self,
1129         instance: Instance,
1130         p_create_info: *const XlibSurfaceCreateInfoKHR,
1131         p_allocator: *const AllocationCallbacks,
1132         p_surface: *mut SurfaceKHR,
1133     ) -> Result {
1134         (self.create_xlib_surface_khr)(instance, p_create_info, p_allocator, p_surface)
1135     }
1136     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceXlibPresentationSupportKHR.html>"]
get_physical_device_xlib_presentation_support_khr( &self, physical_device: PhysicalDevice, queue_family_index: u32, dpy: *mut Display, visual_id: VisualID, ) -> Bool321137     pub unsafe fn get_physical_device_xlib_presentation_support_khr(
1138         &self,
1139         physical_device: PhysicalDevice,
1140         queue_family_index: u32,
1141         dpy: *mut Display,
1142         visual_id: VisualID,
1143     ) -> Bool32 {
1144         (self.get_physical_device_xlib_presentation_support_khr)(
1145             physical_device,
1146             queue_family_index,
1147             dpy,
1148             visual_id,
1149         )
1150     }
1151 }
1152 #[doc = "Generated from 'VK_KHR_xlib_surface'"]
1153 impl StructureType {
1154     pub const XLIB_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_004_000);
1155 }
1156 impl KhrXcbSurfaceFn {
name() -> &'static ::std::ffi::CStr1157     pub fn name() -> &'static ::std::ffi::CStr {
1158         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_xcb_surface\0") }
1159     }
1160     pub const SPEC_VERSION: u32 = 6u32;
1161 }
1162 #[allow(non_camel_case_types)]
1163 pub type PFN_vkCreateXcbSurfaceKHR = unsafe extern "system" fn(
1164     instance: Instance,
1165     p_create_info: *const XcbSurfaceCreateInfoKHR,
1166     p_allocator: *const AllocationCallbacks,
1167     p_surface: *mut SurfaceKHR,
1168 ) -> Result;
1169 #[allow(non_camel_case_types)]
1170 pub type PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR = unsafe extern "system" fn(
1171     physical_device: PhysicalDevice,
1172     queue_family_index: u32,
1173     connection: *mut xcb_connection_t,
1174     visual_id: xcb_visualid_t,
1175 ) -> Bool32;
1176 #[derive(Clone)]
1177 pub struct KhrXcbSurfaceFn {
1178     pub create_xcb_surface_khr: PFN_vkCreateXcbSurfaceKHR,
1179     pub get_physical_device_xcb_presentation_support_khr:
1180         PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR,
1181 }
1182 unsafe impl Send for KhrXcbSurfaceFn {}
1183 unsafe impl Sync for KhrXcbSurfaceFn {}
1184 impl KhrXcbSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1185     pub fn load<F>(mut _f: F) -> Self
1186     where
1187         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1188     {
1189         Self {
1190             create_xcb_surface_khr: unsafe {
1191                 unsafe extern "system" fn create_xcb_surface_khr(
1192                     _instance: Instance,
1193                     _p_create_info: *const XcbSurfaceCreateInfoKHR,
1194                     _p_allocator: *const AllocationCallbacks,
1195                     _p_surface: *mut SurfaceKHR,
1196                 ) -> Result {
1197                     panic!(concat!(
1198                         "Unable to load ",
1199                         stringify!(create_xcb_surface_khr)
1200                     ))
1201                 }
1202                 let cname =
1203                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateXcbSurfaceKHR\0");
1204                 let val = _f(cname);
1205                 if val.is_null() {
1206                     create_xcb_surface_khr
1207                 } else {
1208                     ::std::mem::transmute(val)
1209                 }
1210             },
1211             get_physical_device_xcb_presentation_support_khr: unsafe {
1212                 unsafe extern "system" fn get_physical_device_xcb_presentation_support_khr(
1213                     _physical_device: PhysicalDevice,
1214                     _queue_family_index: u32,
1215                     _connection: *mut xcb_connection_t,
1216                     _visual_id: xcb_visualid_t,
1217                 ) -> Bool32 {
1218                     panic!(concat!(
1219                         "Unable to load ",
1220                         stringify!(get_physical_device_xcb_presentation_support_khr)
1221                     ))
1222                 }
1223                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1224                     b"vkGetPhysicalDeviceXcbPresentationSupportKHR\0",
1225                 );
1226                 let val = _f(cname);
1227                 if val.is_null() {
1228                     get_physical_device_xcb_presentation_support_khr
1229                 } else {
1230                     ::std::mem::transmute(val)
1231                 }
1232             },
1233         }
1234     }
1235     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateXcbSurfaceKHR.html>"]
create_xcb_surface_khr( &self, instance: Instance, p_create_info: *const XcbSurfaceCreateInfoKHR, p_allocator: *const AllocationCallbacks, p_surface: *mut SurfaceKHR, ) -> Result1236     pub unsafe fn create_xcb_surface_khr(
1237         &self,
1238         instance: Instance,
1239         p_create_info: *const XcbSurfaceCreateInfoKHR,
1240         p_allocator: *const AllocationCallbacks,
1241         p_surface: *mut SurfaceKHR,
1242     ) -> Result {
1243         (self.create_xcb_surface_khr)(instance, p_create_info, p_allocator, p_surface)
1244     }
1245     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceXcbPresentationSupportKHR.html>"]
get_physical_device_xcb_presentation_support_khr( &self, physical_device: PhysicalDevice, queue_family_index: u32, connection: *mut xcb_connection_t, visual_id: xcb_visualid_t, ) -> Bool321246     pub unsafe fn get_physical_device_xcb_presentation_support_khr(
1247         &self,
1248         physical_device: PhysicalDevice,
1249         queue_family_index: u32,
1250         connection: *mut xcb_connection_t,
1251         visual_id: xcb_visualid_t,
1252     ) -> Bool32 {
1253         (self.get_physical_device_xcb_presentation_support_khr)(
1254             physical_device,
1255             queue_family_index,
1256             connection,
1257             visual_id,
1258         )
1259     }
1260 }
1261 #[doc = "Generated from 'VK_KHR_xcb_surface'"]
1262 impl StructureType {
1263     pub const XCB_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_005_000);
1264 }
1265 impl KhrWaylandSurfaceFn {
name() -> &'static ::std::ffi::CStr1266     pub fn name() -> &'static ::std::ffi::CStr {
1267         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_wayland_surface\0") }
1268     }
1269     pub const SPEC_VERSION: u32 = 6u32;
1270 }
1271 #[allow(non_camel_case_types)]
1272 pub type PFN_vkCreateWaylandSurfaceKHR = unsafe extern "system" fn(
1273     instance: Instance,
1274     p_create_info: *const WaylandSurfaceCreateInfoKHR,
1275     p_allocator: *const AllocationCallbacks,
1276     p_surface: *mut SurfaceKHR,
1277 ) -> Result;
1278 #[allow(non_camel_case_types)]
1279 pub type PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR = unsafe extern "system" fn(
1280     physical_device: PhysicalDevice,
1281     queue_family_index: u32,
1282     display: *mut wl_display,
1283 )
1284     -> Bool32;
1285 #[derive(Clone)]
1286 pub struct KhrWaylandSurfaceFn {
1287     pub create_wayland_surface_khr: PFN_vkCreateWaylandSurfaceKHR,
1288     pub get_physical_device_wayland_presentation_support_khr:
1289         PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR,
1290 }
1291 unsafe impl Send for KhrWaylandSurfaceFn {}
1292 unsafe impl Sync for KhrWaylandSurfaceFn {}
1293 impl KhrWaylandSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1294     pub fn load<F>(mut _f: F) -> Self
1295     where
1296         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1297     {
1298         Self {
1299             create_wayland_surface_khr: unsafe {
1300                 unsafe extern "system" fn create_wayland_surface_khr(
1301                     _instance: Instance,
1302                     _p_create_info: *const WaylandSurfaceCreateInfoKHR,
1303                     _p_allocator: *const AllocationCallbacks,
1304                     _p_surface: *mut SurfaceKHR,
1305                 ) -> Result {
1306                     panic!(concat!(
1307                         "Unable to load ",
1308                         stringify!(create_wayland_surface_khr)
1309                     ))
1310                 }
1311                 let cname =
1312                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateWaylandSurfaceKHR\0");
1313                 let val = _f(cname);
1314                 if val.is_null() {
1315                     create_wayland_surface_khr
1316                 } else {
1317                     ::std::mem::transmute(val)
1318                 }
1319             },
1320             get_physical_device_wayland_presentation_support_khr: unsafe {
1321                 unsafe extern "system" fn get_physical_device_wayland_presentation_support_khr(
1322                     _physical_device: PhysicalDevice,
1323                     _queue_family_index: u32,
1324                     _display: *mut wl_display,
1325                 ) -> Bool32 {
1326                     panic!(concat!(
1327                         "Unable to load ",
1328                         stringify!(get_physical_device_wayland_presentation_support_khr)
1329                     ))
1330                 }
1331                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1332                     b"vkGetPhysicalDeviceWaylandPresentationSupportKHR\0",
1333                 );
1334                 let val = _f(cname);
1335                 if val.is_null() {
1336                     get_physical_device_wayland_presentation_support_khr
1337                 } else {
1338                     ::std::mem::transmute(val)
1339                 }
1340             },
1341         }
1342     }
1343     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateWaylandSurfaceKHR.html>"]
create_wayland_surface_khr( &self, instance: Instance, p_create_info: *const WaylandSurfaceCreateInfoKHR, p_allocator: *const AllocationCallbacks, p_surface: *mut SurfaceKHR, ) -> Result1344     pub unsafe fn create_wayland_surface_khr(
1345         &self,
1346         instance: Instance,
1347         p_create_info: *const WaylandSurfaceCreateInfoKHR,
1348         p_allocator: *const AllocationCallbacks,
1349         p_surface: *mut SurfaceKHR,
1350     ) -> Result {
1351         (self.create_wayland_surface_khr)(instance, p_create_info, p_allocator, p_surface)
1352     }
1353     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceWaylandPresentationSupportKHR.html>"]
get_physical_device_wayland_presentation_support_khr( &self, physical_device: PhysicalDevice, queue_family_index: u32, display: *mut wl_display, ) -> Bool321354     pub unsafe fn get_physical_device_wayland_presentation_support_khr(
1355         &self,
1356         physical_device: PhysicalDevice,
1357         queue_family_index: u32,
1358         display: *mut wl_display,
1359     ) -> Bool32 {
1360         (self.get_physical_device_wayland_presentation_support_khr)(
1361             physical_device,
1362             queue_family_index,
1363             display,
1364         )
1365     }
1366 }
1367 #[doc = "Generated from 'VK_KHR_wayland_surface'"]
1368 impl StructureType {
1369     pub const WAYLAND_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_006_000);
1370 }
1371 impl KhrMirSurfaceFn {
name() -> &'static ::std::ffi::CStr1372     pub fn name() -> &'static ::std::ffi::CStr {
1373         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_mir_surface\0") }
1374     }
1375     pub const SPEC_VERSION: u32 = 4u32;
1376 }
1377 #[derive(Clone)]
1378 pub struct KhrMirSurfaceFn {}
1379 unsafe impl Send for KhrMirSurfaceFn {}
1380 unsafe impl Sync for KhrMirSurfaceFn {}
1381 impl KhrMirSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1382     pub fn load<F>(mut _f: F) -> Self
1383     where
1384         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1385     {
1386         Self {}
1387     }
1388 }
1389 impl KhrAndroidSurfaceFn {
name() -> &'static ::std::ffi::CStr1390     pub fn name() -> &'static ::std::ffi::CStr {
1391         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_android_surface\0") }
1392     }
1393     pub const SPEC_VERSION: u32 = 6u32;
1394 }
1395 #[allow(non_camel_case_types)]
1396 pub type PFN_vkCreateAndroidSurfaceKHR = unsafe extern "system" fn(
1397     instance: Instance,
1398     p_create_info: *const AndroidSurfaceCreateInfoKHR,
1399     p_allocator: *const AllocationCallbacks,
1400     p_surface: *mut SurfaceKHR,
1401 ) -> Result;
1402 #[derive(Clone)]
1403 pub struct KhrAndroidSurfaceFn {
1404     pub create_android_surface_khr: PFN_vkCreateAndroidSurfaceKHR,
1405 }
1406 unsafe impl Send for KhrAndroidSurfaceFn {}
1407 unsafe impl Sync for KhrAndroidSurfaceFn {}
1408 impl KhrAndroidSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1409     pub fn load<F>(mut _f: F) -> Self
1410     where
1411         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1412     {
1413         Self {
1414             create_android_surface_khr: unsafe {
1415                 unsafe extern "system" fn create_android_surface_khr(
1416                     _instance: Instance,
1417                     _p_create_info: *const AndroidSurfaceCreateInfoKHR,
1418                     _p_allocator: *const AllocationCallbacks,
1419                     _p_surface: *mut SurfaceKHR,
1420                 ) -> Result {
1421                     panic!(concat!(
1422                         "Unable to load ",
1423                         stringify!(create_android_surface_khr)
1424                     ))
1425                 }
1426                 let cname =
1427                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateAndroidSurfaceKHR\0");
1428                 let val = _f(cname);
1429                 if val.is_null() {
1430                     create_android_surface_khr
1431                 } else {
1432                     ::std::mem::transmute(val)
1433                 }
1434             },
1435         }
1436     }
1437     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateAndroidSurfaceKHR.html>"]
create_android_surface_khr( &self, instance: Instance, p_create_info: *const AndroidSurfaceCreateInfoKHR, p_allocator: *const AllocationCallbacks, p_surface: *mut SurfaceKHR, ) -> Result1438     pub unsafe fn create_android_surface_khr(
1439         &self,
1440         instance: Instance,
1441         p_create_info: *const AndroidSurfaceCreateInfoKHR,
1442         p_allocator: *const AllocationCallbacks,
1443         p_surface: *mut SurfaceKHR,
1444     ) -> Result {
1445         (self.create_android_surface_khr)(instance, p_create_info, p_allocator, p_surface)
1446     }
1447 }
1448 #[doc = "Generated from 'VK_KHR_android_surface'"]
1449 impl StructureType {
1450     pub const ANDROID_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_008_000);
1451 }
1452 impl KhrWin32SurfaceFn {
name() -> &'static ::std::ffi::CStr1453     pub fn name() -> &'static ::std::ffi::CStr {
1454         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_win32_surface\0") }
1455     }
1456     pub const SPEC_VERSION: u32 = 6u32;
1457 }
1458 #[allow(non_camel_case_types)]
1459 pub type PFN_vkCreateWin32SurfaceKHR = unsafe extern "system" fn(
1460     instance: Instance,
1461     p_create_info: *const Win32SurfaceCreateInfoKHR,
1462     p_allocator: *const AllocationCallbacks,
1463     p_surface: *mut SurfaceKHR,
1464 ) -> Result;
1465 #[allow(non_camel_case_types)]
1466 pub type PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR =
1467     unsafe extern "system" fn(physical_device: PhysicalDevice, queue_family_index: u32) -> Bool32;
1468 #[derive(Clone)]
1469 pub struct KhrWin32SurfaceFn {
1470     pub create_win32_surface_khr: PFN_vkCreateWin32SurfaceKHR,
1471     pub get_physical_device_win32_presentation_support_khr:
1472         PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR,
1473 }
1474 unsafe impl Send for KhrWin32SurfaceFn {}
1475 unsafe impl Sync for KhrWin32SurfaceFn {}
1476 impl KhrWin32SurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1477     pub fn load<F>(mut _f: F) -> Self
1478     where
1479         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1480     {
1481         Self {
1482             create_win32_surface_khr: unsafe {
1483                 unsafe extern "system" fn create_win32_surface_khr(
1484                     _instance: Instance,
1485                     _p_create_info: *const Win32SurfaceCreateInfoKHR,
1486                     _p_allocator: *const AllocationCallbacks,
1487                     _p_surface: *mut SurfaceKHR,
1488                 ) -> Result {
1489                     panic!(concat!(
1490                         "Unable to load ",
1491                         stringify!(create_win32_surface_khr)
1492                     ))
1493                 }
1494                 let cname =
1495                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateWin32SurfaceKHR\0");
1496                 let val = _f(cname);
1497                 if val.is_null() {
1498                     create_win32_surface_khr
1499                 } else {
1500                     ::std::mem::transmute(val)
1501                 }
1502             },
1503             get_physical_device_win32_presentation_support_khr: unsafe {
1504                 unsafe extern "system" fn get_physical_device_win32_presentation_support_khr(
1505                     _physical_device: PhysicalDevice,
1506                     _queue_family_index: u32,
1507                 ) -> Bool32 {
1508                     panic!(concat!(
1509                         "Unable to load ",
1510                         stringify!(get_physical_device_win32_presentation_support_khr)
1511                     ))
1512                 }
1513                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1514                     b"vkGetPhysicalDeviceWin32PresentationSupportKHR\0",
1515                 );
1516                 let val = _f(cname);
1517                 if val.is_null() {
1518                     get_physical_device_win32_presentation_support_khr
1519                 } else {
1520                     ::std::mem::transmute(val)
1521                 }
1522             },
1523         }
1524     }
1525     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateWin32SurfaceKHR.html>"]
create_win32_surface_khr( &self, instance: Instance, p_create_info: *const Win32SurfaceCreateInfoKHR, p_allocator: *const AllocationCallbacks, p_surface: *mut SurfaceKHR, ) -> Result1526     pub unsafe fn create_win32_surface_khr(
1527         &self,
1528         instance: Instance,
1529         p_create_info: *const Win32SurfaceCreateInfoKHR,
1530         p_allocator: *const AllocationCallbacks,
1531         p_surface: *mut SurfaceKHR,
1532     ) -> Result {
1533         (self.create_win32_surface_khr)(instance, p_create_info, p_allocator, p_surface)
1534     }
1535     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceWin32PresentationSupportKHR.html>"]
get_physical_device_win32_presentation_support_khr( &self, physical_device: PhysicalDevice, queue_family_index: u32, ) -> Bool321536     pub unsafe fn get_physical_device_win32_presentation_support_khr(
1537         &self,
1538         physical_device: PhysicalDevice,
1539         queue_family_index: u32,
1540     ) -> Bool32 {
1541         (self.get_physical_device_win32_presentation_support_khr)(
1542             physical_device,
1543             queue_family_index,
1544         )
1545     }
1546 }
1547 #[doc = "Generated from 'VK_KHR_win32_surface'"]
1548 impl StructureType {
1549     pub const WIN32_SURFACE_CREATE_INFO_KHR: Self = Self(1_000_009_000);
1550 }
1551 impl AndroidNativeBufferFn {
name() -> &'static ::std::ffi::CStr1552     pub fn name() -> &'static ::std::ffi::CStr {
1553         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_ANDROID_native_buffer\0") }
1554     }
1555     pub const SPEC_VERSION: u32 = 8u32;
1556 }
1557 #[allow(non_camel_case_types)]
1558 pub type PFN_vkGetSwapchainGrallocUsageANDROID = unsafe extern "system" fn(
1559     device: Device,
1560     format: Format,
1561     image_usage: ImageUsageFlags,
1562     gralloc_usage: *mut c_int,
1563 ) -> Result;
1564 #[allow(non_camel_case_types)]
1565 pub type PFN_vkAcquireImageANDROID = unsafe extern "system" fn(
1566     device: Device,
1567     image: Image,
1568     native_fence_fd: c_int,
1569     semaphore: Semaphore,
1570     fence: Fence,
1571 ) -> Result;
1572 #[allow(non_camel_case_types)]
1573 pub type PFN_vkQueueSignalReleaseImageANDROID = unsafe extern "system" fn(
1574     queue: Queue,
1575     wait_semaphore_count: u32,
1576     p_wait_semaphores: *const Semaphore,
1577     image: Image,
1578     p_native_fence_fd: *mut c_int,
1579 ) -> Result;
1580 #[allow(non_camel_case_types)]
1581 pub type PFN_vkGetSwapchainGrallocUsage2ANDROID = unsafe extern "system" fn(
1582     device: Device,
1583     format: Format,
1584     image_usage: ImageUsageFlags,
1585     swapchain_image_usage: SwapchainImageUsageFlagsANDROID,
1586     gralloc_consumer_usage: *mut u64,
1587     gralloc_producer_usage: *mut u64,
1588 ) -> Result;
1589 #[derive(Clone)]
1590 pub struct AndroidNativeBufferFn {
1591     pub get_swapchain_gralloc_usage_android: PFN_vkGetSwapchainGrallocUsageANDROID,
1592     pub acquire_image_android: PFN_vkAcquireImageANDROID,
1593     pub queue_signal_release_image_android: PFN_vkQueueSignalReleaseImageANDROID,
1594     pub get_swapchain_gralloc_usage2_android: PFN_vkGetSwapchainGrallocUsage2ANDROID,
1595 }
1596 unsafe impl Send for AndroidNativeBufferFn {}
1597 unsafe impl Sync for AndroidNativeBufferFn {}
1598 impl AndroidNativeBufferFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1599     pub fn load<F>(mut _f: F) -> Self
1600     where
1601         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1602     {
1603         Self {
1604             get_swapchain_gralloc_usage_android: unsafe {
1605                 unsafe extern "system" fn get_swapchain_gralloc_usage_android(
1606                     _device: Device,
1607                     _format: Format,
1608                     _image_usage: ImageUsageFlags,
1609                     _gralloc_usage: *mut c_int,
1610                 ) -> Result {
1611                     panic!(concat!(
1612                         "Unable to load ",
1613                         stringify!(get_swapchain_gralloc_usage_android)
1614                     ))
1615                 }
1616                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1617                     b"vkGetSwapchainGrallocUsageANDROID\0",
1618                 );
1619                 let val = _f(cname);
1620                 if val.is_null() {
1621                     get_swapchain_gralloc_usage_android
1622                 } else {
1623                     ::std::mem::transmute(val)
1624                 }
1625             },
1626             acquire_image_android: unsafe {
1627                 unsafe extern "system" fn acquire_image_android(
1628                     _device: Device,
1629                     _image: Image,
1630                     _native_fence_fd: c_int,
1631                     _semaphore: Semaphore,
1632                     _fence: Fence,
1633                 ) -> Result {
1634                     panic!(concat!(
1635                         "Unable to load ",
1636                         stringify!(acquire_image_android)
1637                     ))
1638                 }
1639                 let cname =
1640                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireImageANDROID\0");
1641                 let val = _f(cname);
1642                 if val.is_null() {
1643                     acquire_image_android
1644                 } else {
1645                     ::std::mem::transmute(val)
1646                 }
1647             },
1648             queue_signal_release_image_android: unsafe {
1649                 unsafe extern "system" fn queue_signal_release_image_android(
1650                     _queue: Queue,
1651                     _wait_semaphore_count: u32,
1652                     _p_wait_semaphores: *const Semaphore,
1653                     _image: Image,
1654                     _p_native_fence_fd: *mut c_int,
1655                 ) -> Result {
1656                     panic!(concat!(
1657                         "Unable to load ",
1658                         stringify!(queue_signal_release_image_android)
1659                     ))
1660                 }
1661                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1662                     b"vkQueueSignalReleaseImageANDROID\0",
1663                 );
1664                 let val = _f(cname);
1665                 if val.is_null() {
1666                     queue_signal_release_image_android
1667                 } else {
1668                     ::std::mem::transmute(val)
1669                 }
1670             },
1671             get_swapchain_gralloc_usage2_android: unsafe {
1672                 unsafe extern "system" fn get_swapchain_gralloc_usage2_android(
1673                     _device: Device,
1674                     _format: Format,
1675                     _image_usage: ImageUsageFlags,
1676                     _swapchain_image_usage: SwapchainImageUsageFlagsANDROID,
1677                     _gralloc_consumer_usage: *mut u64,
1678                     _gralloc_producer_usage: *mut u64,
1679                 ) -> Result {
1680                     panic!(concat!(
1681                         "Unable to load ",
1682                         stringify!(get_swapchain_gralloc_usage2_android)
1683                     ))
1684                 }
1685                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1686                     b"vkGetSwapchainGrallocUsage2ANDROID\0",
1687                 );
1688                 let val = _f(cname);
1689                 if val.is_null() {
1690                     get_swapchain_gralloc_usage2_android
1691                 } else {
1692                     ::std::mem::transmute(val)
1693                 }
1694             },
1695         }
1696     }
1697     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetSwapchainGrallocUsageANDROID.html>"]
get_swapchain_gralloc_usage_android( &self, device: Device, format: Format, image_usage: ImageUsageFlags, gralloc_usage: *mut c_int, ) -> Result1698     pub unsafe fn get_swapchain_gralloc_usage_android(
1699         &self,
1700         device: Device,
1701         format: Format,
1702         image_usage: ImageUsageFlags,
1703         gralloc_usage: *mut c_int,
1704     ) -> Result {
1705         (self.get_swapchain_gralloc_usage_android)(device, format, image_usage, gralloc_usage)
1706     }
1707     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkAcquireImageANDROID.html>"]
acquire_image_android( &self, device: Device, image: Image, native_fence_fd: c_int, semaphore: Semaphore, fence: Fence, ) -> Result1708     pub unsafe fn acquire_image_android(
1709         &self,
1710         device: Device,
1711         image: Image,
1712         native_fence_fd: c_int,
1713         semaphore: Semaphore,
1714         fence: Fence,
1715     ) -> Result {
1716         (self.acquire_image_android)(device, image, native_fence_fd, semaphore, fence)
1717     }
1718     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkQueueSignalReleaseImageANDROID.html>"]
queue_signal_release_image_android( &self, queue: Queue, wait_semaphore_count: u32, p_wait_semaphores: *const Semaphore, image: Image, p_native_fence_fd: *mut c_int, ) -> Result1719     pub unsafe fn queue_signal_release_image_android(
1720         &self,
1721         queue: Queue,
1722         wait_semaphore_count: u32,
1723         p_wait_semaphores: *const Semaphore,
1724         image: Image,
1725         p_native_fence_fd: *mut c_int,
1726     ) -> Result {
1727         (self.queue_signal_release_image_android)(
1728             queue,
1729             wait_semaphore_count,
1730             p_wait_semaphores,
1731             image,
1732             p_native_fence_fd,
1733         )
1734     }
1735     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetSwapchainGrallocUsage2ANDROID.html>"]
get_swapchain_gralloc_usage2_android( &self, device: Device, format: Format, image_usage: ImageUsageFlags, swapchain_image_usage: SwapchainImageUsageFlagsANDROID, gralloc_consumer_usage: *mut u64, gralloc_producer_usage: *mut u64, ) -> Result1736     pub unsafe fn get_swapchain_gralloc_usage2_android(
1737         &self,
1738         device: Device,
1739         format: Format,
1740         image_usage: ImageUsageFlags,
1741         swapchain_image_usage: SwapchainImageUsageFlagsANDROID,
1742         gralloc_consumer_usage: *mut u64,
1743         gralloc_producer_usage: *mut u64,
1744     ) -> Result {
1745         (self.get_swapchain_gralloc_usage2_android)(
1746             device,
1747             format,
1748             image_usage,
1749             swapchain_image_usage,
1750             gralloc_consumer_usage,
1751             gralloc_producer_usage,
1752         )
1753     }
1754 }
1755 #[doc = "Generated from 'VK_ANDROID_native_buffer'"]
1756 impl StructureType {
1757     pub const NATIVE_BUFFER_ANDROID: Self = Self(1_000_010_000);
1758     pub const SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID: Self = Self(1_000_010_001);
1759     pub const PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID: Self = Self(1_000_010_002);
1760 }
1761 impl ExtDebugReportFn {
name() -> &'static ::std::ffi::CStr1762     pub fn name() -> &'static ::std::ffi::CStr {
1763         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_debug_report\0") }
1764     }
1765     pub const SPEC_VERSION: u32 = 10u32;
1766 }
1767 #[allow(non_camel_case_types)]
1768 pub type PFN_vkCreateDebugReportCallbackEXT = unsafe extern "system" fn(
1769     instance: Instance,
1770     p_create_info: *const DebugReportCallbackCreateInfoEXT,
1771     p_allocator: *const AllocationCallbacks,
1772     p_callback: *mut DebugReportCallbackEXT,
1773 ) -> Result;
1774 #[allow(non_camel_case_types)]
1775 pub type PFN_vkDestroyDebugReportCallbackEXT = unsafe extern "system" fn(
1776     instance: Instance,
1777     callback: DebugReportCallbackEXT,
1778     p_allocator: *const AllocationCallbacks,
1779 );
1780 #[allow(non_camel_case_types)]
1781 pub type PFN_vkDebugReportMessageEXT = unsafe extern "system" fn(
1782     instance: Instance,
1783     flags: DebugReportFlagsEXT,
1784     object_type: DebugReportObjectTypeEXT,
1785     object: u64,
1786     location: usize,
1787     message_code: i32,
1788     p_layer_prefix: *const c_char,
1789     p_message: *const c_char,
1790 );
1791 #[derive(Clone)]
1792 pub struct ExtDebugReportFn {
1793     pub create_debug_report_callback_ext: PFN_vkCreateDebugReportCallbackEXT,
1794     pub destroy_debug_report_callback_ext: PFN_vkDestroyDebugReportCallbackEXT,
1795     pub debug_report_message_ext: PFN_vkDebugReportMessageEXT,
1796 }
1797 unsafe impl Send for ExtDebugReportFn {}
1798 unsafe impl Sync for ExtDebugReportFn {}
1799 impl ExtDebugReportFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1800     pub fn load<F>(mut _f: F) -> Self
1801     where
1802         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1803     {
1804         Self {
1805             create_debug_report_callback_ext: unsafe {
1806                 unsafe extern "system" fn create_debug_report_callback_ext(
1807                     _instance: Instance,
1808                     _p_create_info: *const DebugReportCallbackCreateInfoEXT,
1809                     _p_allocator: *const AllocationCallbacks,
1810                     _p_callback: *mut DebugReportCallbackEXT,
1811                 ) -> Result {
1812                     panic!(concat!(
1813                         "Unable to load ",
1814                         stringify!(create_debug_report_callback_ext)
1815                     ))
1816                 }
1817                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1818                     b"vkCreateDebugReportCallbackEXT\0",
1819                 );
1820                 let val = _f(cname);
1821                 if val.is_null() {
1822                     create_debug_report_callback_ext
1823                 } else {
1824                     ::std::mem::transmute(val)
1825                 }
1826             },
1827             destroy_debug_report_callback_ext: unsafe {
1828                 unsafe extern "system" fn destroy_debug_report_callback_ext(
1829                     _instance: Instance,
1830                     _callback: DebugReportCallbackEXT,
1831                     _p_allocator: *const AllocationCallbacks,
1832                 ) {
1833                     panic!(concat!(
1834                         "Unable to load ",
1835                         stringify!(destroy_debug_report_callback_ext)
1836                     ))
1837                 }
1838                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1839                     b"vkDestroyDebugReportCallbackEXT\0",
1840                 );
1841                 let val = _f(cname);
1842                 if val.is_null() {
1843                     destroy_debug_report_callback_ext
1844                 } else {
1845                     ::std::mem::transmute(val)
1846                 }
1847             },
1848             debug_report_message_ext: unsafe {
1849                 unsafe extern "system" fn debug_report_message_ext(
1850                     _instance: Instance,
1851                     _flags: DebugReportFlagsEXT,
1852                     _object_type: DebugReportObjectTypeEXT,
1853                     _object: u64,
1854                     _location: usize,
1855                     _message_code: i32,
1856                     _p_layer_prefix: *const c_char,
1857                     _p_message: *const c_char,
1858                 ) {
1859                     panic!(concat!(
1860                         "Unable to load ",
1861                         stringify!(debug_report_message_ext)
1862                     ))
1863                 }
1864                 let cname =
1865                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDebugReportMessageEXT\0");
1866                 let val = _f(cname);
1867                 if val.is_null() {
1868                     debug_report_message_ext
1869                 } else {
1870                     ::std::mem::transmute(val)
1871                 }
1872             },
1873         }
1874     }
1875     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateDebugReportCallbackEXT.html>"]
create_debug_report_callback_ext( &self, instance: Instance, p_create_info: *const DebugReportCallbackCreateInfoEXT, p_allocator: *const AllocationCallbacks, p_callback: *mut DebugReportCallbackEXT, ) -> Result1876     pub unsafe fn create_debug_report_callback_ext(
1877         &self,
1878         instance: Instance,
1879         p_create_info: *const DebugReportCallbackCreateInfoEXT,
1880         p_allocator: *const AllocationCallbacks,
1881         p_callback: *mut DebugReportCallbackEXT,
1882     ) -> Result {
1883         (self.create_debug_report_callback_ext)(instance, p_create_info, p_allocator, p_callback)
1884     }
1885     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroyDebugReportCallbackEXT.html>"]
destroy_debug_report_callback_ext( &self, instance: Instance, callback: DebugReportCallbackEXT, p_allocator: *const AllocationCallbacks, )1886     pub unsafe fn destroy_debug_report_callback_ext(
1887         &self,
1888         instance: Instance,
1889         callback: DebugReportCallbackEXT,
1890         p_allocator: *const AllocationCallbacks,
1891     ) {
1892         (self.destroy_debug_report_callback_ext)(instance, callback, p_allocator)
1893     }
1894     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDebugReportMessageEXT.html>"]
debug_report_message_ext( &self, instance: Instance, flags: DebugReportFlagsEXT, object_type: DebugReportObjectTypeEXT, object: u64, location: usize, message_code: i32, p_layer_prefix: *const c_char, p_message: *const c_char, )1895     pub unsafe fn debug_report_message_ext(
1896         &self,
1897         instance: Instance,
1898         flags: DebugReportFlagsEXT,
1899         object_type: DebugReportObjectTypeEXT,
1900         object: u64,
1901         location: usize,
1902         message_code: i32,
1903         p_layer_prefix: *const c_char,
1904         p_message: *const c_char,
1905     ) {
1906         (self.debug_report_message_ext)(
1907             instance,
1908             flags,
1909             object_type,
1910             object,
1911             location,
1912             message_code,
1913             p_layer_prefix,
1914             p_message,
1915         )
1916     }
1917 }
1918 #[doc = "Generated from 'VK_EXT_debug_report'"]
1919 impl DebugReportObjectTypeEXT {
1920     pub const SAMPLER_YCBCR_CONVERSION: Self = Self(1_000_156_000);
1921     pub const DESCRIPTOR_UPDATE_TEMPLATE: Self = Self(1_000_085_000);
1922 }
1923 #[doc = "Generated from 'VK_EXT_debug_report'"]
1924 impl ObjectType {
1925     pub const DEBUG_REPORT_CALLBACK_EXT: Self = Self(1_000_011_000);
1926 }
1927 #[doc = "Generated from 'VK_EXT_debug_report'"]
1928 impl Result {
1929     pub const ERROR_VALIDATION_FAILED_EXT: Self = Self(-1_000_011_001);
1930 }
1931 #[doc = "Generated from 'VK_EXT_debug_report'"]
1932 impl StructureType {
1933     pub const DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: Self = Self(1_000_011_000);
1934 }
1935 impl NvGlslShaderFn {
name() -> &'static ::std::ffi::CStr1936     pub fn name() -> &'static ::std::ffi::CStr {
1937         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_glsl_shader\0") }
1938     }
1939     pub const SPEC_VERSION: u32 = 1u32;
1940 }
1941 #[derive(Clone)]
1942 pub struct NvGlslShaderFn {}
1943 unsafe impl Send for NvGlslShaderFn {}
1944 unsafe impl Sync for NvGlslShaderFn {}
1945 impl NvGlslShaderFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1946     pub fn load<F>(mut _f: F) -> Self
1947     where
1948         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1949     {
1950         Self {}
1951     }
1952 }
1953 #[doc = "Generated from 'VK_NV_glsl_shader'"]
1954 impl Result {
1955     pub const ERROR_INVALID_SHADER_NV: Self = Self(-1_000_012_000);
1956 }
1957 impl ExtDepthRangeUnrestrictedFn {
name() -> &'static ::std::ffi::CStr1958     pub fn name() -> &'static ::std::ffi::CStr {
1959         unsafe {
1960             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_range_unrestricted\0")
1961         }
1962     }
1963     pub const SPEC_VERSION: u32 = 1u32;
1964 }
1965 #[derive(Clone)]
1966 pub struct ExtDepthRangeUnrestrictedFn {}
1967 unsafe impl Send for ExtDepthRangeUnrestrictedFn {}
1968 unsafe impl Sync for ExtDepthRangeUnrestrictedFn {}
1969 impl ExtDepthRangeUnrestrictedFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1970     pub fn load<F>(mut _f: F) -> Self
1971     where
1972         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1973     {
1974         Self {}
1975     }
1976 }
1977 impl KhrSamplerMirrorClampToEdgeFn {
name() -> &'static ::std::ffi::CStr1978     pub fn name() -> &'static ::std::ffi::CStr {
1979         unsafe {
1980             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
1981                 b"VK_KHR_sampler_mirror_clamp_to_edge\0",
1982             )
1983         }
1984     }
1985     pub const SPEC_VERSION: u32 = 3u32;
1986 }
1987 #[derive(Clone)]
1988 pub struct KhrSamplerMirrorClampToEdgeFn {}
1989 unsafe impl Send for KhrSamplerMirrorClampToEdgeFn {}
1990 unsafe impl Sync for KhrSamplerMirrorClampToEdgeFn {}
1991 impl KhrSamplerMirrorClampToEdgeFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,1992     pub fn load<F>(mut _f: F) -> Self
1993     where
1994         F: FnMut(&::std::ffi::CStr) -> *const c_void,
1995     {
1996         Self {}
1997     }
1998 }
1999 #[doc = "Generated from 'VK_KHR_sampler_mirror_clamp_to_edge'"]
2000 impl SamplerAddressMode {
2001     #[doc = "Note that this defines what was previously a core enum, and so uses the 'value' attribute rather than 'offset', and does not have a suffix. This is a special case, and should not be repeated"]
2002     pub const MIRROR_CLAMP_TO_EDGE: Self = Self(4);
2003     #[deprecated = "Alias introduced for consistency with extension suffixing rules"]
2004     pub const MIRROR_CLAMP_TO_EDGE_KHR: Self = Self::MIRROR_CLAMP_TO_EDGE;
2005 }
2006 impl ImgFilterCubicFn {
name() -> &'static ::std::ffi::CStr2007     pub fn name() -> &'static ::std::ffi::CStr {
2008         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_IMG_filter_cubic\0") }
2009     }
2010     pub const SPEC_VERSION: u32 = 1u32;
2011 }
2012 #[derive(Clone)]
2013 pub struct ImgFilterCubicFn {}
2014 unsafe impl Send for ImgFilterCubicFn {}
2015 unsafe impl Sync for ImgFilterCubicFn {}
2016 impl ImgFilterCubicFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2017     pub fn load<F>(mut _f: F) -> Self
2018     where
2019         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2020     {
2021         Self {}
2022     }
2023 }
2024 #[doc = "Generated from 'VK_IMG_filter_cubic'"]
2025 impl Filter {
2026     pub const CUBIC_IMG: Self = Self(1_000_015_000);
2027 }
2028 #[doc = "Generated from 'VK_IMG_filter_cubic'"]
2029 impl FormatFeatureFlags {
2030     #[doc = "Format can be filtered with VK_FILTER_CUBIC_IMG when being sampled"]
2031     pub const SAMPLED_IMAGE_FILTER_CUBIC_IMG: Self = Self(0b10_0000_0000_0000);
2032 }
2033 impl AmdExtension17Fn {
name() -> &'static ::std::ffi::CStr2034     pub fn name() -> &'static ::std::ffi::CStr {
2035         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_17\0") }
2036     }
2037     pub const SPEC_VERSION: u32 = 0u32;
2038 }
2039 #[derive(Clone)]
2040 pub struct AmdExtension17Fn {}
2041 unsafe impl Send for AmdExtension17Fn {}
2042 unsafe impl Sync for AmdExtension17Fn {}
2043 impl AmdExtension17Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2044     pub fn load<F>(mut _f: F) -> Self
2045     where
2046         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2047     {
2048         Self {}
2049     }
2050 }
2051 impl AmdExtension18Fn {
name() -> &'static ::std::ffi::CStr2052     pub fn name() -> &'static ::std::ffi::CStr {
2053         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_18\0") }
2054     }
2055     pub const SPEC_VERSION: u32 = 0u32;
2056 }
2057 #[derive(Clone)]
2058 pub struct AmdExtension18Fn {}
2059 unsafe impl Send for AmdExtension18Fn {}
2060 unsafe impl Sync for AmdExtension18Fn {}
2061 impl AmdExtension18Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2062     pub fn load<F>(mut _f: F) -> Self
2063     where
2064         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2065     {
2066         Self {}
2067     }
2068 }
2069 impl AmdRasterizationOrderFn {
name() -> &'static ::std::ffi::CStr2070     pub fn name() -> &'static ::std::ffi::CStr {
2071         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_rasterization_order\0") }
2072     }
2073     pub const SPEC_VERSION: u32 = 1u32;
2074 }
2075 #[derive(Clone)]
2076 pub struct AmdRasterizationOrderFn {}
2077 unsafe impl Send for AmdRasterizationOrderFn {}
2078 unsafe impl Sync for AmdRasterizationOrderFn {}
2079 impl AmdRasterizationOrderFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2080     pub fn load<F>(mut _f: F) -> Self
2081     where
2082         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2083     {
2084         Self {}
2085     }
2086 }
2087 #[doc = "Generated from 'VK_AMD_rasterization_order'"]
2088 impl StructureType {
2089     pub const PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: Self = Self(1_000_018_000);
2090 }
2091 impl AmdExtension20Fn {
name() -> &'static ::std::ffi::CStr2092     pub fn name() -> &'static ::std::ffi::CStr {
2093         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_20\0") }
2094     }
2095     pub const SPEC_VERSION: u32 = 0u32;
2096 }
2097 #[derive(Clone)]
2098 pub struct AmdExtension20Fn {}
2099 unsafe impl Send for AmdExtension20Fn {}
2100 unsafe impl Sync for AmdExtension20Fn {}
2101 impl AmdExtension20Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2102     pub fn load<F>(mut _f: F) -> Self
2103     where
2104         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2105     {
2106         Self {}
2107     }
2108 }
2109 impl AmdShaderTrinaryMinmaxFn {
name() -> &'static ::std::ffi::CStr2110     pub fn name() -> &'static ::std::ffi::CStr {
2111         unsafe {
2112             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_trinary_minmax\0")
2113         }
2114     }
2115     pub const SPEC_VERSION: u32 = 1u32;
2116 }
2117 #[derive(Clone)]
2118 pub struct AmdShaderTrinaryMinmaxFn {}
2119 unsafe impl Send for AmdShaderTrinaryMinmaxFn {}
2120 unsafe impl Sync for AmdShaderTrinaryMinmaxFn {}
2121 impl AmdShaderTrinaryMinmaxFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2122     pub fn load<F>(mut _f: F) -> Self
2123     where
2124         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2125     {
2126         Self {}
2127     }
2128 }
2129 impl AmdShaderExplicitVertexParameterFn {
name() -> &'static ::std::ffi::CStr2130     pub fn name() -> &'static ::std::ffi::CStr {
2131         unsafe {
2132             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2133                 b"VK_AMD_shader_explicit_vertex_parameter\0",
2134             )
2135         }
2136     }
2137     pub const SPEC_VERSION: u32 = 1u32;
2138 }
2139 #[derive(Clone)]
2140 pub struct AmdShaderExplicitVertexParameterFn {}
2141 unsafe impl Send for AmdShaderExplicitVertexParameterFn {}
2142 unsafe impl Sync for AmdShaderExplicitVertexParameterFn {}
2143 impl AmdShaderExplicitVertexParameterFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2144     pub fn load<F>(mut _f: F) -> Self
2145     where
2146         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2147     {
2148         Self {}
2149     }
2150 }
2151 impl ExtDebugMarkerFn {
name() -> &'static ::std::ffi::CStr2152     pub fn name() -> &'static ::std::ffi::CStr {
2153         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_debug_marker\0") }
2154     }
2155     pub const SPEC_VERSION: u32 = 4u32;
2156 }
2157 #[allow(non_camel_case_types)]
2158 pub type PFN_vkDebugMarkerSetObjectTagEXT = unsafe extern "system" fn(
2159     device: Device,
2160     p_tag_info: *const DebugMarkerObjectTagInfoEXT,
2161 ) -> Result;
2162 #[allow(non_camel_case_types)]
2163 pub type PFN_vkDebugMarkerSetObjectNameEXT = unsafe extern "system" fn(
2164     device: Device,
2165     p_name_info: *const DebugMarkerObjectNameInfoEXT,
2166 ) -> Result;
2167 #[allow(non_camel_case_types)]
2168 pub type PFN_vkCmdDebugMarkerBeginEXT = unsafe extern "system" fn(
2169     command_buffer: CommandBuffer,
2170     p_marker_info: *const DebugMarkerMarkerInfoEXT,
2171 );
2172 #[allow(non_camel_case_types)]
2173 pub type PFN_vkCmdDebugMarkerEndEXT = unsafe extern "system" fn(command_buffer: CommandBuffer);
2174 #[allow(non_camel_case_types)]
2175 pub type PFN_vkCmdDebugMarkerInsertEXT = unsafe extern "system" fn(
2176     command_buffer: CommandBuffer,
2177     p_marker_info: *const DebugMarkerMarkerInfoEXT,
2178 );
2179 #[derive(Clone)]
2180 pub struct ExtDebugMarkerFn {
2181     pub debug_marker_set_object_tag_ext: PFN_vkDebugMarkerSetObjectTagEXT,
2182     pub debug_marker_set_object_name_ext: PFN_vkDebugMarkerSetObjectNameEXT,
2183     pub cmd_debug_marker_begin_ext: PFN_vkCmdDebugMarkerBeginEXT,
2184     pub cmd_debug_marker_end_ext: PFN_vkCmdDebugMarkerEndEXT,
2185     pub cmd_debug_marker_insert_ext: PFN_vkCmdDebugMarkerInsertEXT,
2186 }
2187 unsafe impl Send for ExtDebugMarkerFn {}
2188 unsafe impl Sync for ExtDebugMarkerFn {}
2189 impl ExtDebugMarkerFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2190     pub fn load<F>(mut _f: F) -> Self
2191     where
2192         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2193     {
2194         Self {
2195             debug_marker_set_object_tag_ext: unsafe {
2196                 unsafe extern "system" fn debug_marker_set_object_tag_ext(
2197                     _device: Device,
2198                     _p_tag_info: *const DebugMarkerObjectTagInfoEXT,
2199                 ) -> Result {
2200                     panic!(concat!(
2201                         "Unable to load ",
2202                         stringify!(debug_marker_set_object_tag_ext)
2203                     ))
2204                 }
2205                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2206                     b"vkDebugMarkerSetObjectTagEXT\0",
2207                 );
2208                 let val = _f(cname);
2209                 if val.is_null() {
2210                     debug_marker_set_object_tag_ext
2211                 } else {
2212                     ::std::mem::transmute(val)
2213                 }
2214             },
2215             debug_marker_set_object_name_ext: unsafe {
2216                 unsafe extern "system" fn debug_marker_set_object_name_ext(
2217                     _device: Device,
2218                     _p_name_info: *const DebugMarkerObjectNameInfoEXT,
2219                 ) -> Result {
2220                     panic!(concat!(
2221                         "Unable to load ",
2222                         stringify!(debug_marker_set_object_name_ext)
2223                     ))
2224                 }
2225                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2226                     b"vkDebugMarkerSetObjectNameEXT\0",
2227                 );
2228                 let val = _f(cname);
2229                 if val.is_null() {
2230                     debug_marker_set_object_name_ext
2231                 } else {
2232                     ::std::mem::transmute(val)
2233                 }
2234             },
2235             cmd_debug_marker_begin_ext: unsafe {
2236                 unsafe extern "system" fn cmd_debug_marker_begin_ext(
2237                     _command_buffer: CommandBuffer,
2238                     _p_marker_info: *const DebugMarkerMarkerInfoEXT,
2239                 ) {
2240                     panic!(concat!(
2241                         "Unable to load ",
2242                         stringify!(cmd_debug_marker_begin_ext)
2243                     ))
2244                 }
2245                 let cname =
2246                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerBeginEXT\0");
2247                 let val = _f(cname);
2248                 if val.is_null() {
2249                     cmd_debug_marker_begin_ext
2250                 } else {
2251                     ::std::mem::transmute(val)
2252                 }
2253             },
2254             cmd_debug_marker_end_ext: unsafe {
2255                 unsafe extern "system" fn cmd_debug_marker_end_ext(_command_buffer: CommandBuffer) {
2256                     panic!(concat!(
2257                         "Unable to load ",
2258                         stringify!(cmd_debug_marker_end_ext)
2259                     ))
2260                 }
2261                 let cname =
2262                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerEndEXT\0");
2263                 let val = _f(cname);
2264                 if val.is_null() {
2265                     cmd_debug_marker_end_ext
2266                 } else {
2267                     ::std::mem::transmute(val)
2268                 }
2269             },
2270             cmd_debug_marker_insert_ext: unsafe {
2271                 unsafe extern "system" fn cmd_debug_marker_insert_ext(
2272                     _command_buffer: CommandBuffer,
2273                     _p_marker_info: *const DebugMarkerMarkerInfoEXT,
2274                 ) {
2275                     panic!(concat!(
2276                         "Unable to load ",
2277                         stringify!(cmd_debug_marker_insert_ext)
2278                     ))
2279                 }
2280                 let cname =
2281                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDebugMarkerInsertEXT\0");
2282                 let val = _f(cname);
2283                 if val.is_null() {
2284                     cmd_debug_marker_insert_ext
2285                 } else {
2286                     ::std::mem::transmute(val)
2287                 }
2288             },
2289         }
2290     }
2291     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDebugMarkerSetObjectTagEXT.html>"]
debug_marker_set_object_tag_ext( &self, device: Device, p_tag_info: *const DebugMarkerObjectTagInfoEXT, ) -> Result2292     pub unsafe fn debug_marker_set_object_tag_ext(
2293         &self,
2294         device: Device,
2295         p_tag_info: *const DebugMarkerObjectTagInfoEXT,
2296     ) -> Result {
2297         (self.debug_marker_set_object_tag_ext)(device, p_tag_info)
2298     }
2299     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDebugMarkerSetObjectNameEXT.html>"]
debug_marker_set_object_name_ext( &self, device: Device, p_name_info: *const DebugMarkerObjectNameInfoEXT, ) -> Result2300     pub unsafe fn debug_marker_set_object_name_ext(
2301         &self,
2302         device: Device,
2303         p_name_info: *const DebugMarkerObjectNameInfoEXT,
2304     ) -> Result {
2305         (self.debug_marker_set_object_name_ext)(device, p_name_info)
2306     }
2307     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDebugMarkerBeginEXT.html>"]
cmd_debug_marker_begin_ext( &self, command_buffer: CommandBuffer, p_marker_info: *const DebugMarkerMarkerInfoEXT, )2308     pub unsafe fn cmd_debug_marker_begin_ext(
2309         &self,
2310         command_buffer: CommandBuffer,
2311         p_marker_info: *const DebugMarkerMarkerInfoEXT,
2312     ) {
2313         (self.cmd_debug_marker_begin_ext)(command_buffer, p_marker_info)
2314     }
2315     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDebugMarkerEndEXT.html>"]
cmd_debug_marker_end_ext(&self, command_buffer: CommandBuffer)2316     pub unsafe fn cmd_debug_marker_end_ext(&self, command_buffer: CommandBuffer) {
2317         (self.cmd_debug_marker_end_ext)(command_buffer)
2318     }
2319     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDebugMarkerInsertEXT.html>"]
cmd_debug_marker_insert_ext( &self, command_buffer: CommandBuffer, p_marker_info: *const DebugMarkerMarkerInfoEXT, )2320     pub unsafe fn cmd_debug_marker_insert_ext(
2321         &self,
2322         command_buffer: CommandBuffer,
2323         p_marker_info: *const DebugMarkerMarkerInfoEXT,
2324     ) {
2325         (self.cmd_debug_marker_insert_ext)(command_buffer, p_marker_info)
2326     }
2327 }
2328 #[doc = "Generated from 'VK_EXT_debug_marker'"]
2329 impl StructureType {
2330     pub const DEBUG_MARKER_OBJECT_NAME_INFO_EXT: Self = Self(1_000_022_000);
2331     pub const DEBUG_MARKER_OBJECT_TAG_INFO_EXT: Self = Self(1_000_022_001);
2332     pub const DEBUG_MARKER_MARKER_INFO_EXT: Self = Self(1_000_022_002);
2333 }
2334 impl KhrVideoQueueFn {
name() -> &'static ::std::ffi::CStr2335     pub fn name() -> &'static ::std::ffi::CStr {
2336         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_queue\0") }
2337     }
2338     pub const SPEC_VERSION: u32 = 2u32;
2339 }
2340 #[allow(non_camel_case_types)]
2341 pub type PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR = unsafe extern "system" fn(
2342     physical_device: PhysicalDevice,
2343     p_video_profile: *const VideoProfileKHR,
2344     p_capabilities: *mut VideoCapabilitiesKHR,
2345 ) -> Result;
2346 #[allow(non_camel_case_types)]
2347 pub type PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR = unsafe extern "system" fn(
2348     physical_device: PhysicalDevice,
2349     p_video_format_info: *const PhysicalDeviceVideoFormatInfoKHR,
2350     p_video_format_property_count: *mut u32,
2351     p_video_format_properties: *mut VideoFormatPropertiesKHR,
2352 ) -> Result;
2353 #[allow(non_camel_case_types)]
2354 pub type PFN_vkCreateVideoSessionKHR = unsafe extern "system" fn(
2355     device: Device,
2356     p_create_info: *const VideoSessionCreateInfoKHR,
2357     p_allocator: *const AllocationCallbacks,
2358     p_video_session: *mut VideoSessionKHR,
2359 ) -> Result;
2360 #[allow(non_camel_case_types)]
2361 pub type PFN_vkDestroyVideoSessionKHR = unsafe extern "system" fn(
2362     device: Device,
2363     video_session: VideoSessionKHR,
2364     p_allocator: *const AllocationCallbacks,
2365 );
2366 #[allow(non_camel_case_types)]
2367 pub type PFN_vkGetVideoSessionMemoryRequirementsKHR = unsafe extern "system" fn(
2368     device: Device,
2369     video_session: VideoSessionKHR,
2370     p_video_session_memory_requirements_count: *mut u32,
2371     p_video_session_memory_requirements: *mut VideoGetMemoryPropertiesKHR,
2372 ) -> Result;
2373 #[allow(non_camel_case_types)]
2374 pub type PFN_vkBindVideoSessionMemoryKHR = unsafe extern "system" fn(
2375     device: Device,
2376     video_session: VideoSessionKHR,
2377     video_session_bind_memory_count: u32,
2378     p_video_session_bind_memories: *const VideoBindMemoryKHR,
2379 ) -> Result;
2380 #[allow(non_camel_case_types)]
2381 pub type PFN_vkCreateVideoSessionParametersKHR = unsafe extern "system" fn(
2382     device: Device,
2383     p_create_info: *const VideoSessionParametersCreateInfoKHR,
2384     p_allocator: *const AllocationCallbacks,
2385     p_video_session_parameters: *mut VideoSessionParametersKHR,
2386 ) -> Result;
2387 #[allow(non_camel_case_types)]
2388 pub type PFN_vkUpdateVideoSessionParametersKHR = unsafe extern "system" fn(
2389     device: Device,
2390     video_session_parameters: VideoSessionParametersKHR,
2391     p_update_info: *const VideoSessionParametersUpdateInfoKHR,
2392 ) -> Result;
2393 #[allow(non_camel_case_types)]
2394 pub type PFN_vkDestroyVideoSessionParametersKHR = unsafe extern "system" fn(
2395     device: Device,
2396     video_session_parameters: VideoSessionParametersKHR,
2397     p_allocator: *const AllocationCallbacks,
2398 );
2399 #[allow(non_camel_case_types)]
2400 pub type PFN_vkCmdBeginVideoCodingKHR = unsafe extern "system" fn(
2401     command_buffer: CommandBuffer,
2402     p_begin_info: *const VideoBeginCodingInfoKHR,
2403 );
2404 #[allow(non_camel_case_types)]
2405 pub type PFN_vkCmdEndVideoCodingKHR = unsafe extern "system" fn(
2406     command_buffer: CommandBuffer,
2407     p_end_coding_info: *const VideoEndCodingInfoKHR,
2408 );
2409 #[allow(non_camel_case_types)]
2410 pub type PFN_vkCmdControlVideoCodingKHR = unsafe extern "system" fn(
2411     command_buffer: CommandBuffer,
2412     p_coding_control_info: *const VideoCodingControlInfoKHR,
2413 );
2414 #[derive(Clone)]
2415 pub struct KhrVideoQueueFn {
2416     pub get_physical_device_video_capabilities_khr: PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR,
2417     pub get_physical_device_video_format_properties_khr:
2418         PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR,
2419     pub create_video_session_khr: PFN_vkCreateVideoSessionKHR,
2420     pub destroy_video_session_khr: PFN_vkDestroyVideoSessionKHR,
2421     pub get_video_session_memory_requirements_khr: PFN_vkGetVideoSessionMemoryRequirementsKHR,
2422     pub bind_video_session_memory_khr: PFN_vkBindVideoSessionMemoryKHR,
2423     pub create_video_session_parameters_khr: PFN_vkCreateVideoSessionParametersKHR,
2424     pub update_video_session_parameters_khr: PFN_vkUpdateVideoSessionParametersKHR,
2425     pub destroy_video_session_parameters_khr: PFN_vkDestroyVideoSessionParametersKHR,
2426     pub cmd_begin_video_coding_khr: PFN_vkCmdBeginVideoCodingKHR,
2427     pub cmd_end_video_coding_khr: PFN_vkCmdEndVideoCodingKHR,
2428     pub cmd_control_video_coding_khr: PFN_vkCmdControlVideoCodingKHR,
2429 }
2430 unsafe impl Send for KhrVideoQueueFn {}
2431 unsafe impl Sync for KhrVideoQueueFn {}
2432 impl KhrVideoQueueFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2433     pub fn load<F>(mut _f: F) -> Self
2434     where
2435         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2436     {
2437         Self {
2438             get_physical_device_video_capabilities_khr: unsafe {
2439                 unsafe extern "system" fn get_physical_device_video_capabilities_khr(
2440                     _physical_device: PhysicalDevice,
2441                     _p_video_profile: *const VideoProfileKHR,
2442                     _p_capabilities: *mut VideoCapabilitiesKHR,
2443                 ) -> Result {
2444                     panic!(concat!(
2445                         "Unable to load ",
2446                         stringify!(get_physical_device_video_capabilities_khr)
2447                     ))
2448                 }
2449                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2450                     b"vkGetPhysicalDeviceVideoCapabilitiesKHR\0",
2451                 );
2452                 let val = _f(cname);
2453                 if val.is_null() {
2454                     get_physical_device_video_capabilities_khr
2455                 } else {
2456                     ::std::mem::transmute(val)
2457                 }
2458             },
2459             get_physical_device_video_format_properties_khr: unsafe {
2460                 unsafe extern "system" fn get_physical_device_video_format_properties_khr(
2461                     _physical_device: PhysicalDevice,
2462                     _p_video_format_info: *const PhysicalDeviceVideoFormatInfoKHR,
2463                     _p_video_format_property_count: *mut u32,
2464                     _p_video_format_properties: *mut VideoFormatPropertiesKHR,
2465                 ) -> Result {
2466                     panic!(concat!(
2467                         "Unable to load ",
2468                         stringify!(get_physical_device_video_format_properties_khr)
2469                     ))
2470                 }
2471                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2472                     b"vkGetPhysicalDeviceVideoFormatPropertiesKHR\0",
2473                 );
2474                 let val = _f(cname);
2475                 if val.is_null() {
2476                     get_physical_device_video_format_properties_khr
2477                 } else {
2478                     ::std::mem::transmute(val)
2479                 }
2480             },
2481             create_video_session_khr: unsafe {
2482                 unsafe extern "system" fn create_video_session_khr(
2483                     _device: Device,
2484                     _p_create_info: *const VideoSessionCreateInfoKHR,
2485                     _p_allocator: *const AllocationCallbacks,
2486                     _p_video_session: *mut VideoSessionKHR,
2487                 ) -> Result {
2488                     panic!(concat!(
2489                         "Unable to load ",
2490                         stringify!(create_video_session_khr)
2491                     ))
2492                 }
2493                 let cname =
2494                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateVideoSessionKHR\0");
2495                 let val = _f(cname);
2496                 if val.is_null() {
2497                     create_video_session_khr
2498                 } else {
2499                     ::std::mem::transmute(val)
2500                 }
2501             },
2502             destroy_video_session_khr: unsafe {
2503                 unsafe extern "system" fn destroy_video_session_khr(
2504                     _device: Device,
2505                     _video_session: VideoSessionKHR,
2506                     _p_allocator: *const AllocationCallbacks,
2507                 ) {
2508                     panic!(concat!(
2509                         "Unable to load ",
2510                         stringify!(destroy_video_session_khr)
2511                     ))
2512                 }
2513                 let cname =
2514                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyVideoSessionKHR\0");
2515                 let val = _f(cname);
2516                 if val.is_null() {
2517                     destroy_video_session_khr
2518                 } else {
2519                     ::std::mem::transmute(val)
2520                 }
2521             },
2522             get_video_session_memory_requirements_khr: unsafe {
2523                 unsafe extern "system" fn get_video_session_memory_requirements_khr(
2524                     _device: Device,
2525                     _video_session: VideoSessionKHR,
2526                     _p_video_session_memory_requirements_count: *mut u32,
2527                     _p_video_session_memory_requirements: *mut VideoGetMemoryPropertiesKHR,
2528                 ) -> Result {
2529                     panic!(concat!(
2530                         "Unable to load ",
2531                         stringify!(get_video_session_memory_requirements_khr)
2532                     ))
2533                 }
2534                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2535                     b"vkGetVideoSessionMemoryRequirementsKHR\0",
2536                 );
2537                 let val = _f(cname);
2538                 if val.is_null() {
2539                     get_video_session_memory_requirements_khr
2540                 } else {
2541                     ::std::mem::transmute(val)
2542                 }
2543             },
2544             bind_video_session_memory_khr: unsafe {
2545                 unsafe extern "system" fn bind_video_session_memory_khr(
2546                     _device: Device,
2547                     _video_session: VideoSessionKHR,
2548                     _video_session_bind_memory_count: u32,
2549                     _p_video_session_bind_memories: *const VideoBindMemoryKHR,
2550                 ) -> Result {
2551                     panic!(concat!(
2552                         "Unable to load ",
2553                         stringify!(bind_video_session_memory_khr)
2554                     ))
2555                 }
2556                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2557                     b"vkBindVideoSessionMemoryKHR\0",
2558                 );
2559                 let val = _f(cname);
2560                 if val.is_null() {
2561                     bind_video_session_memory_khr
2562                 } else {
2563                     ::std::mem::transmute(val)
2564                 }
2565             },
2566             create_video_session_parameters_khr: unsafe {
2567                 unsafe extern "system" fn create_video_session_parameters_khr(
2568                     _device: Device,
2569                     _p_create_info: *const VideoSessionParametersCreateInfoKHR,
2570                     _p_allocator: *const AllocationCallbacks,
2571                     _p_video_session_parameters: *mut VideoSessionParametersKHR,
2572                 ) -> Result {
2573                     panic!(concat!(
2574                         "Unable to load ",
2575                         stringify!(create_video_session_parameters_khr)
2576                     ))
2577                 }
2578                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2579                     b"vkCreateVideoSessionParametersKHR\0",
2580                 );
2581                 let val = _f(cname);
2582                 if val.is_null() {
2583                     create_video_session_parameters_khr
2584                 } else {
2585                     ::std::mem::transmute(val)
2586                 }
2587             },
2588             update_video_session_parameters_khr: unsafe {
2589                 unsafe extern "system" fn update_video_session_parameters_khr(
2590                     _device: Device,
2591                     _video_session_parameters: VideoSessionParametersKHR,
2592                     _p_update_info: *const VideoSessionParametersUpdateInfoKHR,
2593                 ) -> Result {
2594                     panic!(concat!(
2595                         "Unable to load ",
2596                         stringify!(update_video_session_parameters_khr)
2597                     ))
2598                 }
2599                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2600                     b"vkUpdateVideoSessionParametersKHR\0",
2601                 );
2602                 let val = _f(cname);
2603                 if val.is_null() {
2604                     update_video_session_parameters_khr
2605                 } else {
2606                     ::std::mem::transmute(val)
2607                 }
2608             },
2609             destroy_video_session_parameters_khr: unsafe {
2610                 unsafe extern "system" fn destroy_video_session_parameters_khr(
2611                     _device: Device,
2612                     _video_session_parameters: VideoSessionParametersKHR,
2613                     _p_allocator: *const AllocationCallbacks,
2614                 ) {
2615                     panic!(concat!(
2616                         "Unable to load ",
2617                         stringify!(destroy_video_session_parameters_khr)
2618                     ))
2619                 }
2620                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2621                     b"vkDestroyVideoSessionParametersKHR\0",
2622                 );
2623                 let val = _f(cname);
2624                 if val.is_null() {
2625                     destroy_video_session_parameters_khr
2626                 } else {
2627                     ::std::mem::transmute(val)
2628                 }
2629             },
2630             cmd_begin_video_coding_khr: unsafe {
2631                 unsafe extern "system" fn cmd_begin_video_coding_khr(
2632                     _command_buffer: CommandBuffer,
2633                     _p_begin_info: *const VideoBeginCodingInfoKHR,
2634                 ) {
2635                     panic!(concat!(
2636                         "Unable to load ",
2637                         stringify!(cmd_begin_video_coding_khr)
2638                     ))
2639                 }
2640                 let cname =
2641                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginVideoCodingKHR\0");
2642                 let val = _f(cname);
2643                 if val.is_null() {
2644                     cmd_begin_video_coding_khr
2645                 } else {
2646                     ::std::mem::transmute(val)
2647                 }
2648             },
2649             cmd_end_video_coding_khr: unsafe {
2650                 unsafe extern "system" fn cmd_end_video_coding_khr(
2651                     _command_buffer: CommandBuffer,
2652                     _p_end_coding_info: *const VideoEndCodingInfoKHR,
2653                 ) {
2654                     panic!(concat!(
2655                         "Unable to load ",
2656                         stringify!(cmd_end_video_coding_khr)
2657                     ))
2658                 }
2659                 let cname =
2660                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdEndVideoCodingKHR\0");
2661                 let val = _f(cname);
2662                 if val.is_null() {
2663                     cmd_end_video_coding_khr
2664                 } else {
2665                     ::std::mem::transmute(val)
2666                 }
2667             },
2668             cmd_control_video_coding_khr: unsafe {
2669                 unsafe extern "system" fn cmd_control_video_coding_khr(
2670                     _command_buffer: CommandBuffer,
2671                     _p_coding_control_info: *const VideoCodingControlInfoKHR,
2672                 ) {
2673                     panic!(concat!(
2674                         "Unable to load ",
2675                         stringify!(cmd_control_video_coding_khr)
2676                     ))
2677                 }
2678                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
2679                     b"vkCmdControlVideoCodingKHR\0",
2680                 );
2681                 let val = _f(cname);
2682                 if val.is_null() {
2683                     cmd_control_video_coding_khr
2684                 } else {
2685                     ::std::mem::transmute(val)
2686                 }
2687             },
2688         }
2689     }
2690     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceVideoCapabilitiesKHR.html>"]
get_physical_device_video_capabilities_khr( &self, physical_device: PhysicalDevice, p_video_profile: *const VideoProfileKHR, p_capabilities: *mut VideoCapabilitiesKHR, ) -> Result2691     pub unsafe fn get_physical_device_video_capabilities_khr(
2692         &self,
2693         physical_device: PhysicalDevice,
2694         p_video_profile: *const VideoProfileKHR,
2695         p_capabilities: *mut VideoCapabilitiesKHR,
2696     ) -> Result {
2697         (self.get_physical_device_video_capabilities_khr)(
2698             physical_device,
2699             p_video_profile,
2700             p_capabilities,
2701         )
2702     }
2703     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceVideoFormatPropertiesKHR.html>"]
get_physical_device_video_format_properties_khr( &self, physical_device: PhysicalDevice, p_video_format_info: *const PhysicalDeviceVideoFormatInfoKHR, p_video_format_property_count: *mut u32, p_video_format_properties: *mut VideoFormatPropertiesKHR, ) -> Result2704     pub unsafe fn get_physical_device_video_format_properties_khr(
2705         &self,
2706         physical_device: PhysicalDevice,
2707         p_video_format_info: *const PhysicalDeviceVideoFormatInfoKHR,
2708         p_video_format_property_count: *mut u32,
2709         p_video_format_properties: *mut VideoFormatPropertiesKHR,
2710     ) -> Result {
2711         (self.get_physical_device_video_format_properties_khr)(
2712             physical_device,
2713             p_video_format_info,
2714             p_video_format_property_count,
2715             p_video_format_properties,
2716         )
2717     }
2718     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateVideoSessionKHR.html>"]
create_video_session_khr( &self, device: Device, p_create_info: *const VideoSessionCreateInfoKHR, p_allocator: *const AllocationCallbacks, p_video_session: *mut VideoSessionKHR, ) -> Result2719     pub unsafe fn create_video_session_khr(
2720         &self,
2721         device: Device,
2722         p_create_info: *const VideoSessionCreateInfoKHR,
2723         p_allocator: *const AllocationCallbacks,
2724         p_video_session: *mut VideoSessionKHR,
2725     ) -> Result {
2726         (self.create_video_session_khr)(device, p_create_info, p_allocator, p_video_session)
2727     }
2728     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroyVideoSessionKHR.html>"]
destroy_video_session_khr( &self, device: Device, video_session: VideoSessionKHR, p_allocator: *const AllocationCallbacks, )2729     pub unsafe fn destroy_video_session_khr(
2730         &self,
2731         device: Device,
2732         video_session: VideoSessionKHR,
2733         p_allocator: *const AllocationCallbacks,
2734     ) {
2735         (self.destroy_video_session_khr)(device, video_session, p_allocator)
2736     }
2737     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetVideoSessionMemoryRequirementsKHR.html>"]
get_video_session_memory_requirements_khr( &self, device: Device, video_session: VideoSessionKHR, p_video_session_memory_requirements_count: *mut u32, p_video_session_memory_requirements: *mut VideoGetMemoryPropertiesKHR, ) -> Result2738     pub unsafe fn get_video_session_memory_requirements_khr(
2739         &self,
2740         device: Device,
2741         video_session: VideoSessionKHR,
2742         p_video_session_memory_requirements_count: *mut u32,
2743         p_video_session_memory_requirements: *mut VideoGetMemoryPropertiesKHR,
2744     ) -> Result {
2745         (self.get_video_session_memory_requirements_khr)(
2746             device,
2747             video_session,
2748             p_video_session_memory_requirements_count,
2749             p_video_session_memory_requirements,
2750         )
2751     }
2752     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkBindVideoSessionMemoryKHR.html>"]
bind_video_session_memory_khr( &self, device: Device, video_session: VideoSessionKHR, video_session_bind_memory_count: u32, p_video_session_bind_memories: *const VideoBindMemoryKHR, ) -> Result2753     pub unsafe fn bind_video_session_memory_khr(
2754         &self,
2755         device: Device,
2756         video_session: VideoSessionKHR,
2757         video_session_bind_memory_count: u32,
2758         p_video_session_bind_memories: *const VideoBindMemoryKHR,
2759     ) -> Result {
2760         (self.bind_video_session_memory_khr)(
2761             device,
2762             video_session,
2763             video_session_bind_memory_count,
2764             p_video_session_bind_memories,
2765         )
2766     }
2767     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateVideoSessionParametersKHR.html>"]
create_video_session_parameters_khr( &self, device: Device, p_create_info: *const VideoSessionParametersCreateInfoKHR, p_allocator: *const AllocationCallbacks, p_video_session_parameters: *mut VideoSessionParametersKHR, ) -> Result2768     pub unsafe fn create_video_session_parameters_khr(
2769         &self,
2770         device: Device,
2771         p_create_info: *const VideoSessionParametersCreateInfoKHR,
2772         p_allocator: *const AllocationCallbacks,
2773         p_video_session_parameters: *mut VideoSessionParametersKHR,
2774     ) -> Result {
2775         (self.create_video_session_parameters_khr)(
2776             device,
2777             p_create_info,
2778             p_allocator,
2779             p_video_session_parameters,
2780         )
2781     }
2782     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkUpdateVideoSessionParametersKHR.html>"]
update_video_session_parameters_khr( &self, device: Device, video_session_parameters: VideoSessionParametersKHR, p_update_info: *const VideoSessionParametersUpdateInfoKHR, ) -> Result2783     pub unsafe fn update_video_session_parameters_khr(
2784         &self,
2785         device: Device,
2786         video_session_parameters: VideoSessionParametersKHR,
2787         p_update_info: *const VideoSessionParametersUpdateInfoKHR,
2788     ) -> Result {
2789         (self.update_video_session_parameters_khr)(device, video_session_parameters, p_update_info)
2790     }
2791     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroyVideoSessionParametersKHR.html>"]
destroy_video_session_parameters_khr( &self, device: Device, video_session_parameters: VideoSessionParametersKHR, p_allocator: *const AllocationCallbacks, )2792     pub unsafe fn destroy_video_session_parameters_khr(
2793         &self,
2794         device: Device,
2795         video_session_parameters: VideoSessionParametersKHR,
2796         p_allocator: *const AllocationCallbacks,
2797     ) {
2798         (self.destroy_video_session_parameters_khr)(device, video_session_parameters, p_allocator)
2799     }
2800     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBeginVideoCodingKHR.html>"]
cmd_begin_video_coding_khr( &self, command_buffer: CommandBuffer, p_begin_info: *const VideoBeginCodingInfoKHR, )2801     pub unsafe fn cmd_begin_video_coding_khr(
2802         &self,
2803         command_buffer: CommandBuffer,
2804         p_begin_info: *const VideoBeginCodingInfoKHR,
2805     ) {
2806         (self.cmd_begin_video_coding_khr)(command_buffer, p_begin_info)
2807     }
2808     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdEndVideoCodingKHR.html>"]
cmd_end_video_coding_khr( &self, command_buffer: CommandBuffer, p_end_coding_info: *const VideoEndCodingInfoKHR, )2809     pub unsafe fn cmd_end_video_coding_khr(
2810         &self,
2811         command_buffer: CommandBuffer,
2812         p_end_coding_info: *const VideoEndCodingInfoKHR,
2813     ) {
2814         (self.cmd_end_video_coding_khr)(command_buffer, p_end_coding_info)
2815     }
2816     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdControlVideoCodingKHR.html>"]
cmd_control_video_coding_khr( &self, command_buffer: CommandBuffer, p_coding_control_info: *const VideoCodingControlInfoKHR, )2817     pub unsafe fn cmd_control_video_coding_khr(
2818         &self,
2819         command_buffer: CommandBuffer,
2820         p_coding_control_info: *const VideoCodingControlInfoKHR,
2821     ) {
2822         (self.cmd_control_video_coding_khr)(command_buffer, p_coding_control_info)
2823     }
2824 }
2825 #[doc = "Generated from 'VK_KHR_video_queue'"]
2826 impl ObjectType {
2827     #[doc = "VkVideoSessionKHR"]
2828     pub const VIDEO_SESSION_KHR: Self = Self(1_000_023_000);
2829     #[doc = "VkVideoSessionParametersKHR"]
2830     pub const VIDEO_SESSION_PARAMETERS_KHR: Self = Self(1_000_023_001);
2831 }
2832 #[doc = "Generated from 'VK_KHR_video_queue'"]
2833 impl QueryResultFlags {
2834     pub const WITH_STATUS_KHR: Self = Self(0b1_0000);
2835 }
2836 #[doc = "Generated from 'VK_KHR_video_queue'"]
2837 impl QueryType {
2838     pub const RESULT_STATUS_ONLY_KHR: Self = Self(1_000_023_000);
2839 }
2840 #[doc = "Generated from 'VK_KHR_video_queue'"]
2841 impl StructureType {
2842     pub const VIDEO_PROFILE_KHR: Self = Self(1_000_023_000);
2843     pub const VIDEO_CAPABILITIES_KHR: Self = Self(1_000_023_001);
2844     pub const VIDEO_PICTURE_RESOURCE_KHR: Self = Self(1_000_023_002);
2845     pub const VIDEO_GET_MEMORY_PROPERTIES_KHR: Self = Self(1_000_023_003);
2846     pub const VIDEO_BIND_MEMORY_KHR: Self = Self(1_000_023_004);
2847     pub const VIDEO_SESSION_CREATE_INFO_KHR: Self = Self(1_000_023_005);
2848     pub const VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR: Self = Self(1_000_023_006);
2849     pub const VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR: Self = Self(1_000_023_007);
2850     pub const VIDEO_BEGIN_CODING_INFO_KHR: Self = Self(1_000_023_008);
2851     pub const VIDEO_END_CODING_INFO_KHR: Self = Self(1_000_023_009);
2852     pub const VIDEO_CODING_CONTROL_INFO_KHR: Self = Self(1_000_023_010);
2853     pub const VIDEO_REFERENCE_SLOT_KHR: Self = Self(1_000_023_011);
2854     pub const VIDEO_QUEUE_FAMILY_PROPERTIES_2_KHR: Self = Self(1_000_023_012);
2855     pub const VIDEO_PROFILES_KHR: Self = Self(1_000_023_013);
2856     pub const PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR: Self = Self(1_000_023_014);
2857     pub const VIDEO_FORMAT_PROPERTIES_KHR: Self = Self(1_000_023_015);
2858     pub const QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_2_KHR: Self = Self(1_000_023_016);
2859 }
2860 impl KhrVideoDecodeQueueFn {
name() -> &'static ::std::ffi::CStr2861     pub fn name() -> &'static ::std::ffi::CStr {
2862         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_decode_queue\0") }
2863     }
2864     pub const SPEC_VERSION: u32 = 2u32;
2865 }
2866 #[allow(non_camel_case_types)]
2867 pub type PFN_vkCmdDecodeVideoKHR = unsafe extern "system" fn(
2868     command_buffer: CommandBuffer,
2869     p_frame_info: *const VideoDecodeInfoKHR,
2870 );
2871 #[derive(Clone)]
2872 pub struct KhrVideoDecodeQueueFn {
2873     pub cmd_decode_video_khr: PFN_vkCmdDecodeVideoKHR,
2874 }
2875 unsafe impl Send for KhrVideoDecodeQueueFn {}
2876 unsafe impl Sync for KhrVideoDecodeQueueFn {}
2877 impl KhrVideoDecodeQueueFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2878     pub fn load<F>(mut _f: F) -> Self
2879     where
2880         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2881     {
2882         Self {
2883             cmd_decode_video_khr: unsafe {
2884                 unsafe extern "system" fn cmd_decode_video_khr(
2885                     _command_buffer: CommandBuffer,
2886                     _p_frame_info: *const VideoDecodeInfoKHR,
2887                 ) {
2888                     panic!(concat!("Unable to load ", stringify!(cmd_decode_video_khr)))
2889                 }
2890                 let cname =
2891                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDecodeVideoKHR\0");
2892                 let val = _f(cname);
2893                 if val.is_null() {
2894                     cmd_decode_video_khr
2895                 } else {
2896                     ::std::mem::transmute(val)
2897                 }
2898             },
2899         }
2900     }
2901     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDecodeVideoKHR.html>"]
cmd_decode_video_khr( &self, command_buffer: CommandBuffer, p_frame_info: *const VideoDecodeInfoKHR, )2902     pub unsafe fn cmd_decode_video_khr(
2903         &self,
2904         command_buffer: CommandBuffer,
2905         p_frame_info: *const VideoDecodeInfoKHR,
2906     ) {
2907         (self.cmd_decode_video_khr)(command_buffer, p_frame_info)
2908     }
2909 }
2910 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2911 impl AccessFlags2KHR {
2912     pub const VIDEO_DECODE_READ: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000);
2913     pub const VIDEO_DECODE_WRITE: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000);
2914 }
2915 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2916 impl BufferUsageFlags {
2917     pub const VIDEO_DECODE_SRC_KHR: Self = Self(0b10_0000_0000_0000);
2918     pub const VIDEO_DECODE_DST_KHR: Self = Self(0b100_0000_0000_0000);
2919 }
2920 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2921 impl FormatFeatureFlags {
2922     pub const VIDEO_DECODE_OUTPUT_KHR: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
2923     pub const VIDEO_DECODE_DPB_KHR: Self = Self(0b100_0000_0000_0000_0000_0000_0000);
2924 }
2925 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2926 impl FormatFeatureFlags2KHR {
2927     pub const VIDEO_DECODE_OUTPUT: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
2928     pub const VIDEO_DECODE_DPB: Self = Self(0b100_0000_0000_0000_0000_0000_0000);
2929 }
2930 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2931 impl ImageLayout {
2932     pub const VIDEO_DECODE_DST_KHR: Self = Self(1_000_024_000);
2933     pub const VIDEO_DECODE_SRC_KHR: Self = Self(1_000_024_001);
2934     pub const VIDEO_DECODE_DPB_KHR: Self = Self(1_000_024_002);
2935 }
2936 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2937 impl ImageUsageFlags {
2938     pub const VIDEO_DECODE_DST_KHR: Self = Self(0b100_0000_0000);
2939     pub const VIDEO_DECODE_SRC_KHR: Self = Self(0b1000_0000_0000);
2940     pub const VIDEO_DECODE_DPB_KHR: Self = Self(0b1_0000_0000_0000);
2941 }
2942 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2943 impl PipelineStageFlags2KHR {
2944     pub const VIDEO_DECODE: Self = Self(0b100_0000_0000_0000_0000_0000_0000);
2945 }
2946 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2947 impl QueueFlags {
2948     pub const VIDEO_DECODE_KHR: Self = Self(0b10_0000);
2949 }
2950 #[doc = "Generated from 'VK_KHR_video_decode_queue'"]
2951 impl StructureType {
2952     pub const VIDEO_DECODE_INFO_KHR: Self = Self(1_000_024_000);
2953 }
2954 impl AmdGcnShaderFn {
name() -> &'static ::std::ffi::CStr2955     pub fn name() -> &'static ::std::ffi::CStr {
2956         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_gcn_shader\0") }
2957     }
2958     pub const SPEC_VERSION: u32 = 1u32;
2959 }
2960 #[derive(Clone)]
2961 pub struct AmdGcnShaderFn {}
2962 unsafe impl Send for AmdGcnShaderFn {}
2963 unsafe impl Sync for AmdGcnShaderFn {}
2964 impl AmdGcnShaderFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2965     pub fn load<F>(mut _f: F) -> Self
2966     where
2967         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2968     {
2969         Self {}
2970     }
2971 }
2972 impl NvDedicatedAllocationFn {
name() -> &'static ::std::ffi::CStr2973     pub fn name() -> &'static ::std::ffi::CStr {
2974         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_dedicated_allocation\0") }
2975     }
2976     pub const SPEC_VERSION: u32 = 1u32;
2977 }
2978 #[derive(Clone)]
2979 pub struct NvDedicatedAllocationFn {}
2980 unsafe impl Send for NvDedicatedAllocationFn {}
2981 unsafe impl Sync for NvDedicatedAllocationFn {}
2982 impl NvDedicatedAllocationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,2983     pub fn load<F>(mut _f: F) -> Self
2984     where
2985         F: FnMut(&::std::ffi::CStr) -> *const c_void,
2986     {
2987         Self {}
2988     }
2989 }
2990 #[doc = "Generated from 'VK_NV_dedicated_allocation'"]
2991 impl StructureType {
2992     pub const DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: Self = Self(1_000_026_000);
2993     pub const DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: Self = Self(1_000_026_001);
2994     pub const DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: Self = Self(1_000_026_002);
2995 }
2996 impl ExtExtension28Fn {
name() -> &'static ::std::ffi::CStr2997     pub fn name() -> &'static ::std::ffi::CStr {
2998         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_28\0") }
2999     }
3000     pub const SPEC_VERSION: u32 = 0u32;
3001 }
3002 #[derive(Clone)]
3003 pub struct ExtExtension28Fn {}
3004 unsafe impl Send for ExtExtension28Fn {}
3005 unsafe impl Sync for ExtExtension28Fn {}
3006 impl ExtExtension28Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3007     pub fn load<F>(mut _f: F) -> Self
3008     where
3009         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3010     {
3011         Self {}
3012     }
3013 }
3014 impl ExtTransformFeedbackFn {
name() -> &'static ::std::ffi::CStr3015     pub fn name() -> &'static ::std::ffi::CStr {
3016         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_transform_feedback\0") }
3017     }
3018     pub const SPEC_VERSION: u32 = 1u32;
3019 }
3020 #[allow(non_camel_case_types)]
3021 pub type PFN_vkCmdBindTransformFeedbackBuffersEXT = unsafe extern "system" fn(
3022     command_buffer: CommandBuffer,
3023     first_binding: u32,
3024     binding_count: u32,
3025     p_buffers: *const Buffer,
3026     p_offsets: *const DeviceSize,
3027     p_sizes: *const DeviceSize,
3028 );
3029 #[allow(non_camel_case_types)]
3030 pub type PFN_vkCmdBeginTransformFeedbackEXT = unsafe extern "system" fn(
3031     command_buffer: CommandBuffer,
3032     first_counter_buffer: u32,
3033     counter_buffer_count: u32,
3034     p_counter_buffers: *const Buffer,
3035     p_counter_buffer_offsets: *const DeviceSize,
3036 );
3037 #[allow(non_camel_case_types)]
3038 pub type PFN_vkCmdEndTransformFeedbackEXT = unsafe extern "system" fn(
3039     command_buffer: CommandBuffer,
3040     first_counter_buffer: u32,
3041     counter_buffer_count: u32,
3042     p_counter_buffers: *const Buffer,
3043     p_counter_buffer_offsets: *const DeviceSize,
3044 );
3045 #[allow(non_camel_case_types)]
3046 pub type PFN_vkCmdBeginQueryIndexedEXT = unsafe extern "system" fn(
3047     command_buffer: CommandBuffer,
3048     query_pool: QueryPool,
3049     query: u32,
3050     flags: QueryControlFlags,
3051     index: u32,
3052 );
3053 #[allow(non_camel_case_types)]
3054 pub type PFN_vkCmdEndQueryIndexedEXT = unsafe extern "system" fn(
3055     command_buffer: CommandBuffer,
3056     query_pool: QueryPool,
3057     query: u32,
3058     index: u32,
3059 );
3060 #[allow(non_camel_case_types)]
3061 pub type PFN_vkCmdDrawIndirectByteCountEXT = unsafe extern "system" fn(
3062     command_buffer: CommandBuffer,
3063     instance_count: u32,
3064     first_instance: u32,
3065     counter_buffer: Buffer,
3066     counter_buffer_offset: DeviceSize,
3067     counter_offset: u32,
3068     vertex_stride: u32,
3069 );
3070 #[derive(Clone)]
3071 pub struct ExtTransformFeedbackFn {
3072     pub cmd_bind_transform_feedback_buffers_ext: PFN_vkCmdBindTransformFeedbackBuffersEXT,
3073     pub cmd_begin_transform_feedback_ext: PFN_vkCmdBeginTransformFeedbackEXT,
3074     pub cmd_end_transform_feedback_ext: PFN_vkCmdEndTransformFeedbackEXT,
3075     pub cmd_begin_query_indexed_ext: PFN_vkCmdBeginQueryIndexedEXT,
3076     pub cmd_end_query_indexed_ext: PFN_vkCmdEndQueryIndexedEXT,
3077     pub cmd_draw_indirect_byte_count_ext: PFN_vkCmdDrawIndirectByteCountEXT,
3078 }
3079 unsafe impl Send for ExtTransformFeedbackFn {}
3080 unsafe impl Sync for ExtTransformFeedbackFn {}
3081 impl ExtTransformFeedbackFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3082     pub fn load<F>(mut _f: F) -> Self
3083     where
3084         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3085     {
3086         Self {
3087             cmd_bind_transform_feedback_buffers_ext: unsafe {
3088                 unsafe extern "system" fn cmd_bind_transform_feedback_buffers_ext(
3089                     _command_buffer: CommandBuffer,
3090                     _first_binding: u32,
3091                     _binding_count: u32,
3092                     _p_buffers: *const Buffer,
3093                     _p_offsets: *const DeviceSize,
3094                     _p_sizes: *const DeviceSize,
3095                 ) {
3096                     panic!(concat!(
3097                         "Unable to load ",
3098                         stringify!(cmd_bind_transform_feedback_buffers_ext)
3099                     ))
3100                 }
3101                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3102                     b"vkCmdBindTransformFeedbackBuffersEXT\0",
3103                 );
3104                 let val = _f(cname);
3105                 if val.is_null() {
3106                     cmd_bind_transform_feedback_buffers_ext
3107                 } else {
3108                     ::std::mem::transmute(val)
3109                 }
3110             },
3111             cmd_begin_transform_feedback_ext: unsafe {
3112                 unsafe extern "system" fn cmd_begin_transform_feedback_ext(
3113                     _command_buffer: CommandBuffer,
3114                     _first_counter_buffer: u32,
3115                     _counter_buffer_count: u32,
3116                     _p_counter_buffers: *const Buffer,
3117                     _p_counter_buffer_offsets: *const DeviceSize,
3118                 ) {
3119                     panic!(concat!(
3120                         "Unable to load ",
3121                         stringify!(cmd_begin_transform_feedback_ext)
3122                     ))
3123                 }
3124                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3125                     b"vkCmdBeginTransformFeedbackEXT\0",
3126                 );
3127                 let val = _f(cname);
3128                 if val.is_null() {
3129                     cmd_begin_transform_feedback_ext
3130                 } else {
3131                     ::std::mem::transmute(val)
3132                 }
3133             },
3134             cmd_end_transform_feedback_ext: unsafe {
3135                 unsafe extern "system" fn cmd_end_transform_feedback_ext(
3136                     _command_buffer: CommandBuffer,
3137                     _first_counter_buffer: u32,
3138                     _counter_buffer_count: u32,
3139                     _p_counter_buffers: *const Buffer,
3140                     _p_counter_buffer_offsets: *const DeviceSize,
3141                 ) {
3142                     panic!(concat!(
3143                         "Unable to load ",
3144                         stringify!(cmd_end_transform_feedback_ext)
3145                     ))
3146                 }
3147                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3148                     b"vkCmdEndTransformFeedbackEXT\0",
3149                 );
3150                 let val = _f(cname);
3151                 if val.is_null() {
3152                     cmd_end_transform_feedback_ext
3153                 } else {
3154                     ::std::mem::transmute(val)
3155                 }
3156             },
3157             cmd_begin_query_indexed_ext: unsafe {
3158                 unsafe extern "system" fn cmd_begin_query_indexed_ext(
3159                     _command_buffer: CommandBuffer,
3160                     _query_pool: QueryPool,
3161                     _query: u32,
3162                     _flags: QueryControlFlags,
3163                     _index: u32,
3164                 ) {
3165                     panic!(concat!(
3166                         "Unable to load ",
3167                         stringify!(cmd_begin_query_indexed_ext)
3168                     ))
3169                 }
3170                 let cname =
3171                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginQueryIndexedEXT\0");
3172                 let val = _f(cname);
3173                 if val.is_null() {
3174                     cmd_begin_query_indexed_ext
3175                 } else {
3176                     ::std::mem::transmute(val)
3177                 }
3178             },
3179             cmd_end_query_indexed_ext: unsafe {
3180                 unsafe extern "system" fn cmd_end_query_indexed_ext(
3181                     _command_buffer: CommandBuffer,
3182                     _query_pool: QueryPool,
3183                     _query: u32,
3184                     _index: u32,
3185                 ) {
3186                     panic!(concat!(
3187                         "Unable to load ",
3188                         stringify!(cmd_end_query_indexed_ext)
3189                     ))
3190                 }
3191                 let cname =
3192                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdEndQueryIndexedEXT\0");
3193                 let val = _f(cname);
3194                 if val.is_null() {
3195                     cmd_end_query_indexed_ext
3196                 } else {
3197                     ::std::mem::transmute(val)
3198                 }
3199             },
3200             cmd_draw_indirect_byte_count_ext: unsafe {
3201                 unsafe extern "system" fn cmd_draw_indirect_byte_count_ext(
3202                     _command_buffer: CommandBuffer,
3203                     _instance_count: u32,
3204                     _first_instance: u32,
3205                     _counter_buffer: Buffer,
3206                     _counter_buffer_offset: DeviceSize,
3207                     _counter_offset: u32,
3208                     _vertex_stride: u32,
3209                 ) {
3210                     panic!(concat!(
3211                         "Unable to load ",
3212                         stringify!(cmd_draw_indirect_byte_count_ext)
3213                     ))
3214                 }
3215                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3216                     b"vkCmdDrawIndirectByteCountEXT\0",
3217                 );
3218                 let val = _f(cname);
3219                 if val.is_null() {
3220                     cmd_draw_indirect_byte_count_ext
3221                 } else {
3222                     ::std::mem::transmute(val)
3223                 }
3224             },
3225         }
3226     }
3227     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBindTransformFeedbackBuffersEXT.html>"]
cmd_bind_transform_feedback_buffers_ext( &self, command_buffer: CommandBuffer, first_binding: u32, binding_count: u32, p_buffers: *const Buffer, p_offsets: *const DeviceSize, p_sizes: *const DeviceSize, )3228     pub unsafe fn cmd_bind_transform_feedback_buffers_ext(
3229         &self,
3230         command_buffer: CommandBuffer,
3231         first_binding: u32,
3232         binding_count: u32,
3233         p_buffers: *const Buffer,
3234         p_offsets: *const DeviceSize,
3235         p_sizes: *const DeviceSize,
3236     ) {
3237         (self.cmd_bind_transform_feedback_buffers_ext)(
3238             command_buffer,
3239             first_binding,
3240             binding_count,
3241             p_buffers,
3242             p_offsets,
3243             p_sizes,
3244         )
3245     }
3246     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBeginTransformFeedbackEXT.html>"]
cmd_begin_transform_feedback_ext( &self, command_buffer: CommandBuffer, first_counter_buffer: u32, counter_buffer_count: u32, p_counter_buffers: *const Buffer, p_counter_buffer_offsets: *const DeviceSize, )3247     pub unsafe fn cmd_begin_transform_feedback_ext(
3248         &self,
3249         command_buffer: CommandBuffer,
3250         first_counter_buffer: u32,
3251         counter_buffer_count: u32,
3252         p_counter_buffers: *const Buffer,
3253         p_counter_buffer_offsets: *const DeviceSize,
3254     ) {
3255         (self.cmd_begin_transform_feedback_ext)(
3256             command_buffer,
3257             first_counter_buffer,
3258             counter_buffer_count,
3259             p_counter_buffers,
3260             p_counter_buffer_offsets,
3261         )
3262     }
3263     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdEndTransformFeedbackEXT.html>"]
cmd_end_transform_feedback_ext( &self, command_buffer: CommandBuffer, first_counter_buffer: u32, counter_buffer_count: u32, p_counter_buffers: *const Buffer, p_counter_buffer_offsets: *const DeviceSize, )3264     pub unsafe fn cmd_end_transform_feedback_ext(
3265         &self,
3266         command_buffer: CommandBuffer,
3267         first_counter_buffer: u32,
3268         counter_buffer_count: u32,
3269         p_counter_buffers: *const Buffer,
3270         p_counter_buffer_offsets: *const DeviceSize,
3271     ) {
3272         (self.cmd_end_transform_feedback_ext)(
3273             command_buffer,
3274             first_counter_buffer,
3275             counter_buffer_count,
3276             p_counter_buffers,
3277             p_counter_buffer_offsets,
3278         )
3279     }
3280     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBeginQueryIndexedEXT.html>"]
cmd_begin_query_indexed_ext( &self, command_buffer: CommandBuffer, query_pool: QueryPool, query: u32, flags: QueryControlFlags, index: u32, )3281     pub unsafe fn cmd_begin_query_indexed_ext(
3282         &self,
3283         command_buffer: CommandBuffer,
3284         query_pool: QueryPool,
3285         query: u32,
3286         flags: QueryControlFlags,
3287         index: u32,
3288     ) {
3289         (self.cmd_begin_query_indexed_ext)(command_buffer, query_pool, query, flags, index)
3290     }
3291     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdEndQueryIndexedEXT.html>"]
cmd_end_query_indexed_ext( &self, command_buffer: CommandBuffer, query_pool: QueryPool, query: u32, index: u32, )3292     pub unsafe fn cmd_end_query_indexed_ext(
3293         &self,
3294         command_buffer: CommandBuffer,
3295         query_pool: QueryPool,
3296         query: u32,
3297         index: u32,
3298     ) {
3299         (self.cmd_end_query_indexed_ext)(command_buffer, query_pool, query, index)
3300     }
3301     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDrawIndirectByteCountEXT.html>"]
cmd_draw_indirect_byte_count_ext( &self, command_buffer: CommandBuffer, instance_count: u32, first_instance: u32, counter_buffer: Buffer, counter_buffer_offset: DeviceSize, counter_offset: u32, vertex_stride: u32, )3302     pub unsafe fn cmd_draw_indirect_byte_count_ext(
3303         &self,
3304         command_buffer: CommandBuffer,
3305         instance_count: u32,
3306         first_instance: u32,
3307         counter_buffer: Buffer,
3308         counter_buffer_offset: DeviceSize,
3309         counter_offset: u32,
3310         vertex_stride: u32,
3311     ) {
3312         (self.cmd_draw_indirect_byte_count_ext)(
3313             command_buffer,
3314             instance_count,
3315             first_instance,
3316             counter_buffer,
3317             counter_buffer_offset,
3318             counter_offset,
3319             vertex_stride,
3320         )
3321     }
3322 }
3323 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
3324 impl AccessFlags {
3325     pub const TRANSFORM_FEEDBACK_WRITE_EXT: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
3326     pub const TRANSFORM_FEEDBACK_COUNTER_READ_EXT: Self = Self(0b100_0000_0000_0000_0000_0000_0000);
3327     pub const TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT: Self =
3328         Self(0b1000_0000_0000_0000_0000_0000_0000);
3329 }
3330 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
3331 impl BufferUsageFlags {
3332     pub const TRANSFORM_FEEDBACK_BUFFER_EXT: Self = Self(0b1000_0000_0000);
3333     pub const TRANSFORM_FEEDBACK_COUNTER_BUFFER_EXT: Self = Self(0b1_0000_0000_0000);
3334 }
3335 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
3336 impl PipelineStageFlags {
3337     pub const TRANSFORM_FEEDBACK_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
3338 }
3339 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
3340 impl QueryType {
3341     pub const TRANSFORM_FEEDBACK_STREAM_EXT: Self = Self(1_000_028_004);
3342 }
3343 #[doc = "Generated from 'VK_EXT_transform_feedback'"]
3344 impl StructureType {
3345     pub const PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: Self = Self(1_000_028_000);
3346     pub const PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: Self = Self(1_000_028_001);
3347     pub const PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: Self = Self(1_000_028_002);
3348 }
3349 impl NvxBinaryImportFn {
name() -> &'static ::std::ffi::CStr3350     pub fn name() -> &'static ::std::ffi::CStr {
3351         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NVX_binary_import\0") }
3352     }
3353     pub const SPEC_VERSION: u32 = 1u32;
3354 }
3355 #[allow(non_camel_case_types)]
3356 pub type PFN_vkCreateCuModuleNVX = unsafe extern "system" fn(
3357     device: Device,
3358     p_create_info: *const CuModuleCreateInfoNVX,
3359     p_allocator: *const AllocationCallbacks,
3360     p_module: *mut CuModuleNVX,
3361 ) -> Result;
3362 #[allow(non_camel_case_types)]
3363 pub type PFN_vkCreateCuFunctionNVX = unsafe extern "system" fn(
3364     device: Device,
3365     p_create_info: *const CuFunctionCreateInfoNVX,
3366     p_allocator: *const AllocationCallbacks,
3367     p_function: *mut CuFunctionNVX,
3368 ) -> Result;
3369 #[allow(non_camel_case_types)]
3370 pub type PFN_vkDestroyCuModuleNVX = unsafe extern "system" fn(
3371     device: Device,
3372     module: CuModuleNVX,
3373     p_allocator: *const AllocationCallbacks,
3374 );
3375 #[allow(non_camel_case_types)]
3376 pub type PFN_vkDestroyCuFunctionNVX = unsafe extern "system" fn(
3377     device: Device,
3378     function: CuFunctionNVX,
3379     p_allocator: *const AllocationCallbacks,
3380 );
3381 #[allow(non_camel_case_types)]
3382 pub type PFN_vkCmdCuLaunchKernelNVX =
3383     unsafe extern "system" fn(command_buffer: CommandBuffer, p_launch_info: *const CuLaunchInfoNVX);
3384 #[derive(Clone)]
3385 pub struct NvxBinaryImportFn {
3386     pub create_cu_module_nvx: PFN_vkCreateCuModuleNVX,
3387     pub create_cu_function_nvx: PFN_vkCreateCuFunctionNVX,
3388     pub destroy_cu_module_nvx: PFN_vkDestroyCuModuleNVX,
3389     pub destroy_cu_function_nvx: PFN_vkDestroyCuFunctionNVX,
3390     pub cmd_cu_launch_kernel_nvx: PFN_vkCmdCuLaunchKernelNVX,
3391 }
3392 unsafe impl Send for NvxBinaryImportFn {}
3393 unsafe impl Sync for NvxBinaryImportFn {}
3394 impl NvxBinaryImportFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3395     pub fn load<F>(mut _f: F) -> Self
3396     where
3397         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3398     {
3399         Self {
3400             create_cu_module_nvx: unsafe {
3401                 unsafe extern "system" fn create_cu_module_nvx(
3402                     _device: Device,
3403                     _p_create_info: *const CuModuleCreateInfoNVX,
3404                     _p_allocator: *const AllocationCallbacks,
3405                     _p_module: *mut CuModuleNVX,
3406                 ) -> Result {
3407                     panic!(concat!("Unable to load ", stringify!(create_cu_module_nvx)))
3408                 }
3409                 let cname =
3410                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateCuModuleNVX\0");
3411                 let val = _f(cname);
3412                 if val.is_null() {
3413                     create_cu_module_nvx
3414                 } else {
3415                     ::std::mem::transmute(val)
3416                 }
3417             },
3418             create_cu_function_nvx: unsafe {
3419                 unsafe extern "system" fn create_cu_function_nvx(
3420                     _device: Device,
3421                     _p_create_info: *const CuFunctionCreateInfoNVX,
3422                     _p_allocator: *const AllocationCallbacks,
3423                     _p_function: *mut CuFunctionNVX,
3424                 ) -> Result {
3425                     panic!(concat!(
3426                         "Unable to load ",
3427                         stringify!(create_cu_function_nvx)
3428                     ))
3429                 }
3430                 let cname =
3431                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateCuFunctionNVX\0");
3432                 let val = _f(cname);
3433                 if val.is_null() {
3434                     create_cu_function_nvx
3435                 } else {
3436                     ::std::mem::transmute(val)
3437                 }
3438             },
3439             destroy_cu_module_nvx: unsafe {
3440                 unsafe extern "system" fn destroy_cu_module_nvx(
3441                     _device: Device,
3442                     _module: CuModuleNVX,
3443                     _p_allocator: *const AllocationCallbacks,
3444                 ) {
3445                     panic!(concat!(
3446                         "Unable to load ",
3447                         stringify!(destroy_cu_module_nvx)
3448                     ))
3449                 }
3450                 let cname =
3451                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyCuModuleNVX\0");
3452                 let val = _f(cname);
3453                 if val.is_null() {
3454                     destroy_cu_module_nvx
3455                 } else {
3456                     ::std::mem::transmute(val)
3457                 }
3458             },
3459             destroy_cu_function_nvx: unsafe {
3460                 unsafe extern "system" fn destroy_cu_function_nvx(
3461                     _device: Device,
3462                     _function: CuFunctionNVX,
3463                     _p_allocator: *const AllocationCallbacks,
3464                 ) {
3465                     panic!(concat!(
3466                         "Unable to load ",
3467                         stringify!(destroy_cu_function_nvx)
3468                     ))
3469                 }
3470                 let cname =
3471                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDestroyCuFunctionNVX\0");
3472                 let val = _f(cname);
3473                 if val.is_null() {
3474                     destroy_cu_function_nvx
3475                 } else {
3476                     ::std::mem::transmute(val)
3477                 }
3478             },
3479             cmd_cu_launch_kernel_nvx: unsafe {
3480                 unsafe extern "system" fn cmd_cu_launch_kernel_nvx(
3481                     _command_buffer: CommandBuffer,
3482                     _p_launch_info: *const CuLaunchInfoNVX,
3483                 ) {
3484                     panic!(concat!(
3485                         "Unable to load ",
3486                         stringify!(cmd_cu_launch_kernel_nvx)
3487                     ))
3488                 }
3489                 let cname =
3490                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdCuLaunchKernelNVX\0");
3491                 let val = _f(cname);
3492                 if val.is_null() {
3493                     cmd_cu_launch_kernel_nvx
3494                 } else {
3495                     ::std::mem::transmute(val)
3496                 }
3497             },
3498         }
3499     }
3500     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateCuModuleNVX.html>"]
create_cu_module_nvx( &self, device: Device, p_create_info: *const CuModuleCreateInfoNVX, p_allocator: *const AllocationCallbacks, p_module: *mut CuModuleNVX, ) -> Result3501     pub unsafe fn create_cu_module_nvx(
3502         &self,
3503         device: Device,
3504         p_create_info: *const CuModuleCreateInfoNVX,
3505         p_allocator: *const AllocationCallbacks,
3506         p_module: *mut CuModuleNVX,
3507     ) -> Result {
3508         (self.create_cu_module_nvx)(device, p_create_info, p_allocator, p_module)
3509     }
3510     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateCuFunctionNVX.html>"]
create_cu_function_nvx( &self, device: Device, p_create_info: *const CuFunctionCreateInfoNVX, p_allocator: *const AllocationCallbacks, p_function: *mut CuFunctionNVX, ) -> Result3511     pub unsafe fn create_cu_function_nvx(
3512         &self,
3513         device: Device,
3514         p_create_info: *const CuFunctionCreateInfoNVX,
3515         p_allocator: *const AllocationCallbacks,
3516         p_function: *mut CuFunctionNVX,
3517     ) -> Result {
3518         (self.create_cu_function_nvx)(device, p_create_info, p_allocator, p_function)
3519     }
3520     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroyCuModuleNVX.html>"]
destroy_cu_module_nvx( &self, device: Device, module: CuModuleNVX, p_allocator: *const AllocationCallbacks, )3521     pub unsafe fn destroy_cu_module_nvx(
3522         &self,
3523         device: Device,
3524         module: CuModuleNVX,
3525         p_allocator: *const AllocationCallbacks,
3526     ) {
3527         (self.destroy_cu_module_nvx)(device, module, p_allocator)
3528     }
3529     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroyCuFunctionNVX.html>"]
destroy_cu_function_nvx( &self, device: Device, function: CuFunctionNVX, p_allocator: *const AllocationCallbacks, )3530     pub unsafe fn destroy_cu_function_nvx(
3531         &self,
3532         device: Device,
3533         function: CuFunctionNVX,
3534         p_allocator: *const AllocationCallbacks,
3535     ) {
3536         (self.destroy_cu_function_nvx)(device, function, p_allocator)
3537     }
3538     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdCuLaunchKernelNVX.html>"]
cmd_cu_launch_kernel_nvx( &self, command_buffer: CommandBuffer, p_launch_info: *const CuLaunchInfoNVX, )3539     pub unsafe fn cmd_cu_launch_kernel_nvx(
3540         &self,
3541         command_buffer: CommandBuffer,
3542         p_launch_info: *const CuLaunchInfoNVX,
3543     ) {
3544         (self.cmd_cu_launch_kernel_nvx)(command_buffer, p_launch_info)
3545     }
3546 }
3547 #[doc = "Generated from 'VK_NVX_binary_import'"]
3548 impl DebugReportObjectTypeEXT {
3549     pub const CU_MODULE_NVX: Self = Self(1_000_029_000);
3550     pub const CU_FUNCTION_NVX: Self = Self(1_000_029_001);
3551 }
3552 #[doc = "Generated from 'VK_NVX_binary_import'"]
3553 impl ObjectType {
3554     pub const CU_MODULE_NVX: Self = Self(1_000_029_000);
3555     pub const CU_FUNCTION_NVX: Self = Self(1_000_029_001);
3556 }
3557 #[doc = "Generated from 'VK_NVX_binary_import'"]
3558 impl StructureType {
3559     pub const CU_MODULE_CREATE_INFO_NVX: Self = Self(1_000_029_000);
3560     pub const CU_FUNCTION_CREATE_INFO_NVX: Self = Self(1_000_029_001);
3561     pub const CU_LAUNCH_INFO_NVX: Self = Self(1_000_029_002);
3562 }
3563 impl NvxImageViewHandleFn {
name() -> &'static ::std::ffi::CStr3564     pub fn name() -> &'static ::std::ffi::CStr {
3565         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NVX_image_view_handle\0") }
3566     }
3567     pub const SPEC_VERSION: u32 = 2u32;
3568 }
3569 #[allow(non_camel_case_types)]
3570 pub type PFN_vkGetImageViewHandleNVX =
3571     unsafe extern "system" fn(device: Device, p_info: *const ImageViewHandleInfoNVX) -> u32;
3572 #[allow(non_camel_case_types)]
3573 pub type PFN_vkGetImageViewAddressNVX = unsafe extern "system" fn(
3574     device: Device,
3575     image_view: ImageView,
3576     p_properties: *mut ImageViewAddressPropertiesNVX,
3577 ) -> Result;
3578 #[derive(Clone)]
3579 pub struct NvxImageViewHandleFn {
3580     pub get_image_view_handle_nvx: PFN_vkGetImageViewHandleNVX,
3581     pub get_image_view_address_nvx: PFN_vkGetImageViewAddressNVX,
3582 }
3583 unsafe impl Send for NvxImageViewHandleFn {}
3584 unsafe impl Sync for NvxImageViewHandleFn {}
3585 impl NvxImageViewHandleFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3586     pub fn load<F>(mut _f: F) -> Self
3587     where
3588         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3589     {
3590         Self {
3591             get_image_view_handle_nvx: unsafe {
3592                 unsafe extern "system" fn get_image_view_handle_nvx(
3593                     _device: Device,
3594                     _p_info: *const ImageViewHandleInfoNVX,
3595                 ) -> u32 {
3596                     panic!(concat!(
3597                         "Unable to load ",
3598                         stringify!(get_image_view_handle_nvx)
3599                     ))
3600                 }
3601                 let cname =
3602                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetImageViewHandleNVX\0");
3603                 let val = _f(cname);
3604                 if val.is_null() {
3605                     get_image_view_handle_nvx
3606                 } else {
3607                     ::std::mem::transmute(val)
3608                 }
3609             },
3610             get_image_view_address_nvx: unsafe {
3611                 unsafe extern "system" fn get_image_view_address_nvx(
3612                     _device: Device,
3613                     _image_view: ImageView,
3614                     _p_properties: *mut ImageViewAddressPropertiesNVX,
3615                 ) -> Result {
3616                     panic!(concat!(
3617                         "Unable to load ",
3618                         stringify!(get_image_view_address_nvx)
3619                     ))
3620                 }
3621                 let cname =
3622                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetImageViewAddressNVX\0");
3623                 let val = _f(cname);
3624                 if val.is_null() {
3625                     get_image_view_address_nvx
3626                 } else {
3627                     ::std::mem::transmute(val)
3628                 }
3629             },
3630         }
3631     }
3632     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetImageViewHandleNVX.html>"]
get_image_view_handle_nvx( &self, device: Device, p_info: *const ImageViewHandleInfoNVX, ) -> u323633     pub unsafe fn get_image_view_handle_nvx(
3634         &self,
3635         device: Device,
3636         p_info: *const ImageViewHandleInfoNVX,
3637     ) -> u32 {
3638         (self.get_image_view_handle_nvx)(device, p_info)
3639     }
3640     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetImageViewAddressNVX.html>"]
get_image_view_address_nvx( &self, device: Device, image_view: ImageView, p_properties: *mut ImageViewAddressPropertiesNVX, ) -> Result3641     pub unsafe fn get_image_view_address_nvx(
3642         &self,
3643         device: Device,
3644         image_view: ImageView,
3645         p_properties: *mut ImageViewAddressPropertiesNVX,
3646     ) -> Result {
3647         (self.get_image_view_address_nvx)(device, image_view, p_properties)
3648     }
3649 }
3650 #[doc = "Generated from 'VK_NVX_image_view_handle'"]
3651 impl StructureType {
3652     pub const IMAGE_VIEW_HANDLE_INFO_NVX: Self = Self(1_000_030_000);
3653     pub const IMAGE_VIEW_ADDRESS_PROPERTIES_NVX: Self = Self(1_000_030_001);
3654 }
3655 impl AmdExtension32Fn {
name() -> &'static ::std::ffi::CStr3656     pub fn name() -> &'static ::std::ffi::CStr {
3657         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_32\0") }
3658     }
3659     pub const SPEC_VERSION: u32 = 0u32;
3660 }
3661 #[derive(Clone)]
3662 pub struct AmdExtension32Fn {}
3663 unsafe impl Send for AmdExtension32Fn {}
3664 unsafe impl Sync for AmdExtension32Fn {}
3665 impl AmdExtension32Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3666     pub fn load<F>(mut _f: F) -> Self
3667     where
3668         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3669     {
3670         Self {}
3671     }
3672 }
3673 impl AmdExtension33Fn {
name() -> &'static ::std::ffi::CStr3674     pub fn name() -> &'static ::std::ffi::CStr {
3675         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_33\0") }
3676     }
3677     pub const SPEC_VERSION: u32 = 0u32;
3678 }
3679 #[derive(Clone)]
3680 pub struct AmdExtension33Fn {}
3681 unsafe impl Send for AmdExtension33Fn {}
3682 unsafe impl Sync for AmdExtension33Fn {}
3683 impl AmdExtension33Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3684     pub fn load<F>(mut _f: F) -> Self
3685     where
3686         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3687     {
3688         Self {}
3689     }
3690 }
3691 impl AmdDrawIndirectCountFn {
name() -> &'static ::std::ffi::CStr3692     pub fn name() -> &'static ::std::ffi::CStr {
3693         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_draw_indirect_count\0") }
3694     }
3695     pub const SPEC_VERSION: u32 = 2u32;
3696 }
3697 #[allow(non_camel_case_types)]
3698 pub type PFN_vkCmdDrawIndirectCount = unsafe extern "system" fn(
3699     command_buffer: CommandBuffer,
3700     buffer: Buffer,
3701     offset: DeviceSize,
3702     count_buffer: Buffer,
3703     count_buffer_offset: DeviceSize,
3704     max_draw_count: u32,
3705     stride: u32,
3706 );
3707 #[allow(non_camel_case_types)]
3708 pub type PFN_vkCmdDrawIndexedIndirectCount = unsafe extern "system" fn(
3709     command_buffer: CommandBuffer,
3710     buffer: Buffer,
3711     offset: DeviceSize,
3712     count_buffer: Buffer,
3713     count_buffer_offset: DeviceSize,
3714     max_draw_count: u32,
3715     stride: u32,
3716 );
3717 #[derive(Clone)]
3718 pub struct AmdDrawIndirectCountFn {
3719     pub cmd_draw_indirect_count_amd: PFN_vkCmdDrawIndirectCount,
3720     pub cmd_draw_indexed_indirect_count_amd: PFN_vkCmdDrawIndexedIndirectCount,
3721 }
3722 unsafe impl Send for AmdDrawIndirectCountFn {}
3723 unsafe impl Sync for AmdDrawIndirectCountFn {}
3724 impl AmdDrawIndirectCountFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3725     pub fn load<F>(mut _f: F) -> Self
3726     where
3727         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3728     {
3729         Self {
3730             cmd_draw_indirect_count_amd: unsafe {
3731                 unsafe extern "system" fn cmd_draw_indirect_count_amd(
3732                     _command_buffer: CommandBuffer,
3733                     _buffer: Buffer,
3734                     _offset: DeviceSize,
3735                     _count_buffer: Buffer,
3736                     _count_buffer_offset: DeviceSize,
3737                     _max_draw_count: u32,
3738                     _stride: u32,
3739                 ) {
3740                     panic!(concat!(
3741                         "Unable to load ",
3742                         stringify!(cmd_draw_indirect_count_amd)
3743                     ))
3744                 }
3745                 let cname =
3746                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectCountAMD\0");
3747                 let val = _f(cname);
3748                 if val.is_null() {
3749                     cmd_draw_indirect_count_amd
3750                 } else {
3751                     ::std::mem::transmute(val)
3752                 }
3753             },
3754             cmd_draw_indexed_indirect_count_amd: unsafe {
3755                 unsafe extern "system" fn cmd_draw_indexed_indirect_count_amd(
3756                     _command_buffer: CommandBuffer,
3757                     _buffer: Buffer,
3758                     _offset: DeviceSize,
3759                     _count_buffer: Buffer,
3760                     _count_buffer_offset: DeviceSize,
3761                     _max_draw_count: u32,
3762                     _stride: u32,
3763                 ) {
3764                     panic!(concat!(
3765                         "Unable to load ",
3766                         stringify!(cmd_draw_indexed_indirect_count_amd)
3767                     ))
3768                 }
3769                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
3770                     b"vkCmdDrawIndexedIndirectCountAMD\0",
3771                 );
3772                 let val = _f(cname);
3773                 if val.is_null() {
3774                     cmd_draw_indexed_indirect_count_amd
3775                 } else {
3776                     ::std::mem::transmute(val)
3777                 }
3778             },
3779         }
3780     }
3781     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDrawIndirectCountAMD.html>"]
cmd_draw_indirect_count_amd( &self, command_buffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, count_buffer: Buffer, count_buffer_offset: DeviceSize, max_draw_count: u32, stride: u32, )3782     pub unsafe fn cmd_draw_indirect_count_amd(
3783         &self,
3784         command_buffer: CommandBuffer,
3785         buffer: Buffer,
3786         offset: DeviceSize,
3787         count_buffer: Buffer,
3788         count_buffer_offset: DeviceSize,
3789         max_draw_count: u32,
3790         stride: u32,
3791     ) {
3792         (self.cmd_draw_indirect_count_amd)(
3793             command_buffer,
3794             buffer,
3795             offset,
3796             count_buffer,
3797             count_buffer_offset,
3798             max_draw_count,
3799             stride,
3800         )
3801     }
3802     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDrawIndexedIndirectCountAMD.html>"]
cmd_draw_indexed_indirect_count_amd( &self, command_buffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, count_buffer: Buffer, count_buffer_offset: DeviceSize, max_draw_count: u32, stride: u32, )3803     pub unsafe fn cmd_draw_indexed_indirect_count_amd(
3804         &self,
3805         command_buffer: CommandBuffer,
3806         buffer: Buffer,
3807         offset: DeviceSize,
3808         count_buffer: Buffer,
3809         count_buffer_offset: DeviceSize,
3810         max_draw_count: u32,
3811         stride: u32,
3812     ) {
3813         (self.cmd_draw_indexed_indirect_count_amd)(
3814             command_buffer,
3815             buffer,
3816             offset,
3817             count_buffer,
3818             count_buffer_offset,
3819             max_draw_count,
3820             stride,
3821         )
3822     }
3823 }
3824 impl AmdExtension35Fn {
name() -> &'static ::std::ffi::CStr3825     pub fn name() -> &'static ::std::ffi::CStr {
3826         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_35\0") }
3827     }
3828     pub const SPEC_VERSION: u32 = 0u32;
3829 }
3830 #[derive(Clone)]
3831 pub struct AmdExtension35Fn {}
3832 unsafe impl Send for AmdExtension35Fn {}
3833 unsafe impl Sync for AmdExtension35Fn {}
3834 impl AmdExtension35Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3835     pub fn load<F>(mut _f: F) -> Self
3836     where
3837         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3838     {
3839         Self {}
3840     }
3841 }
3842 impl AmdNegativeViewportHeightFn {
name() -> &'static ::std::ffi::CStr3843     pub fn name() -> &'static ::std::ffi::CStr {
3844         unsafe {
3845             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_negative_viewport_height\0")
3846         }
3847     }
3848     pub const SPEC_VERSION: u32 = 1u32;
3849 }
3850 #[derive(Clone)]
3851 pub struct AmdNegativeViewportHeightFn {}
3852 unsafe impl Send for AmdNegativeViewportHeightFn {}
3853 unsafe impl Sync for AmdNegativeViewportHeightFn {}
3854 impl AmdNegativeViewportHeightFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3855     pub fn load<F>(mut _f: F) -> Self
3856     where
3857         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3858     {
3859         Self {}
3860     }
3861 }
3862 impl AmdGpuShaderHalfFloatFn {
name() -> &'static ::std::ffi::CStr3863     pub fn name() -> &'static ::std::ffi::CStr {
3864         unsafe {
3865             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_gpu_shader_half_float\0")
3866         }
3867     }
3868     pub const SPEC_VERSION: u32 = 2u32;
3869 }
3870 #[derive(Clone)]
3871 pub struct AmdGpuShaderHalfFloatFn {}
3872 unsafe impl Send for AmdGpuShaderHalfFloatFn {}
3873 unsafe impl Sync for AmdGpuShaderHalfFloatFn {}
3874 impl AmdGpuShaderHalfFloatFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3875     pub fn load<F>(mut _f: F) -> Self
3876     where
3877         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3878     {
3879         Self {}
3880     }
3881 }
3882 impl AmdShaderBallotFn {
name() -> &'static ::std::ffi::CStr3883     pub fn name() -> &'static ::std::ffi::CStr {
3884         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_ballot\0") }
3885     }
3886     pub const SPEC_VERSION: u32 = 1u32;
3887 }
3888 #[derive(Clone)]
3889 pub struct AmdShaderBallotFn {}
3890 unsafe impl Send for AmdShaderBallotFn {}
3891 unsafe impl Sync for AmdShaderBallotFn {}
3892 impl AmdShaderBallotFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3893     pub fn load<F>(mut _f: F) -> Self
3894     where
3895         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3896     {
3897         Self {}
3898     }
3899 }
3900 impl ExtVideoEncodeH264Fn {
name() -> &'static ::std::ffi::CStr3901     pub fn name() -> &'static ::std::ffi::CStr {
3902         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_video_encode_h264\0") }
3903     }
3904     pub const SPEC_VERSION: u32 = 3u32;
3905 }
3906 #[derive(Clone)]
3907 pub struct ExtVideoEncodeH264Fn {}
3908 unsafe impl Send for ExtVideoEncodeH264Fn {}
3909 unsafe impl Sync for ExtVideoEncodeH264Fn {}
3910 impl ExtVideoEncodeH264Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3911     pub fn load<F>(mut _f: F) -> Self
3912     where
3913         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3914     {
3915         Self {}
3916     }
3917 }
3918 #[doc = "Generated from 'VK_EXT_video_encode_h264'"]
3919 impl StructureType {
3920     pub const VIDEO_ENCODE_H264_CAPABILITIES_EXT: Self = Self(1_000_038_000);
3921     pub const VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT: Self = Self(1_000_038_001);
3922     pub const VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: Self = Self(1_000_038_002);
3923     pub const VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: Self = Self(1_000_038_003);
3924     pub const VIDEO_ENCODE_H264_VCL_FRAME_INFO_EXT: Self = Self(1_000_038_004);
3925     pub const VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT: Self = Self(1_000_038_005);
3926     pub const VIDEO_ENCODE_H264_NALU_SLICE_EXT: Self = Self(1_000_038_006);
3927     pub const VIDEO_ENCODE_H264_EMIT_PICTURE_PARAMETERS_EXT: Self = Self(1_000_038_007);
3928     pub const VIDEO_ENCODE_H264_PROFILE_EXT: Self = Self(1_000_038_008);
3929     pub const VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT: Self = Self(1_000_038_009);
3930     pub const VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT: Self = Self(1_000_038_010);
3931 }
3932 #[doc = "Generated from 'VK_EXT_video_encode_h264'"]
3933 impl VideoCodecOperationFlagsKHR {
3934     pub const ENCODE_H264_EXT: Self = Self(0b1_0000_0000_0000_0000);
3935 }
3936 impl ExtVideoEncodeH265Fn {
name() -> &'static ::std::ffi::CStr3937     pub fn name() -> &'static ::std::ffi::CStr {
3938         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_video_encode_h265\0") }
3939     }
3940     pub const SPEC_VERSION: u32 = 3u32;
3941 }
3942 #[derive(Clone)]
3943 pub struct ExtVideoEncodeH265Fn {}
3944 unsafe impl Send for ExtVideoEncodeH265Fn {}
3945 unsafe impl Sync for ExtVideoEncodeH265Fn {}
3946 impl ExtVideoEncodeH265Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3947     pub fn load<F>(mut _f: F) -> Self
3948     where
3949         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3950     {
3951         Self {}
3952     }
3953 }
3954 #[doc = "Generated from 'VK_EXT_video_encode_h265'"]
3955 impl StructureType {
3956     pub const VIDEO_ENCODE_H265_CAPABILITIES_EXT: Self = Self(1_000_039_000);
3957     pub const VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT: Self = Self(1_000_039_001);
3958     pub const VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: Self = Self(1_000_039_002);
3959     pub const VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: Self = Self(1_000_039_003);
3960     pub const VIDEO_ENCODE_H265_VCL_FRAME_INFO_EXT: Self = Self(1_000_039_004);
3961     pub const VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT: Self = Self(1_000_039_005);
3962     pub const VIDEO_ENCODE_H265_NALU_SLICE_EXT: Self = Self(1_000_039_006);
3963     pub const VIDEO_ENCODE_H265_EMIT_PICTURE_PARAMETERS_EXT: Self = Self(1_000_039_007);
3964     pub const VIDEO_ENCODE_H265_PROFILE_EXT: Self = Self(1_000_039_008);
3965     pub const VIDEO_ENCODE_H265_REFERENCE_LISTS_EXT: Self = Self(1_000_039_009);
3966     pub const VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT: Self = Self(1_000_039_010);
3967     pub const VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT: Self = Self(1_000_039_011);
3968 }
3969 #[doc = "Generated from 'VK_EXT_video_encode_h265'"]
3970 impl VideoCodecOperationFlagsKHR {
3971     pub const ENCODE_H265_EXT: Self = Self(0b10_0000_0000_0000_0000);
3972 }
3973 impl ExtVideoDecodeH264Fn {
name() -> &'static ::std::ffi::CStr3974     pub fn name() -> &'static ::std::ffi::CStr {
3975         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_video_decode_h264\0") }
3976     }
3977     pub const SPEC_VERSION: u32 = 3u32;
3978 }
3979 #[derive(Clone)]
3980 pub struct ExtVideoDecodeH264Fn {}
3981 unsafe impl Send for ExtVideoDecodeH264Fn {}
3982 unsafe impl Sync for ExtVideoDecodeH264Fn {}
3983 impl ExtVideoDecodeH264Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,3984     pub fn load<F>(mut _f: F) -> Self
3985     where
3986         F: FnMut(&::std::ffi::CStr) -> *const c_void,
3987     {
3988         Self {}
3989     }
3990 }
3991 #[doc = "Generated from 'VK_EXT_video_decode_h264'"]
3992 impl StructureType {
3993     pub const VIDEO_DECODE_H264_CAPABILITIES_EXT: Self = Self(1_000_040_000);
3994     pub const VIDEO_DECODE_H264_SESSION_CREATE_INFO_EXT: Self = Self(1_000_040_001);
3995     pub const VIDEO_DECODE_H264_PICTURE_INFO_EXT: Self = Self(1_000_040_002);
3996     pub const VIDEO_DECODE_H264_MVC_EXT: Self = Self(1_000_040_003);
3997     pub const VIDEO_DECODE_H264_PROFILE_EXT: Self = Self(1_000_040_004);
3998     pub const VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: Self = Self(1_000_040_005);
3999     pub const VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: Self = Self(1_000_040_006);
4000     pub const VIDEO_DECODE_H264_DPB_SLOT_INFO_EXT: Self = Self(1_000_040_007);
4001 }
4002 #[doc = "Generated from 'VK_EXT_video_decode_h264'"]
4003 impl VideoCodecOperationFlagsKHR {
4004     pub const DECODE_H264_EXT: Self = Self(0b1);
4005 }
4006 impl AmdTextureGatherBiasLodFn {
name() -> &'static ::std::ffi::CStr4007     pub fn name() -> &'static ::std::ffi::CStr {
4008         unsafe {
4009             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_texture_gather_bias_lod\0")
4010         }
4011     }
4012     pub const SPEC_VERSION: u32 = 1u32;
4013 }
4014 #[derive(Clone)]
4015 pub struct AmdTextureGatherBiasLodFn {}
4016 unsafe impl Send for AmdTextureGatherBiasLodFn {}
4017 unsafe impl Sync for AmdTextureGatherBiasLodFn {}
4018 impl AmdTextureGatherBiasLodFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4019     pub fn load<F>(mut _f: F) -> Self
4020     where
4021         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4022     {
4023         Self {}
4024     }
4025 }
4026 #[doc = "Generated from 'VK_AMD_texture_gather_bias_lod'"]
4027 impl StructureType {
4028     pub const TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: Self = Self(1_000_041_000);
4029 }
4030 impl AmdShaderInfoFn {
name() -> &'static ::std::ffi::CStr4031     pub fn name() -> &'static ::std::ffi::CStr {
4032         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_info\0") }
4033     }
4034     pub const SPEC_VERSION: u32 = 1u32;
4035 }
4036 #[allow(non_camel_case_types)]
4037 pub type PFN_vkGetShaderInfoAMD = unsafe extern "system" fn(
4038     device: Device,
4039     pipeline: Pipeline,
4040     shader_stage: ShaderStageFlags,
4041     info_type: ShaderInfoTypeAMD,
4042     p_info_size: *mut usize,
4043     p_info: *mut c_void,
4044 ) -> Result;
4045 #[derive(Clone)]
4046 pub struct AmdShaderInfoFn {
4047     pub get_shader_info_amd: PFN_vkGetShaderInfoAMD,
4048 }
4049 unsafe impl Send for AmdShaderInfoFn {}
4050 unsafe impl Sync for AmdShaderInfoFn {}
4051 impl AmdShaderInfoFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4052     pub fn load<F>(mut _f: F) -> Self
4053     where
4054         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4055     {
4056         Self {
4057             get_shader_info_amd: unsafe {
4058                 unsafe extern "system" fn get_shader_info_amd(
4059                     _device: Device,
4060                     _pipeline: Pipeline,
4061                     _shader_stage: ShaderStageFlags,
4062                     _info_type: ShaderInfoTypeAMD,
4063                     _p_info_size: *mut usize,
4064                     _p_info: *mut c_void,
4065                 ) -> Result {
4066                     panic!(concat!("Unable to load ", stringify!(get_shader_info_amd)))
4067                 }
4068                 let cname =
4069                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetShaderInfoAMD\0");
4070                 let val = _f(cname);
4071                 if val.is_null() {
4072                     get_shader_info_amd
4073                 } else {
4074                     ::std::mem::transmute(val)
4075                 }
4076             },
4077         }
4078     }
4079     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetShaderInfoAMD.html>"]
get_shader_info_amd( &self, device: Device, pipeline: Pipeline, shader_stage: ShaderStageFlags, info_type: ShaderInfoTypeAMD, p_info_size: *mut usize, p_info: *mut c_void, ) -> Result4080     pub unsafe fn get_shader_info_amd(
4081         &self,
4082         device: Device,
4083         pipeline: Pipeline,
4084         shader_stage: ShaderStageFlags,
4085         info_type: ShaderInfoTypeAMD,
4086         p_info_size: *mut usize,
4087         p_info: *mut c_void,
4088     ) -> Result {
4089         (self.get_shader_info_amd)(
4090             device,
4091             pipeline,
4092             shader_stage,
4093             info_type,
4094             p_info_size,
4095             p_info,
4096         )
4097     }
4098 }
4099 impl AmdExtension44Fn {
name() -> &'static ::std::ffi::CStr4100     pub fn name() -> &'static ::std::ffi::CStr {
4101         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_44\0") }
4102     }
4103     pub const SPEC_VERSION: u32 = 0u32;
4104 }
4105 #[derive(Clone)]
4106 pub struct AmdExtension44Fn {}
4107 unsafe impl Send for AmdExtension44Fn {}
4108 unsafe impl Sync for AmdExtension44Fn {}
4109 impl AmdExtension44Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4110     pub fn load<F>(mut _f: F) -> Self
4111     where
4112         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4113     {
4114         Self {}
4115     }
4116 }
4117 impl KhrDynamicRenderingFn {
name() -> &'static ::std::ffi::CStr4118     pub fn name() -> &'static ::std::ffi::CStr {
4119         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_dynamic_rendering\0") }
4120     }
4121     pub const SPEC_VERSION: u32 = 1u32;
4122 }
4123 #[allow(non_camel_case_types)]
4124 pub type PFN_vkCmdBeginRenderingKHR = unsafe extern "system" fn(
4125     command_buffer: CommandBuffer,
4126     p_rendering_info: *const RenderingInfoKHR,
4127 );
4128 #[allow(non_camel_case_types)]
4129 pub type PFN_vkCmdEndRenderingKHR = unsafe extern "system" fn(command_buffer: CommandBuffer);
4130 #[derive(Clone)]
4131 pub struct KhrDynamicRenderingFn {
4132     pub cmd_begin_rendering_khr: PFN_vkCmdBeginRenderingKHR,
4133     pub cmd_end_rendering_khr: PFN_vkCmdEndRenderingKHR,
4134 }
4135 unsafe impl Send for KhrDynamicRenderingFn {}
4136 unsafe impl Sync for KhrDynamicRenderingFn {}
4137 impl KhrDynamicRenderingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4138     pub fn load<F>(mut _f: F) -> Self
4139     where
4140         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4141     {
4142         Self {
4143             cmd_begin_rendering_khr: unsafe {
4144                 unsafe extern "system" fn cmd_begin_rendering_khr(
4145                     _command_buffer: CommandBuffer,
4146                     _p_rendering_info: *const RenderingInfoKHR,
4147                 ) {
4148                     panic!(concat!(
4149                         "Unable to load ",
4150                         stringify!(cmd_begin_rendering_khr)
4151                     ))
4152                 }
4153                 let cname =
4154                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginRenderingKHR\0");
4155                 let val = _f(cname);
4156                 if val.is_null() {
4157                     cmd_begin_rendering_khr
4158                 } else {
4159                     ::std::mem::transmute(val)
4160                 }
4161             },
4162             cmd_end_rendering_khr: unsafe {
4163                 unsafe extern "system" fn cmd_end_rendering_khr(_command_buffer: CommandBuffer) {
4164                     panic!(concat!(
4165                         "Unable to load ",
4166                         stringify!(cmd_end_rendering_khr)
4167                     ))
4168                 }
4169                 let cname =
4170                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRenderingKHR\0");
4171                 let val = _f(cname);
4172                 if val.is_null() {
4173                     cmd_end_rendering_khr
4174                 } else {
4175                     ::std::mem::transmute(val)
4176                 }
4177             },
4178         }
4179     }
4180     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBeginRenderingKHR.html>"]
cmd_begin_rendering_khr( &self, command_buffer: CommandBuffer, p_rendering_info: *const RenderingInfoKHR, )4181     pub unsafe fn cmd_begin_rendering_khr(
4182         &self,
4183         command_buffer: CommandBuffer,
4184         p_rendering_info: *const RenderingInfoKHR,
4185     ) {
4186         (self.cmd_begin_rendering_khr)(command_buffer, p_rendering_info)
4187     }
4188     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdEndRenderingKHR.html>"]
cmd_end_rendering_khr(&self, command_buffer: CommandBuffer)4189     pub unsafe fn cmd_end_rendering_khr(&self, command_buffer: CommandBuffer) {
4190         (self.cmd_end_rendering_khr)(command_buffer)
4191     }
4192 }
4193 #[doc = "Generated from 'VK_KHR_dynamic_rendering'"]
4194 impl AttachmentStoreOp {
4195     pub const NONE_KHR: Self = Self(1_000_301_000);
4196 }
4197 #[doc = "Generated from 'VK_KHR_dynamic_rendering'"]
4198 impl PipelineCreateFlags {
4199     pub const RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self =
4200         Self(0b10_0000_0000_0000_0000_0000);
4201     pub const RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_EXT: Self =
4202         Self(0b100_0000_0000_0000_0000_0000);
4203 }
4204 #[doc = "Generated from 'VK_KHR_dynamic_rendering'"]
4205 impl StructureType {
4206     pub const RENDERING_INFO_KHR: Self = Self(1_000_044_000);
4207     pub const RENDERING_ATTACHMENT_INFO_KHR: Self = Self(1_000_044_001);
4208     pub const PIPELINE_RENDERING_CREATE_INFO_KHR: Self = Self(1_000_044_002);
4209     pub const PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR: Self = Self(1_000_044_003);
4210     pub const COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR: Self = Self(1_000_044_004);
4211     pub const RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: Self = Self(1_000_044_006);
4212     pub const RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: Self = Self(1_000_044_007);
4213     pub const ATTACHMENT_SAMPLE_COUNT_INFO_AMD: Self = Self(1_000_044_008);
4214     pub const ATTACHMENT_SAMPLE_COUNT_INFO_NV: Self = Self::ATTACHMENT_SAMPLE_COUNT_INFO_AMD;
4215     pub const MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: Self = Self(1_000_044_009);
4216 }
4217 impl AmdExtension46Fn {
name() -> &'static ::std::ffi::CStr4218     pub fn name() -> &'static ::std::ffi::CStr {
4219         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_46\0") }
4220     }
4221     pub const SPEC_VERSION: u32 = 0u32;
4222 }
4223 #[derive(Clone)]
4224 pub struct AmdExtension46Fn {}
4225 unsafe impl Send for AmdExtension46Fn {}
4226 unsafe impl Sync for AmdExtension46Fn {}
4227 impl AmdExtension46Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4228     pub fn load<F>(mut _f: F) -> Self
4229     where
4230         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4231     {
4232         Self {}
4233     }
4234 }
4235 impl AmdShaderImageLoadStoreLodFn {
name() -> &'static ::std::ffi::CStr4236     pub fn name() -> &'static ::std::ffi::CStr {
4237         unsafe {
4238             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_image_load_store_lod\0")
4239         }
4240     }
4241     pub const SPEC_VERSION: u32 = 1u32;
4242 }
4243 #[derive(Clone)]
4244 pub struct AmdShaderImageLoadStoreLodFn {}
4245 unsafe impl Send for AmdShaderImageLoadStoreLodFn {}
4246 unsafe impl Sync for AmdShaderImageLoadStoreLodFn {}
4247 impl AmdShaderImageLoadStoreLodFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4248     pub fn load<F>(mut _f: F) -> Self
4249     where
4250         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4251     {
4252         Self {}
4253     }
4254 }
4255 impl NvxExtension48Fn {
name() -> &'static ::std::ffi::CStr4256     pub fn name() -> &'static ::std::ffi::CStr {
4257         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NVX_extension_48\0") }
4258     }
4259     pub const SPEC_VERSION: u32 = 0u32;
4260 }
4261 #[derive(Clone)]
4262 pub struct NvxExtension48Fn {}
4263 unsafe impl Send for NvxExtension48Fn {}
4264 unsafe impl Sync for NvxExtension48Fn {}
4265 impl NvxExtension48Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4266     pub fn load<F>(mut _f: F) -> Self
4267     where
4268         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4269     {
4270         Self {}
4271     }
4272 }
4273 impl GoogleExtension49Fn {
name() -> &'static ::std::ffi::CStr4274     pub fn name() -> &'static ::std::ffi::CStr {
4275         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_extension_49\0") }
4276     }
4277     pub const SPEC_VERSION: u32 = 0u32;
4278 }
4279 #[derive(Clone)]
4280 pub struct GoogleExtension49Fn {}
4281 unsafe impl Send for GoogleExtension49Fn {}
4282 unsafe impl Sync for GoogleExtension49Fn {}
4283 impl GoogleExtension49Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4284     pub fn load<F>(mut _f: F) -> Self
4285     where
4286         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4287     {
4288         Self {}
4289     }
4290 }
4291 impl GgpStreamDescriptorSurfaceFn {
name() -> &'static ::std::ffi::CStr4292     pub fn name() -> &'static ::std::ffi::CStr {
4293         unsafe {
4294             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GGP_stream_descriptor_surface\0")
4295         }
4296     }
4297     pub const SPEC_VERSION: u32 = 1u32;
4298 }
4299 #[allow(non_camel_case_types)]
4300 pub type PFN_vkCreateStreamDescriptorSurfaceGGP = unsafe extern "system" fn(
4301     instance: Instance,
4302     p_create_info: *const StreamDescriptorSurfaceCreateInfoGGP,
4303     p_allocator: *const AllocationCallbacks,
4304     p_surface: *mut SurfaceKHR,
4305 ) -> Result;
4306 #[derive(Clone)]
4307 pub struct GgpStreamDescriptorSurfaceFn {
4308     pub create_stream_descriptor_surface_ggp: PFN_vkCreateStreamDescriptorSurfaceGGP,
4309 }
4310 unsafe impl Send for GgpStreamDescriptorSurfaceFn {}
4311 unsafe impl Sync for GgpStreamDescriptorSurfaceFn {}
4312 impl GgpStreamDescriptorSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4313     pub fn load<F>(mut _f: F) -> Self
4314     where
4315         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4316     {
4317         Self {
4318             create_stream_descriptor_surface_ggp: unsafe {
4319                 unsafe extern "system" fn create_stream_descriptor_surface_ggp(
4320                     _instance: Instance,
4321                     _p_create_info: *const StreamDescriptorSurfaceCreateInfoGGP,
4322                     _p_allocator: *const AllocationCallbacks,
4323                     _p_surface: *mut SurfaceKHR,
4324                 ) -> Result {
4325                     panic!(concat!(
4326                         "Unable to load ",
4327                         stringify!(create_stream_descriptor_surface_ggp)
4328                     ))
4329                 }
4330                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4331                     b"vkCreateStreamDescriptorSurfaceGGP\0",
4332                 );
4333                 let val = _f(cname);
4334                 if val.is_null() {
4335                     create_stream_descriptor_surface_ggp
4336                 } else {
4337                     ::std::mem::transmute(val)
4338                 }
4339             },
4340         }
4341     }
4342     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateStreamDescriptorSurfaceGGP.html>"]
create_stream_descriptor_surface_ggp( &self, instance: Instance, p_create_info: *const StreamDescriptorSurfaceCreateInfoGGP, p_allocator: *const AllocationCallbacks, p_surface: *mut SurfaceKHR, ) -> Result4343     pub unsafe fn create_stream_descriptor_surface_ggp(
4344         &self,
4345         instance: Instance,
4346         p_create_info: *const StreamDescriptorSurfaceCreateInfoGGP,
4347         p_allocator: *const AllocationCallbacks,
4348         p_surface: *mut SurfaceKHR,
4349     ) -> Result {
4350         (self.create_stream_descriptor_surface_ggp)(instance, p_create_info, p_allocator, p_surface)
4351     }
4352 }
4353 #[doc = "Generated from 'VK_GGP_stream_descriptor_surface'"]
4354 impl StructureType {
4355     pub const STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP: Self = Self(1_000_049_000);
4356 }
4357 impl NvCornerSampledImageFn {
name() -> &'static ::std::ffi::CStr4358     pub fn name() -> &'static ::std::ffi::CStr {
4359         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_corner_sampled_image\0") }
4360     }
4361     pub const SPEC_VERSION: u32 = 2u32;
4362 }
4363 #[derive(Clone)]
4364 pub struct NvCornerSampledImageFn {}
4365 unsafe impl Send for NvCornerSampledImageFn {}
4366 unsafe impl Sync for NvCornerSampledImageFn {}
4367 impl NvCornerSampledImageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4368     pub fn load<F>(mut _f: F) -> Self
4369     where
4370         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4371     {
4372         Self {}
4373     }
4374 }
4375 #[doc = "Generated from 'VK_NV_corner_sampled_image'"]
4376 impl ImageCreateFlags {
4377     pub const CORNER_SAMPLED_NV: Self = Self(0b10_0000_0000_0000);
4378 }
4379 #[doc = "Generated from 'VK_NV_corner_sampled_image'"]
4380 impl StructureType {
4381     pub const PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: Self = Self(1_000_050_000);
4382 }
4383 impl NvExtension52Fn {
name() -> &'static ::std::ffi::CStr4384     pub fn name() -> &'static ::std::ffi::CStr {
4385         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_52\0") }
4386     }
4387     pub const SPEC_VERSION: u32 = 0u32;
4388 }
4389 #[derive(Clone)]
4390 pub struct NvExtension52Fn {}
4391 unsafe impl Send for NvExtension52Fn {}
4392 unsafe impl Sync for NvExtension52Fn {}
4393 impl NvExtension52Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4394     pub fn load<F>(mut _f: F) -> Self
4395     where
4396         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4397     {
4398         Self {}
4399     }
4400 }
4401 #[doc = "Generated from 'VK_NV_extension_52'"]
4402 impl PipelineShaderStageCreateFlags {
4403     pub const RESERVED_2_NV: Self = Self(0b100);
4404 }
4405 #[doc = "Generated from 'VK_NV_extension_52'"]
4406 impl ShaderModuleCreateFlags {
4407     pub const RESERVED_0_NV: Self = Self(0b1);
4408 }
4409 impl NvExtension53Fn {
name() -> &'static ::std::ffi::CStr4410     pub fn name() -> &'static ::std::ffi::CStr {
4411         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_53\0") }
4412     }
4413     pub const SPEC_VERSION: u32 = 0u32;
4414 }
4415 #[derive(Clone)]
4416 pub struct NvExtension53Fn {}
4417 unsafe impl Send for NvExtension53Fn {}
4418 unsafe impl Sync for NvExtension53Fn {}
4419 impl NvExtension53Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4420     pub fn load<F>(mut _f: F) -> Self
4421     where
4422         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4423     {
4424         Self {}
4425     }
4426 }
4427 impl KhrMultiviewFn {
name() -> &'static ::std::ffi::CStr4428     pub fn name() -> &'static ::std::ffi::CStr {
4429         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_multiview\0") }
4430     }
4431     pub const SPEC_VERSION: u32 = 1u32;
4432 }
4433 #[derive(Clone)]
4434 pub struct KhrMultiviewFn {}
4435 unsafe impl Send for KhrMultiviewFn {}
4436 unsafe impl Sync for KhrMultiviewFn {}
4437 impl KhrMultiviewFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4438     pub fn load<F>(mut _f: F) -> Self
4439     where
4440         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4441     {
4442         Self {}
4443     }
4444 }
4445 #[doc = "Generated from 'VK_KHR_multiview'"]
4446 impl DependencyFlags {
4447     pub const VIEW_LOCAL_KHR: Self = Self::VIEW_LOCAL;
4448 }
4449 #[doc = "Generated from 'VK_KHR_multiview'"]
4450 impl StructureType {
4451     pub const RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR: Self = Self::RENDER_PASS_MULTIVIEW_CREATE_INFO;
4452     pub const PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR: Self =
4453         Self::PHYSICAL_DEVICE_MULTIVIEW_FEATURES;
4454     pub const PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR: Self =
4455         Self::PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES;
4456 }
4457 impl ImgFormatPvrtcFn {
name() -> &'static ::std::ffi::CStr4458     pub fn name() -> &'static ::std::ffi::CStr {
4459         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_IMG_format_pvrtc\0") }
4460     }
4461     pub const SPEC_VERSION: u32 = 1u32;
4462 }
4463 #[derive(Clone)]
4464 pub struct ImgFormatPvrtcFn {}
4465 unsafe impl Send for ImgFormatPvrtcFn {}
4466 unsafe impl Sync for ImgFormatPvrtcFn {}
4467 impl ImgFormatPvrtcFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4468     pub fn load<F>(mut _f: F) -> Self
4469     where
4470         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4471     {
4472         Self {}
4473     }
4474 }
4475 #[doc = "Generated from 'VK_IMG_format_pvrtc'"]
4476 impl Format {
4477     pub const PVRTC1_2BPP_UNORM_BLOCK_IMG: Self = Self(1_000_054_000);
4478     pub const PVRTC1_4BPP_UNORM_BLOCK_IMG: Self = Self(1_000_054_001);
4479     pub const PVRTC2_2BPP_UNORM_BLOCK_IMG: Self = Self(1_000_054_002);
4480     pub const PVRTC2_4BPP_UNORM_BLOCK_IMG: Self = Self(1_000_054_003);
4481     pub const PVRTC1_2BPP_SRGB_BLOCK_IMG: Self = Self(1_000_054_004);
4482     pub const PVRTC1_4BPP_SRGB_BLOCK_IMG: Self = Self(1_000_054_005);
4483     pub const PVRTC2_2BPP_SRGB_BLOCK_IMG: Self = Self(1_000_054_006);
4484     pub const PVRTC2_4BPP_SRGB_BLOCK_IMG: Self = Self(1_000_054_007);
4485 }
4486 impl NvExternalMemoryCapabilitiesFn {
name() -> &'static ::std::ffi::CStr4487     pub fn name() -> &'static ::std::ffi::CStr {
4488         unsafe {
4489             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_memory_capabilities\0")
4490         }
4491     }
4492     pub const SPEC_VERSION: u32 = 1u32;
4493 }
4494 #[allow(non_camel_case_types)]
4495 pub type PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV =
4496     unsafe extern "system" fn(
4497         physical_device: PhysicalDevice,
4498         format: Format,
4499         ty: ImageType,
4500         tiling: ImageTiling,
4501         usage: ImageUsageFlags,
4502         flags: ImageCreateFlags,
4503         external_handle_type: ExternalMemoryHandleTypeFlagsNV,
4504         p_external_image_format_properties: *mut ExternalImageFormatPropertiesNV,
4505     ) -> Result;
4506 #[derive(Clone)]
4507 pub struct NvExternalMemoryCapabilitiesFn {
4508     pub get_physical_device_external_image_format_properties_nv:
4509         PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV,
4510 }
4511 unsafe impl Send for NvExternalMemoryCapabilitiesFn {}
4512 unsafe impl Sync for NvExternalMemoryCapabilitiesFn {}
4513 impl NvExternalMemoryCapabilitiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4514     pub fn load<F>(mut _f: F) -> Self
4515     where
4516         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4517     {
4518         Self {
4519             get_physical_device_external_image_format_properties_nv: unsafe {
4520                 unsafe extern "system" fn get_physical_device_external_image_format_properties_nv(
4521                     _physical_device: PhysicalDevice,
4522                     _format: Format,
4523                     _ty: ImageType,
4524                     _tiling: ImageTiling,
4525                     _usage: ImageUsageFlags,
4526                     _flags: ImageCreateFlags,
4527                     _external_handle_type: ExternalMemoryHandleTypeFlagsNV,
4528                     _p_external_image_format_properties: *mut ExternalImageFormatPropertiesNV,
4529                 ) -> Result {
4530                     panic!(concat!(
4531                         "Unable to load ",
4532                         stringify!(get_physical_device_external_image_format_properties_nv)
4533                     ))
4534                 }
4535                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4536                     b"vkGetPhysicalDeviceExternalImageFormatPropertiesNV\0",
4537                 );
4538                 let val = _f(cname);
4539                 if val.is_null() {
4540                     get_physical_device_external_image_format_properties_nv
4541                 } else {
4542                     ::std::mem::transmute(val)
4543                 }
4544             },
4545         }
4546     }
4547     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceExternalImageFormatPropertiesNV.html>"]
get_physical_device_external_image_format_properties_nv( &self, physical_device: PhysicalDevice, format: Format, ty: ImageType, tiling: ImageTiling, usage: ImageUsageFlags, flags: ImageCreateFlags, external_handle_type: ExternalMemoryHandleTypeFlagsNV, p_external_image_format_properties: *mut ExternalImageFormatPropertiesNV, ) -> Result4548     pub unsafe fn get_physical_device_external_image_format_properties_nv(
4549         &self,
4550         physical_device: PhysicalDevice,
4551         format: Format,
4552         ty: ImageType,
4553         tiling: ImageTiling,
4554         usage: ImageUsageFlags,
4555         flags: ImageCreateFlags,
4556         external_handle_type: ExternalMemoryHandleTypeFlagsNV,
4557         p_external_image_format_properties: *mut ExternalImageFormatPropertiesNV,
4558     ) -> Result {
4559         (self.get_physical_device_external_image_format_properties_nv)(
4560             physical_device,
4561             format,
4562             ty,
4563             tiling,
4564             usage,
4565             flags,
4566             external_handle_type,
4567             p_external_image_format_properties,
4568         )
4569     }
4570 }
4571 impl NvExternalMemoryFn {
name() -> &'static ::std::ffi::CStr4572     pub fn name() -> &'static ::std::ffi::CStr {
4573         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_memory\0") }
4574     }
4575     pub const SPEC_VERSION: u32 = 1u32;
4576 }
4577 #[derive(Clone)]
4578 pub struct NvExternalMemoryFn {}
4579 unsafe impl Send for NvExternalMemoryFn {}
4580 unsafe impl Sync for NvExternalMemoryFn {}
4581 impl NvExternalMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4582     pub fn load<F>(mut _f: F) -> Self
4583     where
4584         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4585     {
4586         Self {}
4587     }
4588 }
4589 #[doc = "Generated from 'VK_NV_external_memory'"]
4590 impl StructureType {
4591     pub const EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: Self = Self(1_000_056_000);
4592     pub const EXPORT_MEMORY_ALLOCATE_INFO_NV: Self = Self(1_000_056_001);
4593 }
4594 impl NvExternalMemoryWin32Fn {
name() -> &'static ::std::ffi::CStr4595     pub fn name() -> &'static ::std::ffi::CStr {
4596         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_memory_win32\0") }
4597     }
4598     pub const SPEC_VERSION: u32 = 1u32;
4599 }
4600 #[allow(non_camel_case_types)]
4601 pub type PFN_vkGetMemoryWin32HandleNV = unsafe extern "system" fn(
4602     device: Device,
4603     memory: DeviceMemory,
4604     handle_type: ExternalMemoryHandleTypeFlagsNV,
4605     p_handle: *mut HANDLE,
4606 ) -> Result;
4607 #[derive(Clone)]
4608 pub struct NvExternalMemoryWin32Fn {
4609     pub get_memory_win32_handle_nv: PFN_vkGetMemoryWin32HandleNV,
4610 }
4611 unsafe impl Send for NvExternalMemoryWin32Fn {}
4612 unsafe impl Sync for NvExternalMemoryWin32Fn {}
4613 impl NvExternalMemoryWin32Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4614     pub fn load<F>(mut _f: F) -> Self
4615     where
4616         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4617     {
4618         Self {
4619             get_memory_win32_handle_nv: unsafe {
4620                 unsafe extern "system" fn get_memory_win32_handle_nv(
4621                     _device: Device,
4622                     _memory: DeviceMemory,
4623                     _handle_type: ExternalMemoryHandleTypeFlagsNV,
4624                     _p_handle: *mut HANDLE,
4625                 ) -> Result {
4626                     panic!(concat!(
4627                         "Unable to load ",
4628                         stringify!(get_memory_win32_handle_nv)
4629                     ))
4630                 }
4631                 let cname =
4632                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryWin32HandleNV\0");
4633                 let val = _f(cname);
4634                 if val.is_null() {
4635                     get_memory_win32_handle_nv
4636                 } else {
4637                     ::std::mem::transmute(val)
4638                 }
4639             },
4640         }
4641     }
4642     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetMemoryWin32HandleNV.html>"]
get_memory_win32_handle_nv( &self, device: Device, memory: DeviceMemory, handle_type: ExternalMemoryHandleTypeFlagsNV, p_handle: *mut HANDLE, ) -> Result4643     pub unsafe fn get_memory_win32_handle_nv(
4644         &self,
4645         device: Device,
4646         memory: DeviceMemory,
4647         handle_type: ExternalMemoryHandleTypeFlagsNV,
4648         p_handle: *mut HANDLE,
4649     ) -> Result {
4650         (self.get_memory_win32_handle_nv)(device, memory, handle_type, p_handle)
4651     }
4652 }
4653 #[doc = "Generated from 'VK_NV_external_memory_win32'"]
4654 impl StructureType {
4655     pub const IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: Self = Self(1_000_057_000);
4656     pub const EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: Self = Self(1_000_057_001);
4657 }
4658 impl NvWin32KeyedMutexFn {
name() -> &'static ::std::ffi::CStr4659     pub fn name() -> &'static ::std::ffi::CStr {
4660         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_win32_keyed_mutex\0") }
4661     }
4662     pub const SPEC_VERSION: u32 = 2u32;
4663 }
4664 #[derive(Clone)]
4665 pub struct NvWin32KeyedMutexFn {}
4666 unsafe impl Send for NvWin32KeyedMutexFn {}
4667 unsafe impl Sync for NvWin32KeyedMutexFn {}
4668 impl NvWin32KeyedMutexFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4669     pub fn load<F>(mut _f: F) -> Self
4670     where
4671         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4672     {
4673         Self {}
4674     }
4675 }
4676 #[doc = "Generated from 'VK_NV_win32_keyed_mutex'"]
4677 impl StructureType {
4678     pub const WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: Self = Self(1_000_058_000);
4679 }
4680 impl KhrGetPhysicalDeviceProperties2Fn {
name() -> &'static ::std::ffi::CStr4681     pub fn name() -> &'static ::std::ffi::CStr {
4682         unsafe {
4683             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4684                 b"VK_KHR_get_physical_device_properties2\0",
4685             )
4686         }
4687     }
4688     pub const SPEC_VERSION: u32 = 2u32;
4689 }
4690 #[allow(non_camel_case_types)]
4691 pub type PFN_vkGetPhysicalDeviceFeatures2 = unsafe extern "system" fn(
4692     physical_device: PhysicalDevice,
4693     p_features: *mut PhysicalDeviceFeatures2,
4694 );
4695 #[allow(non_camel_case_types)]
4696 pub type PFN_vkGetPhysicalDeviceProperties2 = unsafe extern "system" fn(
4697     physical_device: PhysicalDevice,
4698     p_properties: *mut PhysicalDeviceProperties2,
4699 );
4700 #[allow(non_camel_case_types)]
4701 pub type PFN_vkGetPhysicalDeviceFormatProperties2 = unsafe extern "system" fn(
4702     physical_device: PhysicalDevice,
4703     format: Format,
4704     p_format_properties: *mut FormatProperties2,
4705 );
4706 #[allow(non_camel_case_types)]
4707 pub type PFN_vkGetPhysicalDeviceImageFormatProperties2 = unsafe extern "system" fn(
4708     physical_device: PhysicalDevice,
4709     p_image_format_info: *const PhysicalDeviceImageFormatInfo2,
4710     p_image_format_properties: *mut ImageFormatProperties2,
4711 ) -> Result;
4712 #[allow(non_camel_case_types)]
4713 pub type PFN_vkGetPhysicalDeviceQueueFamilyProperties2 = unsafe extern "system" fn(
4714     physical_device: PhysicalDevice,
4715     p_queue_family_property_count: *mut u32,
4716     p_queue_family_properties: *mut QueueFamilyProperties2,
4717 );
4718 #[allow(non_camel_case_types)]
4719 pub type PFN_vkGetPhysicalDeviceMemoryProperties2 = unsafe extern "system" fn(
4720     physical_device: PhysicalDevice,
4721     p_memory_properties: *mut PhysicalDeviceMemoryProperties2,
4722 );
4723 #[allow(non_camel_case_types)]
4724 pub type PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 = unsafe extern "system" fn(
4725     physical_device: PhysicalDevice,
4726     p_format_info: *const PhysicalDeviceSparseImageFormatInfo2,
4727     p_property_count: *mut u32,
4728     p_properties: *mut SparseImageFormatProperties2,
4729 );
4730 #[derive(Clone)]
4731 pub struct KhrGetPhysicalDeviceProperties2Fn {
4732     pub get_physical_device_features2_khr: PFN_vkGetPhysicalDeviceFeatures2,
4733     pub get_physical_device_properties2_khr: PFN_vkGetPhysicalDeviceProperties2,
4734     pub get_physical_device_format_properties2_khr: PFN_vkGetPhysicalDeviceFormatProperties2,
4735     pub get_physical_device_image_format_properties2_khr:
4736         PFN_vkGetPhysicalDeviceImageFormatProperties2,
4737     pub get_physical_device_queue_family_properties2_khr:
4738         PFN_vkGetPhysicalDeviceQueueFamilyProperties2,
4739     pub get_physical_device_memory_properties2_khr: PFN_vkGetPhysicalDeviceMemoryProperties2,
4740     pub get_physical_device_sparse_image_format_properties2_khr:
4741         PFN_vkGetPhysicalDeviceSparseImageFormatProperties2,
4742 }
4743 unsafe impl Send for KhrGetPhysicalDeviceProperties2Fn {}
4744 unsafe impl Sync for KhrGetPhysicalDeviceProperties2Fn {}
4745 impl KhrGetPhysicalDeviceProperties2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,4746     pub fn load<F>(mut _f: F) -> Self
4747     where
4748         F: FnMut(&::std::ffi::CStr) -> *const c_void,
4749     {
4750         Self {
4751             get_physical_device_features2_khr: unsafe {
4752                 unsafe extern "system" fn get_physical_device_features2_khr(
4753                     _physical_device: PhysicalDevice,
4754                     _p_features: *mut PhysicalDeviceFeatures2,
4755                 ) {
4756                     panic!(concat!(
4757                         "Unable to load ",
4758                         stringify!(get_physical_device_features2_khr)
4759                     ))
4760                 }
4761                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4762                     b"vkGetPhysicalDeviceFeatures2KHR\0",
4763                 );
4764                 let val = _f(cname);
4765                 if val.is_null() {
4766                     get_physical_device_features2_khr
4767                 } else {
4768                     ::std::mem::transmute(val)
4769                 }
4770             },
4771             get_physical_device_properties2_khr: unsafe {
4772                 unsafe extern "system" fn get_physical_device_properties2_khr(
4773                     _physical_device: PhysicalDevice,
4774                     _p_properties: *mut PhysicalDeviceProperties2,
4775                 ) {
4776                     panic!(concat!(
4777                         "Unable to load ",
4778                         stringify!(get_physical_device_properties2_khr)
4779                     ))
4780                 }
4781                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4782                     b"vkGetPhysicalDeviceProperties2KHR\0",
4783                 );
4784                 let val = _f(cname);
4785                 if val.is_null() {
4786                     get_physical_device_properties2_khr
4787                 } else {
4788                     ::std::mem::transmute(val)
4789                 }
4790             },
4791             get_physical_device_format_properties2_khr: unsafe {
4792                 unsafe extern "system" fn get_physical_device_format_properties2_khr(
4793                     _physical_device: PhysicalDevice,
4794                     _format: Format,
4795                     _p_format_properties: *mut FormatProperties2,
4796                 ) {
4797                     panic!(concat!(
4798                         "Unable to load ",
4799                         stringify!(get_physical_device_format_properties2_khr)
4800                     ))
4801                 }
4802                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4803                     b"vkGetPhysicalDeviceFormatProperties2KHR\0",
4804                 );
4805                 let val = _f(cname);
4806                 if val.is_null() {
4807                     get_physical_device_format_properties2_khr
4808                 } else {
4809                     ::std::mem::transmute(val)
4810                 }
4811             },
4812             get_physical_device_image_format_properties2_khr: unsafe {
4813                 unsafe extern "system" fn get_physical_device_image_format_properties2_khr(
4814                     _physical_device: PhysicalDevice,
4815                     _p_image_format_info: *const PhysicalDeviceImageFormatInfo2,
4816                     _p_image_format_properties: *mut ImageFormatProperties2,
4817                 ) -> Result {
4818                     panic!(concat!(
4819                         "Unable to load ",
4820                         stringify!(get_physical_device_image_format_properties2_khr)
4821                     ))
4822                 }
4823                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4824                     b"vkGetPhysicalDeviceImageFormatProperties2KHR\0",
4825                 );
4826                 let val = _f(cname);
4827                 if val.is_null() {
4828                     get_physical_device_image_format_properties2_khr
4829                 } else {
4830                     ::std::mem::transmute(val)
4831                 }
4832             },
4833             get_physical_device_queue_family_properties2_khr: unsafe {
4834                 unsafe extern "system" fn get_physical_device_queue_family_properties2_khr(
4835                     _physical_device: PhysicalDevice,
4836                     _p_queue_family_property_count: *mut u32,
4837                     _p_queue_family_properties: *mut QueueFamilyProperties2,
4838                 ) {
4839                     panic!(concat!(
4840                         "Unable to load ",
4841                         stringify!(get_physical_device_queue_family_properties2_khr)
4842                     ))
4843                 }
4844                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4845                     b"vkGetPhysicalDeviceQueueFamilyProperties2KHR\0",
4846                 );
4847                 let val = _f(cname);
4848                 if val.is_null() {
4849                     get_physical_device_queue_family_properties2_khr
4850                 } else {
4851                     ::std::mem::transmute(val)
4852                 }
4853             },
4854             get_physical_device_memory_properties2_khr: unsafe {
4855                 unsafe extern "system" fn get_physical_device_memory_properties2_khr(
4856                     _physical_device: PhysicalDevice,
4857                     _p_memory_properties: *mut PhysicalDeviceMemoryProperties2,
4858                 ) {
4859                     panic!(concat!(
4860                         "Unable to load ",
4861                         stringify!(get_physical_device_memory_properties2_khr)
4862                     ))
4863                 }
4864                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4865                     b"vkGetPhysicalDeviceMemoryProperties2KHR\0",
4866                 );
4867                 let val = _f(cname);
4868                 if val.is_null() {
4869                     get_physical_device_memory_properties2_khr
4870                 } else {
4871                     ::std::mem::transmute(val)
4872                 }
4873             },
4874             get_physical_device_sparse_image_format_properties2_khr: unsafe {
4875                 unsafe extern "system" fn get_physical_device_sparse_image_format_properties2_khr(
4876                     _physical_device: PhysicalDevice,
4877                     _p_format_info: *const PhysicalDeviceSparseImageFormatInfo2,
4878                     _p_property_count: *mut u32,
4879                     _p_properties: *mut SparseImageFormatProperties2,
4880                 ) {
4881                     panic!(concat!(
4882                         "Unable to load ",
4883                         stringify!(get_physical_device_sparse_image_format_properties2_khr)
4884                     ))
4885                 }
4886                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
4887                     b"vkGetPhysicalDeviceSparseImageFormatProperties2KHR\0",
4888                 );
4889                 let val = _f(cname);
4890                 if val.is_null() {
4891                     get_physical_device_sparse_image_format_properties2_khr
4892                 } else {
4893                     ::std::mem::transmute(val)
4894                 }
4895             },
4896         }
4897     }
4898     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceFeatures2KHR.html>"]
get_physical_device_features2_khr( &self, physical_device: PhysicalDevice, p_features: *mut PhysicalDeviceFeatures2, )4899     pub unsafe fn get_physical_device_features2_khr(
4900         &self,
4901         physical_device: PhysicalDevice,
4902         p_features: *mut PhysicalDeviceFeatures2,
4903     ) {
4904         (self.get_physical_device_features2_khr)(physical_device, p_features)
4905     }
4906     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceProperties2KHR.html>"]
get_physical_device_properties2_khr( &self, physical_device: PhysicalDevice, p_properties: *mut PhysicalDeviceProperties2, )4907     pub unsafe fn get_physical_device_properties2_khr(
4908         &self,
4909         physical_device: PhysicalDevice,
4910         p_properties: *mut PhysicalDeviceProperties2,
4911     ) {
4912         (self.get_physical_device_properties2_khr)(physical_device, p_properties)
4913     }
4914     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceFormatProperties2KHR.html>"]
get_physical_device_format_properties2_khr( &self, physical_device: PhysicalDevice, format: Format, p_format_properties: *mut FormatProperties2, )4915     pub unsafe fn get_physical_device_format_properties2_khr(
4916         &self,
4917         physical_device: PhysicalDevice,
4918         format: Format,
4919         p_format_properties: *mut FormatProperties2,
4920     ) {
4921         (self.get_physical_device_format_properties2_khr)(
4922             physical_device,
4923             format,
4924             p_format_properties,
4925         )
4926     }
4927     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceImageFormatProperties2KHR.html>"]
get_physical_device_image_format_properties2_khr( &self, physical_device: PhysicalDevice, p_image_format_info: *const PhysicalDeviceImageFormatInfo2, p_image_format_properties: *mut ImageFormatProperties2, ) -> Result4928     pub unsafe fn get_physical_device_image_format_properties2_khr(
4929         &self,
4930         physical_device: PhysicalDevice,
4931         p_image_format_info: *const PhysicalDeviceImageFormatInfo2,
4932         p_image_format_properties: *mut ImageFormatProperties2,
4933     ) -> Result {
4934         (self.get_physical_device_image_format_properties2_khr)(
4935             physical_device,
4936             p_image_format_info,
4937             p_image_format_properties,
4938         )
4939     }
4940     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceQueueFamilyProperties2KHR.html>"]
get_physical_device_queue_family_properties2_khr( &self, physical_device: PhysicalDevice, p_queue_family_property_count: *mut u32, p_queue_family_properties: *mut QueueFamilyProperties2, )4941     pub unsafe fn get_physical_device_queue_family_properties2_khr(
4942         &self,
4943         physical_device: PhysicalDevice,
4944         p_queue_family_property_count: *mut u32,
4945         p_queue_family_properties: *mut QueueFamilyProperties2,
4946     ) {
4947         (self.get_physical_device_queue_family_properties2_khr)(
4948             physical_device,
4949             p_queue_family_property_count,
4950             p_queue_family_properties,
4951         )
4952     }
4953     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceMemoryProperties2KHR.html>"]
get_physical_device_memory_properties2_khr( &self, physical_device: PhysicalDevice, p_memory_properties: *mut PhysicalDeviceMemoryProperties2, )4954     pub unsafe fn get_physical_device_memory_properties2_khr(
4955         &self,
4956         physical_device: PhysicalDevice,
4957         p_memory_properties: *mut PhysicalDeviceMemoryProperties2,
4958     ) {
4959         (self.get_physical_device_memory_properties2_khr)(physical_device, p_memory_properties)
4960     }
4961     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceSparseImageFormatProperties2KHR.html>"]
get_physical_device_sparse_image_format_properties2_khr( &self, physical_device: PhysicalDevice, p_format_info: *const PhysicalDeviceSparseImageFormatInfo2, p_property_count: *mut u32, p_properties: *mut SparseImageFormatProperties2, )4962     pub unsafe fn get_physical_device_sparse_image_format_properties2_khr(
4963         &self,
4964         physical_device: PhysicalDevice,
4965         p_format_info: *const PhysicalDeviceSparseImageFormatInfo2,
4966         p_property_count: *mut u32,
4967         p_properties: *mut SparseImageFormatProperties2,
4968     ) {
4969         (self.get_physical_device_sparse_image_format_properties2_khr)(
4970             physical_device,
4971             p_format_info,
4972             p_property_count,
4973             p_properties,
4974         )
4975     }
4976 }
4977 #[doc = "Generated from 'VK_KHR_get_physical_device_properties2'"]
4978 impl StructureType {
4979     pub const PHYSICAL_DEVICE_FEATURES_2_KHR: Self = Self::PHYSICAL_DEVICE_FEATURES_2;
4980     pub const PHYSICAL_DEVICE_PROPERTIES_2_KHR: Self = Self::PHYSICAL_DEVICE_PROPERTIES_2;
4981     pub const FORMAT_PROPERTIES_2_KHR: Self = Self::FORMAT_PROPERTIES_2;
4982     pub const IMAGE_FORMAT_PROPERTIES_2_KHR: Self = Self::IMAGE_FORMAT_PROPERTIES_2;
4983     pub const PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR: Self =
4984         Self::PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2;
4985     pub const QUEUE_FAMILY_PROPERTIES_2_KHR: Self = Self::QUEUE_FAMILY_PROPERTIES_2;
4986     pub const PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR: Self =
4987         Self::PHYSICAL_DEVICE_MEMORY_PROPERTIES_2;
4988     pub const SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR: Self = Self::SPARSE_IMAGE_FORMAT_PROPERTIES_2;
4989     pub const PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR: Self =
4990         Self::PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2;
4991 }
4992 impl KhrDeviceGroupFn {
name() -> &'static ::std::ffi::CStr4993     pub fn name() -> &'static ::std::ffi::CStr {
4994         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_device_group\0") }
4995     }
4996     pub const SPEC_VERSION: u32 = 4u32;
4997 }
4998 #[allow(non_camel_case_types)]
4999 pub type PFN_vkGetDeviceGroupPeerMemoryFeatures = unsafe extern "system" fn(
5000     device: Device,
5001     heap_index: u32,
5002     local_device_index: u32,
5003     remote_device_index: u32,
5004     p_peer_memory_features: *mut PeerMemoryFeatureFlags,
5005 );
5006 #[allow(non_camel_case_types)]
5007 pub type PFN_vkCmdSetDeviceMask =
5008     unsafe extern "system" fn(command_buffer: CommandBuffer, device_mask: u32);
5009 #[allow(non_camel_case_types)]
5010 pub type PFN_vkCmdDispatchBase = unsafe extern "system" fn(
5011     command_buffer: CommandBuffer,
5012     base_group_x: u32,
5013     base_group_y: u32,
5014     base_group_z: u32,
5015     group_count_x: u32,
5016     group_count_y: u32,
5017     group_count_z: u32,
5018 );
5019 #[derive(Clone)]
5020 pub struct KhrDeviceGroupFn {
5021     pub get_device_group_peer_memory_features_khr: PFN_vkGetDeviceGroupPeerMemoryFeatures,
5022     pub cmd_set_device_mask_khr: PFN_vkCmdSetDeviceMask,
5023     pub cmd_dispatch_base_khr: PFN_vkCmdDispatchBase,
5024     pub get_device_group_present_capabilities_khr:
5025         crate::vk::PFN_vkGetDeviceGroupPresentCapabilitiesKHR,
5026     pub get_device_group_surface_present_modes_khr:
5027         crate::vk::PFN_vkGetDeviceGroupSurfacePresentModesKHR,
5028     pub get_physical_device_present_rectangles_khr:
5029         crate::vk::PFN_vkGetPhysicalDevicePresentRectanglesKHR,
5030     pub acquire_next_image2_khr: crate::vk::PFN_vkAcquireNextImage2KHR,
5031 }
5032 unsafe impl Send for KhrDeviceGroupFn {}
5033 unsafe impl Sync for KhrDeviceGroupFn {}
5034 impl KhrDeviceGroupFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5035     pub fn load<F>(mut _f: F) -> Self
5036     where
5037         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5038     {
5039         Self {
5040             get_device_group_peer_memory_features_khr: unsafe {
5041                 unsafe extern "system" fn get_device_group_peer_memory_features_khr(
5042                     _device: Device,
5043                     _heap_index: u32,
5044                     _local_device_index: u32,
5045                     _remote_device_index: u32,
5046                     _p_peer_memory_features: *mut PeerMemoryFeatureFlags,
5047                 ) {
5048                     panic!(concat!(
5049                         "Unable to load ",
5050                         stringify!(get_device_group_peer_memory_features_khr)
5051                     ))
5052                 }
5053                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5054                     b"vkGetDeviceGroupPeerMemoryFeaturesKHR\0",
5055                 );
5056                 let val = _f(cname);
5057                 if val.is_null() {
5058                     get_device_group_peer_memory_features_khr
5059                 } else {
5060                     ::std::mem::transmute(val)
5061                 }
5062             },
5063             cmd_set_device_mask_khr: unsafe {
5064                 unsafe extern "system" fn cmd_set_device_mask_khr(
5065                     _command_buffer: CommandBuffer,
5066                     _device_mask: u32,
5067                 ) {
5068                     panic!(concat!(
5069                         "Unable to load ",
5070                         stringify!(cmd_set_device_mask_khr)
5071                     ))
5072                 }
5073                 let cname =
5074                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDeviceMaskKHR\0");
5075                 let val = _f(cname);
5076                 if val.is_null() {
5077                     cmd_set_device_mask_khr
5078                 } else {
5079                     ::std::mem::transmute(val)
5080                 }
5081             },
5082             cmd_dispatch_base_khr: unsafe {
5083                 unsafe extern "system" fn cmd_dispatch_base_khr(
5084                     _command_buffer: CommandBuffer,
5085                     _base_group_x: u32,
5086                     _base_group_y: u32,
5087                     _base_group_z: u32,
5088                     _group_count_x: u32,
5089                     _group_count_y: u32,
5090                     _group_count_z: u32,
5091                 ) {
5092                     panic!(concat!(
5093                         "Unable to load ",
5094                         stringify!(cmd_dispatch_base_khr)
5095                     ))
5096                 }
5097                 let cname =
5098                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDispatchBaseKHR\0");
5099                 let val = _f(cname);
5100                 if val.is_null() {
5101                     cmd_dispatch_base_khr
5102                 } else {
5103                     ::std::mem::transmute(val)
5104                 }
5105             },
5106             get_device_group_present_capabilities_khr: unsafe {
5107                 unsafe extern "system" fn get_device_group_present_capabilities_khr(
5108                     _device: Device,
5109                     _p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR,
5110                 ) -> Result {
5111                     panic!(concat!(
5112                         "Unable to load ",
5113                         stringify!(get_device_group_present_capabilities_khr)
5114                     ))
5115                 }
5116                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5117                     b"vkGetDeviceGroupPresentCapabilitiesKHR\0",
5118                 );
5119                 let val = _f(cname);
5120                 if val.is_null() {
5121                     get_device_group_present_capabilities_khr
5122                 } else {
5123                     ::std::mem::transmute(val)
5124                 }
5125             },
5126             get_device_group_surface_present_modes_khr: unsafe {
5127                 unsafe extern "system" fn get_device_group_surface_present_modes_khr(
5128                     _device: Device,
5129                     _surface: SurfaceKHR,
5130                     _p_modes: *mut DeviceGroupPresentModeFlagsKHR,
5131                 ) -> Result {
5132                     panic!(concat!(
5133                         "Unable to load ",
5134                         stringify!(get_device_group_surface_present_modes_khr)
5135                     ))
5136                 }
5137                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5138                     b"vkGetDeviceGroupSurfacePresentModesKHR\0",
5139                 );
5140                 let val = _f(cname);
5141                 if val.is_null() {
5142                     get_device_group_surface_present_modes_khr
5143                 } else {
5144                     ::std::mem::transmute(val)
5145                 }
5146             },
5147             get_physical_device_present_rectangles_khr: unsafe {
5148                 unsafe extern "system" fn get_physical_device_present_rectangles_khr(
5149                     _physical_device: PhysicalDevice,
5150                     _surface: SurfaceKHR,
5151                     _p_rect_count: *mut u32,
5152                     _p_rects: *mut Rect2D,
5153                 ) -> Result {
5154                     panic!(concat!(
5155                         "Unable to load ",
5156                         stringify!(get_physical_device_present_rectangles_khr)
5157                     ))
5158                 }
5159                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5160                     b"vkGetPhysicalDevicePresentRectanglesKHR\0",
5161                 );
5162                 let val = _f(cname);
5163                 if val.is_null() {
5164                     get_physical_device_present_rectangles_khr
5165                 } else {
5166                     ::std::mem::transmute(val)
5167                 }
5168             },
5169             acquire_next_image2_khr: unsafe {
5170                 unsafe extern "system" fn acquire_next_image2_khr(
5171                     _device: Device,
5172                     _p_acquire_info: *const AcquireNextImageInfoKHR,
5173                     _p_image_index: *mut u32,
5174                 ) -> Result {
5175                     panic!(concat!(
5176                         "Unable to load ",
5177                         stringify!(acquire_next_image2_khr)
5178                     ))
5179                 }
5180                 let cname =
5181                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireNextImage2KHR\0");
5182                 let val = _f(cname);
5183                 if val.is_null() {
5184                     acquire_next_image2_khr
5185                 } else {
5186                     ::std::mem::transmute(val)
5187                 }
5188             },
5189         }
5190     }
5191     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeviceGroupPeerMemoryFeaturesKHR.html>"]
get_device_group_peer_memory_features_khr( &self, device: Device, heap_index: u32, local_device_index: u32, remote_device_index: u32, p_peer_memory_features: *mut PeerMemoryFeatureFlags, )5192     pub unsafe fn get_device_group_peer_memory_features_khr(
5193         &self,
5194         device: Device,
5195         heap_index: u32,
5196         local_device_index: u32,
5197         remote_device_index: u32,
5198         p_peer_memory_features: *mut PeerMemoryFeatureFlags,
5199     ) {
5200         (self.get_device_group_peer_memory_features_khr)(
5201             device,
5202             heap_index,
5203             local_device_index,
5204             remote_device_index,
5205             p_peer_memory_features,
5206         )
5207     }
5208     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetDeviceMaskKHR.html>"]
cmd_set_device_mask_khr(&self, command_buffer: CommandBuffer, device_mask: u32)5209     pub unsafe fn cmd_set_device_mask_khr(&self, command_buffer: CommandBuffer, device_mask: u32) {
5210         (self.cmd_set_device_mask_khr)(command_buffer, device_mask)
5211     }
5212     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDispatchBaseKHR.html>"]
cmd_dispatch_base_khr( &self, command_buffer: CommandBuffer, base_group_x: u32, base_group_y: u32, base_group_z: u32, group_count_x: u32, group_count_y: u32, group_count_z: u32, )5213     pub unsafe fn cmd_dispatch_base_khr(
5214         &self,
5215         command_buffer: CommandBuffer,
5216         base_group_x: u32,
5217         base_group_y: u32,
5218         base_group_z: u32,
5219         group_count_x: u32,
5220         group_count_y: u32,
5221         group_count_z: u32,
5222     ) {
5223         (self.cmd_dispatch_base_khr)(
5224             command_buffer,
5225             base_group_x,
5226             base_group_y,
5227             base_group_z,
5228             group_count_x,
5229             group_count_y,
5230             group_count_z,
5231         )
5232     }
5233     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeviceGroupPresentCapabilitiesKHR.html>"]
get_device_group_present_capabilities_khr( &self, device: Device, p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR, ) -> Result5234     pub unsafe fn get_device_group_present_capabilities_khr(
5235         &self,
5236         device: Device,
5237         p_device_group_present_capabilities: *mut DeviceGroupPresentCapabilitiesKHR,
5238     ) -> Result {
5239         (self.get_device_group_present_capabilities_khr)(
5240             device,
5241             p_device_group_present_capabilities,
5242         )
5243     }
5244     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeviceGroupSurfacePresentModesKHR.html>"]
get_device_group_surface_present_modes_khr( &self, device: Device, surface: SurfaceKHR, p_modes: *mut DeviceGroupPresentModeFlagsKHR, ) -> Result5245     pub unsafe fn get_device_group_surface_present_modes_khr(
5246         &self,
5247         device: Device,
5248         surface: SurfaceKHR,
5249         p_modes: *mut DeviceGroupPresentModeFlagsKHR,
5250     ) -> Result {
5251         (self.get_device_group_surface_present_modes_khr)(device, surface, p_modes)
5252     }
5253     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDevicePresentRectanglesKHR.html>"]
get_physical_device_present_rectangles_khr( &self, physical_device: PhysicalDevice, surface: SurfaceKHR, p_rect_count: *mut u32, p_rects: *mut Rect2D, ) -> Result5254     pub unsafe fn get_physical_device_present_rectangles_khr(
5255         &self,
5256         physical_device: PhysicalDevice,
5257         surface: SurfaceKHR,
5258         p_rect_count: *mut u32,
5259         p_rects: *mut Rect2D,
5260     ) -> Result {
5261         (self.get_physical_device_present_rectangles_khr)(
5262             physical_device,
5263             surface,
5264             p_rect_count,
5265             p_rects,
5266         )
5267     }
5268     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkAcquireNextImage2KHR.html>"]
acquire_next_image2_khr( &self, device: Device, p_acquire_info: *const AcquireNextImageInfoKHR, p_image_index: *mut u32, ) -> Result5269     pub unsafe fn acquire_next_image2_khr(
5270         &self,
5271         device: Device,
5272         p_acquire_info: *const AcquireNextImageInfoKHR,
5273         p_image_index: *mut u32,
5274     ) -> Result {
5275         (self.acquire_next_image2_khr)(device, p_acquire_info, p_image_index)
5276     }
5277 }
5278 #[doc = "Generated from 'VK_KHR_device_group'"]
5279 impl DependencyFlags {
5280     pub const DEVICE_GROUP_KHR: Self = Self::DEVICE_GROUP;
5281 }
5282 #[doc = "Generated from 'VK_KHR_device_group'"]
5283 impl ImageCreateFlags {
5284     pub const SPLIT_INSTANCE_BIND_REGIONS_KHR: Self = Self::SPLIT_INSTANCE_BIND_REGIONS;
5285 }
5286 #[doc = "Generated from 'VK_KHR_device_group'"]
5287 impl MemoryAllocateFlags {
5288     pub const DEVICE_MASK_KHR: Self = Self::DEVICE_MASK;
5289 }
5290 #[doc = "Generated from 'VK_KHR_device_group'"]
5291 impl PeerMemoryFeatureFlags {
5292     pub const COPY_SRC_KHR: Self = Self::COPY_SRC;
5293     pub const COPY_DST_KHR: Self = Self::COPY_DST;
5294     pub const GENERIC_SRC_KHR: Self = Self::GENERIC_SRC;
5295     pub const GENERIC_DST_KHR: Self = Self::GENERIC_DST;
5296 }
5297 #[doc = "Generated from 'VK_KHR_device_group'"]
5298 impl PipelineCreateFlags {
5299     pub const VIEW_INDEX_FROM_DEVICE_INDEX_KHR: Self = Self::VIEW_INDEX_FROM_DEVICE_INDEX;
5300 }
5301 #[doc = "Generated from 'VK_KHR_device_group'"]
5302 impl StructureType {
5303     pub const MEMORY_ALLOCATE_FLAGS_INFO_KHR: Self = Self::MEMORY_ALLOCATE_FLAGS_INFO;
5304     pub const DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR: Self =
5305         Self::DEVICE_GROUP_RENDER_PASS_BEGIN_INFO;
5306     pub const DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR: Self =
5307         Self::DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO;
5308     pub const DEVICE_GROUP_SUBMIT_INFO_KHR: Self = Self::DEVICE_GROUP_SUBMIT_INFO;
5309     pub const DEVICE_GROUP_BIND_SPARSE_INFO_KHR: Self = Self::DEVICE_GROUP_BIND_SPARSE_INFO;
5310     pub const BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR: Self =
5311         Self::BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO;
5312     pub const BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR: Self =
5313         Self::BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO;
5314 }
5315 impl ExtValidationFlagsFn {
name() -> &'static ::std::ffi::CStr5316     pub fn name() -> &'static ::std::ffi::CStr {
5317         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_validation_flags\0") }
5318     }
5319     pub const SPEC_VERSION: u32 = 2u32;
5320 }
5321 #[derive(Clone)]
5322 pub struct ExtValidationFlagsFn {}
5323 unsafe impl Send for ExtValidationFlagsFn {}
5324 unsafe impl Sync for ExtValidationFlagsFn {}
5325 impl ExtValidationFlagsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5326     pub fn load<F>(mut _f: F) -> Self
5327     where
5328         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5329     {
5330         Self {}
5331     }
5332 }
5333 #[doc = "Generated from 'VK_EXT_validation_flags'"]
5334 impl StructureType {
5335     pub const VALIDATION_FLAGS_EXT: Self = Self(1_000_061_000);
5336 }
5337 impl NnViSurfaceFn {
name() -> &'static ::std::ffi::CStr5338     pub fn name() -> &'static ::std::ffi::CStr {
5339         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NN_vi_surface\0") }
5340     }
5341     pub const SPEC_VERSION: u32 = 1u32;
5342 }
5343 #[allow(non_camel_case_types)]
5344 pub type PFN_vkCreateViSurfaceNN = unsafe extern "system" fn(
5345     instance: Instance,
5346     p_create_info: *const ViSurfaceCreateInfoNN,
5347     p_allocator: *const AllocationCallbacks,
5348     p_surface: *mut SurfaceKHR,
5349 ) -> Result;
5350 #[derive(Clone)]
5351 pub struct NnViSurfaceFn {
5352     pub create_vi_surface_nn: PFN_vkCreateViSurfaceNN,
5353 }
5354 unsafe impl Send for NnViSurfaceFn {}
5355 unsafe impl Sync for NnViSurfaceFn {}
5356 impl NnViSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5357     pub fn load<F>(mut _f: F) -> Self
5358     where
5359         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5360     {
5361         Self {
5362             create_vi_surface_nn: unsafe {
5363                 unsafe extern "system" fn create_vi_surface_nn(
5364                     _instance: Instance,
5365                     _p_create_info: *const ViSurfaceCreateInfoNN,
5366                     _p_allocator: *const AllocationCallbacks,
5367                     _p_surface: *mut SurfaceKHR,
5368                 ) -> Result {
5369                     panic!(concat!("Unable to load ", stringify!(create_vi_surface_nn)))
5370                 }
5371                 let cname =
5372                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateViSurfaceNN\0");
5373                 let val = _f(cname);
5374                 if val.is_null() {
5375                     create_vi_surface_nn
5376                 } else {
5377                     ::std::mem::transmute(val)
5378                 }
5379             },
5380         }
5381     }
5382     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateViSurfaceNN.html>"]
create_vi_surface_nn( &self, instance: Instance, p_create_info: *const ViSurfaceCreateInfoNN, p_allocator: *const AllocationCallbacks, p_surface: *mut SurfaceKHR, ) -> Result5383     pub unsafe fn create_vi_surface_nn(
5384         &self,
5385         instance: Instance,
5386         p_create_info: *const ViSurfaceCreateInfoNN,
5387         p_allocator: *const AllocationCallbacks,
5388         p_surface: *mut SurfaceKHR,
5389     ) -> Result {
5390         (self.create_vi_surface_nn)(instance, p_create_info, p_allocator, p_surface)
5391     }
5392 }
5393 #[doc = "Generated from 'VK_NN_vi_surface'"]
5394 impl StructureType {
5395     pub const VI_SURFACE_CREATE_INFO_NN: Self = Self(1_000_062_000);
5396 }
5397 impl KhrShaderDrawParametersFn {
name() -> &'static ::std::ffi::CStr5398     pub fn name() -> &'static ::std::ffi::CStr {
5399         unsafe {
5400             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_draw_parameters\0")
5401         }
5402     }
5403     pub const SPEC_VERSION: u32 = 1u32;
5404 }
5405 #[derive(Clone)]
5406 pub struct KhrShaderDrawParametersFn {}
5407 unsafe impl Send for KhrShaderDrawParametersFn {}
5408 unsafe impl Sync for KhrShaderDrawParametersFn {}
5409 impl KhrShaderDrawParametersFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5410     pub fn load<F>(mut _f: F) -> Self
5411     where
5412         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5413     {
5414         Self {}
5415     }
5416 }
5417 impl ExtShaderSubgroupBallotFn {
name() -> &'static ::std::ffi::CStr5418     pub fn name() -> &'static ::std::ffi::CStr {
5419         unsafe {
5420             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_subgroup_ballot\0")
5421         }
5422     }
5423     pub const SPEC_VERSION: u32 = 1u32;
5424 }
5425 #[derive(Clone)]
5426 pub struct ExtShaderSubgroupBallotFn {}
5427 unsafe impl Send for ExtShaderSubgroupBallotFn {}
5428 unsafe impl Sync for ExtShaderSubgroupBallotFn {}
5429 impl ExtShaderSubgroupBallotFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5430     pub fn load<F>(mut _f: F) -> Self
5431     where
5432         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5433     {
5434         Self {}
5435     }
5436 }
5437 impl ExtShaderSubgroupVoteFn {
name() -> &'static ::std::ffi::CStr5438     pub fn name() -> &'static ::std::ffi::CStr {
5439         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_subgroup_vote\0") }
5440     }
5441     pub const SPEC_VERSION: u32 = 1u32;
5442 }
5443 #[derive(Clone)]
5444 pub struct ExtShaderSubgroupVoteFn {}
5445 unsafe impl Send for ExtShaderSubgroupVoteFn {}
5446 unsafe impl Sync for ExtShaderSubgroupVoteFn {}
5447 impl ExtShaderSubgroupVoteFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5448     pub fn load<F>(mut _f: F) -> Self
5449     where
5450         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5451     {
5452         Self {}
5453     }
5454 }
5455 impl ExtTextureCompressionAstcHdrFn {
name() -> &'static ::std::ffi::CStr5456     pub fn name() -> &'static ::std::ffi::CStr {
5457         unsafe {
5458             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5459                 b"VK_EXT_texture_compression_astc_hdr\0",
5460             )
5461         }
5462     }
5463     pub const SPEC_VERSION: u32 = 1u32;
5464 }
5465 #[derive(Clone)]
5466 pub struct ExtTextureCompressionAstcHdrFn {}
5467 unsafe impl Send for ExtTextureCompressionAstcHdrFn {}
5468 unsafe impl Sync for ExtTextureCompressionAstcHdrFn {}
5469 impl ExtTextureCompressionAstcHdrFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5470     pub fn load<F>(mut _f: F) -> Self
5471     where
5472         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5473     {
5474         Self {}
5475     }
5476 }
5477 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5478 impl Format {
5479     pub const ASTC_4X4_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_000);
5480     pub const ASTC_5X4_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_001);
5481     pub const ASTC_5X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_002);
5482     pub const ASTC_6X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_003);
5483     pub const ASTC_6X6_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_004);
5484     pub const ASTC_8X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_005);
5485     pub const ASTC_8X6_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_006);
5486     pub const ASTC_8X8_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_007);
5487     pub const ASTC_10X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_008);
5488     pub const ASTC_10X6_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_009);
5489     pub const ASTC_10X8_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_010);
5490     pub const ASTC_10X10_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_011);
5491     pub const ASTC_12X10_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_012);
5492     pub const ASTC_12X12_SFLOAT_BLOCK_EXT: Self = Self(1_000_066_013);
5493 }
5494 #[doc = "Generated from 'VK_EXT_texture_compression_astc_hdr'"]
5495 impl StructureType {
5496     pub const PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT: Self = Self(1_000_066_000);
5497 }
5498 impl ExtAstcDecodeModeFn {
name() -> &'static ::std::ffi::CStr5499     pub fn name() -> &'static ::std::ffi::CStr {
5500         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_astc_decode_mode\0") }
5501     }
5502     pub const SPEC_VERSION: u32 = 1u32;
5503 }
5504 #[derive(Clone)]
5505 pub struct ExtAstcDecodeModeFn {}
5506 unsafe impl Send for ExtAstcDecodeModeFn {}
5507 unsafe impl Sync for ExtAstcDecodeModeFn {}
5508 impl ExtAstcDecodeModeFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5509     pub fn load<F>(mut _f: F) -> Self
5510     where
5511         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5512     {
5513         Self {}
5514     }
5515 }
5516 #[doc = "Generated from 'VK_EXT_astc_decode_mode'"]
5517 impl StructureType {
5518     pub const IMAGE_VIEW_ASTC_DECODE_MODE_EXT: Self = Self(1_000_067_000);
5519     pub const PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: Self = Self(1_000_067_001);
5520 }
5521 impl ImgExtension69Fn {
name() -> &'static ::std::ffi::CStr5522     pub fn name() -> &'static ::std::ffi::CStr {
5523         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_IMG_extension_69\0") }
5524     }
5525     pub const SPEC_VERSION: u32 = 0u32;
5526 }
5527 #[derive(Clone)]
5528 pub struct ImgExtension69Fn {}
5529 unsafe impl Send for ImgExtension69Fn {}
5530 unsafe impl Sync for ImgExtension69Fn {}
5531 impl ImgExtension69Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5532     pub fn load<F>(mut _f: F) -> Self
5533     where
5534         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5535     {
5536         Self {}
5537     }
5538 }
5539 impl KhrMaintenance1Fn {
name() -> &'static ::std::ffi::CStr5540     pub fn name() -> &'static ::std::ffi::CStr {
5541         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance1\0") }
5542     }
5543     pub const SPEC_VERSION: u32 = 2u32;
5544 }
5545 #[allow(non_camel_case_types)]
5546 pub type PFN_vkTrimCommandPool = unsafe extern "system" fn(
5547     device: Device,
5548     command_pool: CommandPool,
5549     flags: CommandPoolTrimFlags,
5550 );
5551 #[derive(Clone)]
5552 pub struct KhrMaintenance1Fn {
5553     pub trim_command_pool_khr: PFN_vkTrimCommandPool,
5554 }
5555 unsafe impl Send for KhrMaintenance1Fn {}
5556 unsafe impl Sync for KhrMaintenance1Fn {}
5557 impl KhrMaintenance1Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5558     pub fn load<F>(mut _f: F) -> Self
5559     where
5560         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5561     {
5562         Self {
5563             trim_command_pool_khr: unsafe {
5564                 unsafe extern "system" fn trim_command_pool_khr(
5565                     _device: Device,
5566                     _command_pool: CommandPool,
5567                     _flags: CommandPoolTrimFlags,
5568                 ) {
5569                     panic!(concat!(
5570                         "Unable to load ",
5571                         stringify!(trim_command_pool_khr)
5572                     ))
5573                 }
5574                 let cname =
5575                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkTrimCommandPoolKHR\0");
5576                 let val = _f(cname);
5577                 if val.is_null() {
5578                     trim_command_pool_khr
5579                 } else {
5580                     ::std::mem::transmute(val)
5581                 }
5582             },
5583         }
5584     }
5585     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkTrimCommandPoolKHR.html>"]
trim_command_pool_khr( &self, device: Device, command_pool: CommandPool, flags: CommandPoolTrimFlags, )5586     pub unsafe fn trim_command_pool_khr(
5587         &self,
5588         device: Device,
5589         command_pool: CommandPool,
5590         flags: CommandPoolTrimFlags,
5591     ) {
5592         (self.trim_command_pool_khr)(device, command_pool, flags)
5593     }
5594 }
5595 #[doc = "Generated from 'VK_KHR_maintenance1'"]
5596 impl FormatFeatureFlags {
5597     pub const TRANSFER_SRC_KHR: Self = Self::TRANSFER_SRC;
5598     pub const TRANSFER_DST_KHR: Self = Self::TRANSFER_DST;
5599 }
5600 #[doc = "Generated from 'VK_KHR_maintenance1'"]
5601 impl ImageCreateFlags {
5602     pub const TYPE_2D_ARRAY_COMPATIBLE_KHR: Self = Self::TYPE_2D_ARRAY_COMPATIBLE;
5603 }
5604 #[doc = "Generated from 'VK_KHR_maintenance1'"]
5605 impl Result {
5606     pub const ERROR_OUT_OF_POOL_MEMORY_KHR: Self = Self::ERROR_OUT_OF_POOL_MEMORY;
5607 }
5608 impl KhrDeviceGroupCreationFn {
name() -> &'static ::std::ffi::CStr5609     pub fn name() -> &'static ::std::ffi::CStr {
5610         unsafe {
5611             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_device_group_creation\0")
5612         }
5613     }
5614     pub const SPEC_VERSION: u32 = 1u32;
5615 }
5616 #[allow(non_camel_case_types)]
5617 pub type PFN_vkEnumeratePhysicalDeviceGroups = unsafe extern "system" fn(
5618     instance: Instance,
5619     p_physical_device_group_count: *mut u32,
5620     p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties,
5621 ) -> Result;
5622 #[derive(Clone)]
5623 pub struct KhrDeviceGroupCreationFn {
5624     pub enumerate_physical_device_groups_khr: PFN_vkEnumeratePhysicalDeviceGroups,
5625 }
5626 unsafe impl Send for KhrDeviceGroupCreationFn {}
5627 unsafe impl Sync for KhrDeviceGroupCreationFn {}
5628 impl KhrDeviceGroupCreationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5629     pub fn load<F>(mut _f: F) -> Self
5630     where
5631         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5632     {
5633         Self {
5634             enumerate_physical_device_groups_khr: unsafe {
5635                 unsafe extern "system" fn enumerate_physical_device_groups_khr(
5636                     _instance: Instance,
5637                     _p_physical_device_group_count: *mut u32,
5638                     _p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties,
5639                 ) -> Result {
5640                     panic!(concat!(
5641                         "Unable to load ",
5642                         stringify!(enumerate_physical_device_groups_khr)
5643                     ))
5644                 }
5645                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5646                     b"vkEnumeratePhysicalDeviceGroupsKHR\0",
5647                 );
5648                 let val = _f(cname);
5649                 if val.is_null() {
5650                     enumerate_physical_device_groups_khr
5651                 } else {
5652                     ::std::mem::transmute(val)
5653                 }
5654             },
5655         }
5656     }
5657     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkEnumeratePhysicalDeviceGroupsKHR.html>"]
enumerate_physical_device_groups_khr( &self, instance: Instance, p_physical_device_group_count: *mut u32, p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties, ) -> Result5658     pub unsafe fn enumerate_physical_device_groups_khr(
5659         &self,
5660         instance: Instance,
5661         p_physical_device_group_count: *mut u32,
5662         p_physical_device_group_properties: *mut PhysicalDeviceGroupProperties,
5663     ) -> Result {
5664         (self.enumerate_physical_device_groups_khr)(
5665             instance,
5666             p_physical_device_group_count,
5667             p_physical_device_group_properties,
5668         )
5669     }
5670 }
5671 #[doc = "Generated from 'VK_KHR_device_group_creation'"]
5672 impl MemoryHeapFlags {
5673     pub const MULTI_INSTANCE_KHR: Self = Self::MULTI_INSTANCE;
5674 }
5675 #[doc = "Generated from 'VK_KHR_device_group_creation'"]
5676 impl StructureType {
5677     pub const PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR: Self = Self::PHYSICAL_DEVICE_GROUP_PROPERTIES;
5678     pub const DEVICE_GROUP_DEVICE_CREATE_INFO_KHR: Self = Self::DEVICE_GROUP_DEVICE_CREATE_INFO;
5679 }
5680 impl KhrExternalMemoryCapabilitiesFn {
name() -> &'static ::std::ffi::CStr5681     pub fn name() -> &'static ::std::ffi::CStr {
5682         unsafe {
5683             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5684                 b"VK_KHR_external_memory_capabilities\0",
5685             )
5686         }
5687     }
5688     pub const SPEC_VERSION: u32 = 1u32;
5689 }
5690 #[allow(non_camel_case_types)]
5691 pub type PFN_vkGetPhysicalDeviceExternalBufferProperties = unsafe extern "system" fn(
5692     physical_device: PhysicalDevice,
5693     p_external_buffer_info: *const PhysicalDeviceExternalBufferInfo,
5694     p_external_buffer_properties: *mut ExternalBufferProperties,
5695 );
5696 #[derive(Clone)]
5697 pub struct KhrExternalMemoryCapabilitiesFn {
5698     pub get_physical_device_external_buffer_properties_khr:
5699         PFN_vkGetPhysicalDeviceExternalBufferProperties,
5700 }
5701 unsafe impl Send for KhrExternalMemoryCapabilitiesFn {}
5702 unsafe impl Sync for KhrExternalMemoryCapabilitiesFn {}
5703 impl KhrExternalMemoryCapabilitiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5704     pub fn load<F>(mut _f: F) -> Self
5705     where
5706         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5707     {
5708         Self {
5709             get_physical_device_external_buffer_properties_khr: unsafe {
5710                 unsafe extern "system" fn get_physical_device_external_buffer_properties_khr(
5711                     _physical_device: PhysicalDevice,
5712                     _p_external_buffer_info: *const PhysicalDeviceExternalBufferInfo,
5713                     _p_external_buffer_properties: *mut ExternalBufferProperties,
5714                 ) {
5715                     panic!(concat!(
5716                         "Unable to load ",
5717                         stringify!(get_physical_device_external_buffer_properties_khr)
5718                     ))
5719                 }
5720                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5721                     b"vkGetPhysicalDeviceExternalBufferPropertiesKHR\0",
5722                 );
5723                 let val = _f(cname);
5724                 if val.is_null() {
5725                     get_physical_device_external_buffer_properties_khr
5726                 } else {
5727                     ::std::mem::transmute(val)
5728                 }
5729             },
5730         }
5731     }
5732     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceExternalBufferPropertiesKHR.html>"]
get_physical_device_external_buffer_properties_khr( &self, physical_device: PhysicalDevice, p_external_buffer_info: *const PhysicalDeviceExternalBufferInfo, p_external_buffer_properties: *mut ExternalBufferProperties, )5733     pub unsafe fn get_physical_device_external_buffer_properties_khr(
5734         &self,
5735         physical_device: PhysicalDevice,
5736         p_external_buffer_info: *const PhysicalDeviceExternalBufferInfo,
5737         p_external_buffer_properties: *mut ExternalBufferProperties,
5738     ) {
5739         (self.get_physical_device_external_buffer_properties_khr)(
5740             physical_device,
5741             p_external_buffer_info,
5742             p_external_buffer_properties,
5743         )
5744     }
5745 }
5746 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
5747 impl ExternalMemoryFeatureFlags {
5748     pub const DEDICATED_ONLY_KHR: Self = Self::DEDICATED_ONLY;
5749     pub const EXPORTABLE_KHR: Self = Self::EXPORTABLE;
5750     pub const IMPORTABLE_KHR: Self = Self::IMPORTABLE;
5751 }
5752 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
5753 impl ExternalMemoryHandleTypeFlags {
5754     pub const OPAQUE_FD_KHR: Self = Self::OPAQUE_FD;
5755     pub const OPAQUE_WIN32_KHR: Self = Self::OPAQUE_WIN32;
5756     pub const OPAQUE_WIN32_KMT_KHR: Self = Self::OPAQUE_WIN32_KMT;
5757     pub const D3D11_TEXTURE_KHR: Self = Self::D3D11_TEXTURE;
5758     pub const D3D11_TEXTURE_KMT_KHR: Self = Self::D3D11_TEXTURE_KMT;
5759     pub const D3D12_HEAP_KHR: Self = Self::D3D12_HEAP;
5760     pub const D3D12_RESOURCE_KHR: Self = Self::D3D12_RESOURCE;
5761 }
5762 #[doc = "Generated from 'VK_KHR_external_memory_capabilities'"]
5763 impl StructureType {
5764     pub const PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR: Self =
5765         Self::PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO;
5766     pub const EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR: Self = Self::EXTERNAL_IMAGE_FORMAT_PROPERTIES;
5767     pub const PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR: Self =
5768         Self::PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO;
5769     pub const EXTERNAL_BUFFER_PROPERTIES_KHR: Self = Self::EXTERNAL_BUFFER_PROPERTIES;
5770     pub const PHYSICAL_DEVICE_ID_PROPERTIES_KHR: Self = Self::PHYSICAL_DEVICE_ID_PROPERTIES;
5771 }
5772 impl KhrExternalMemoryFn {
name() -> &'static ::std::ffi::CStr5773     pub fn name() -> &'static ::std::ffi::CStr {
5774         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_memory\0") }
5775     }
5776     pub const SPEC_VERSION: u32 = 1u32;
5777 }
5778 #[derive(Clone)]
5779 pub struct KhrExternalMemoryFn {}
5780 unsafe impl Send for KhrExternalMemoryFn {}
5781 unsafe impl Sync for KhrExternalMemoryFn {}
5782 impl KhrExternalMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5783     pub fn load<F>(mut _f: F) -> Self
5784     where
5785         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5786     {
5787         Self {}
5788     }
5789 }
5790 #[doc = "Generated from 'VK_KHR_external_memory'"]
5791 impl Result {
5792     pub const ERROR_INVALID_EXTERNAL_HANDLE_KHR: Self = Self::ERROR_INVALID_EXTERNAL_HANDLE;
5793 }
5794 #[doc = "Generated from 'VK_KHR_external_memory'"]
5795 impl StructureType {
5796     pub const EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR: Self =
5797         Self::EXTERNAL_MEMORY_BUFFER_CREATE_INFO;
5798     pub const EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR: Self = Self::EXTERNAL_MEMORY_IMAGE_CREATE_INFO;
5799     pub const EXPORT_MEMORY_ALLOCATE_INFO_KHR: Self = Self::EXPORT_MEMORY_ALLOCATE_INFO;
5800 }
5801 impl KhrExternalMemoryWin32Fn {
name() -> &'static ::std::ffi::CStr5802     pub fn name() -> &'static ::std::ffi::CStr {
5803         unsafe {
5804             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_memory_win32\0")
5805         }
5806     }
5807     pub const SPEC_VERSION: u32 = 1u32;
5808 }
5809 #[allow(non_camel_case_types)]
5810 pub type PFN_vkGetMemoryWin32HandleKHR = unsafe extern "system" fn(
5811     device: Device,
5812     p_get_win32_handle_info: *const MemoryGetWin32HandleInfoKHR,
5813     p_handle: *mut HANDLE,
5814 ) -> Result;
5815 #[allow(non_camel_case_types)]
5816 pub type PFN_vkGetMemoryWin32HandlePropertiesKHR = unsafe extern "system" fn(
5817     device: Device,
5818     handle_type: ExternalMemoryHandleTypeFlags,
5819     handle: HANDLE,
5820     p_memory_win32_handle_properties: *mut MemoryWin32HandlePropertiesKHR,
5821 ) -> Result;
5822 #[derive(Clone)]
5823 pub struct KhrExternalMemoryWin32Fn {
5824     pub get_memory_win32_handle_khr: PFN_vkGetMemoryWin32HandleKHR,
5825     pub get_memory_win32_handle_properties_khr: PFN_vkGetMemoryWin32HandlePropertiesKHR,
5826 }
5827 unsafe impl Send for KhrExternalMemoryWin32Fn {}
5828 unsafe impl Sync for KhrExternalMemoryWin32Fn {}
5829 impl KhrExternalMemoryWin32Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5830     pub fn load<F>(mut _f: F) -> Self
5831     where
5832         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5833     {
5834         Self {
5835             get_memory_win32_handle_khr: unsafe {
5836                 unsafe extern "system" fn get_memory_win32_handle_khr(
5837                     _device: Device,
5838                     _p_get_win32_handle_info: *const MemoryGetWin32HandleInfoKHR,
5839                     _p_handle: *mut HANDLE,
5840                 ) -> Result {
5841                     panic!(concat!(
5842                         "Unable to load ",
5843                         stringify!(get_memory_win32_handle_khr)
5844                     ))
5845                 }
5846                 let cname =
5847                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryWin32HandleKHR\0");
5848                 let val = _f(cname);
5849                 if val.is_null() {
5850                     get_memory_win32_handle_khr
5851                 } else {
5852                     ::std::mem::transmute(val)
5853                 }
5854             },
5855             get_memory_win32_handle_properties_khr: unsafe {
5856                 unsafe extern "system" fn get_memory_win32_handle_properties_khr(
5857                     _device: Device,
5858                     _handle_type: ExternalMemoryHandleTypeFlags,
5859                     _handle: HANDLE,
5860                     _p_memory_win32_handle_properties: *mut MemoryWin32HandlePropertiesKHR,
5861                 ) -> Result {
5862                     panic!(concat!(
5863                         "Unable to load ",
5864                         stringify!(get_memory_win32_handle_properties_khr)
5865                     ))
5866                 }
5867                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5868                     b"vkGetMemoryWin32HandlePropertiesKHR\0",
5869                 );
5870                 let val = _f(cname);
5871                 if val.is_null() {
5872                     get_memory_win32_handle_properties_khr
5873                 } else {
5874                     ::std::mem::transmute(val)
5875                 }
5876             },
5877         }
5878     }
5879     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetMemoryWin32HandleKHR.html>"]
get_memory_win32_handle_khr( &self, device: Device, p_get_win32_handle_info: *const MemoryGetWin32HandleInfoKHR, p_handle: *mut HANDLE, ) -> Result5880     pub unsafe fn get_memory_win32_handle_khr(
5881         &self,
5882         device: Device,
5883         p_get_win32_handle_info: *const MemoryGetWin32HandleInfoKHR,
5884         p_handle: *mut HANDLE,
5885     ) -> Result {
5886         (self.get_memory_win32_handle_khr)(device, p_get_win32_handle_info, p_handle)
5887     }
5888     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetMemoryWin32HandlePropertiesKHR.html>"]
get_memory_win32_handle_properties_khr( &self, device: Device, handle_type: ExternalMemoryHandleTypeFlags, handle: HANDLE, p_memory_win32_handle_properties: *mut MemoryWin32HandlePropertiesKHR, ) -> Result5889     pub unsafe fn get_memory_win32_handle_properties_khr(
5890         &self,
5891         device: Device,
5892         handle_type: ExternalMemoryHandleTypeFlags,
5893         handle: HANDLE,
5894         p_memory_win32_handle_properties: *mut MemoryWin32HandlePropertiesKHR,
5895     ) -> Result {
5896         (self.get_memory_win32_handle_properties_khr)(
5897             device,
5898             handle_type,
5899             handle,
5900             p_memory_win32_handle_properties,
5901         )
5902     }
5903 }
5904 #[doc = "Generated from 'VK_KHR_external_memory_win32'"]
5905 impl StructureType {
5906     pub const IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_073_000);
5907     pub const EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_073_001);
5908     pub const MEMORY_WIN32_HANDLE_PROPERTIES_KHR: Self = Self(1_000_073_002);
5909     pub const MEMORY_GET_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_073_003);
5910 }
5911 impl KhrExternalMemoryFdFn {
name() -> &'static ::std::ffi::CStr5912     pub fn name() -> &'static ::std::ffi::CStr {
5913         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_memory_fd\0") }
5914     }
5915     pub const SPEC_VERSION: u32 = 1u32;
5916 }
5917 #[allow(non_camel_case_types)]
5918 pub type PFN_vkGetMemoryFdKHR = unsafe extern "system" fn(
5919     device: Device,
5920     p_get_fd_info: *const MemoryGetFdInfoKHR,
5921     p_fd: *mut c_int,
5922 ) -> Result;
5923 #[allow(non_camel_case_types)]
5924 pub type PFN_vkGetMemoryFdPropertiesKHR = unsafe extern "system" fn(
5925     device: Device,
5926     handle_type: ExternalMemoryHandleTypeFlags,
5927     fd: c_int,
5928     p_memory_fd_properties: *mut MemoryFdPropertiesKHR,
5929 ) -> Result;
5930 #[derive(Clone)]
5931 pub struct KhrExternalMemoryFdFn {
5932     pub get_memory_fd_khr: PFN_vkGetMemoryFdKHR,
5933     pub get_memory_fd_properties_khr: PFN_vkGetMemoryFdPropertiesKHR,
5934 }
5935 unsafe impl Send for KhrExternalMemoryFdFn {}
5936 unsafe impl Sync for KhrExternalMemoryFdFn {}
5937 impl KhrExternalMemoryFdFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,5938     pub fn load<F>(mut _f: F) -> Self
5939     where
5940         F: FnMut(&::std::ffi::CStr) -> *const c_void,
5941     {
5942         Self {
5943             get_memory_fd_khr: unsafe {
5944                 unsafe extern "system" fn get_memory_fd_khr(
5945                     _device: Device,
5946                     _p_get_fd_info: *const MemoryGetFdInfoKHR,
5947                     _p_fd: *mut c_int,
5948                 ) -> Result {
5949                     panic!(concat!("Unable to load ", stringify!(get_memory_fd_khr)))
5950                 }
5951                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetMemoryFdKHR\0");
5952                 let val = _f(cname);
5953                 if val.is_null() {
5954                     get_memory_fd_khr
5955                 } else {
5956                     ::std::mem::transmute(val)
5957                 }
5958             },
5959             get_memory_fd_properties_khr: unsafe {
5960                 unsafe extern "system" fn get_memory_fd_properties_khr(
5961                     _device: Device,
5962                     _handle_type: ExternalMemoryHandleTypeFlags,
5963                     _fd: c_int,
5964                     _p_memory_fd_properties: *mut MemoryFdPropertiesKHR,
5965                 ) -> Result {
5966                     panic!(concat!(
5967                         "Unable to load ",
5968                         stringify!(get_memory_fd_properties_khr)
5969                     ))
5970                 }
5971                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
5972                     b"vkGetMemoryFdPropertiesKHR\0",
5973                 );
5974                 let val = _f(cname);
5975                 if val.is_null() {
5976                     get_memory_fd_properties_khr
5977                 } else {
5978                     ::std::mem::transmute(val)
5979                 }
5980             },
5981         }
5982     }
5983     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetMemoryFdKHR.html>"]
get_memory_fd_khr( &self, device: Device, p_get_fd_info: *const MemoryGetFdInfoKHR, p_fd: *mut c_int, ) -> Result5984     pub unsafe fn get_memory_fd_khr(
5985         &self,
5986         device: Device,
5987         p_get_fd_info: *const MemoryGetFdInfoKHR,
5988         p_fd: *mut c_int,
5989     ) -> Result {
5990         (self.get_memory_fd_khr)(device, p_get_fd_info, p_fd)
5991     }
5992     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetMemoryFdPropertiesKHR.html>"]
get_memory_fd_properties_khr( &self, device: Device, handle_type: ExternalMemoryHandleTypeFlags, fd: c_int, p_memory_fd_properties: *mut MemoryFdPropertiesKHR, ) -> Result5993     pub unsafe fn get_memory_fd_properties_khr(
5994         &self,
5995         device: Device,
5996         handle_type: ExternalMemoryHandleTypeFlags,
5997         fd: c_int,
5998         p_memory_fd_properties: *mut MemoryFdPropertiesKHR,
5999     ) -> Result {
6000         (self.get_memory_fd_properties_khr)(device, handle_type, fd, p_memory_fd_properties)
6001     }
6002 }
6003 #[doc = "Generated from 'VK_KHR_external_memory_fd'"]
6004 impl StructureType {
6005     pub const IMPORT_MEMORY_FD_INFO_KHR: Self = Self(1_000_074_000);
6006     pub const MEMORY_FD_PROPERTIES_KHR: Self = Self(1_000_074_001);
6007     pub const MEMORY_GET_FD_INFO_KHR: Self = Self(1_000_074_002);
6008 }
6009 impl KhrWin32KeyedMutexFn {
name() -> &'static ::std::ffi::CStr6010     pub fn name() -> &'static ::std::ffi::CStr {
6011         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_win32_keyed_mutex\0") }
6012     }
6013     pub const SPEC_VERSION: u32 = 1u32;
6014 }
6015 #[derive(Clone)]
6016 pub struct KhrWin32KeyedMutexFn {}
6017 unsafe impl Send for KhrWin32KeyedMutexFn {}
6018 unsafe impl Sync for KhrWin32KeyedMutexFn {}
6019 impl KhrWin32KeyedMutexFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6020     pub fn load<F>(mut _f: F) -> Self
6021     where
6022         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6023     {
6024         Self {}
6025     }
6026 }
6027 #[doc = "Generated from 'VK_KHR_win32_keyed_mutex'"]
6028 impl StructureType {
6029     pub const WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: Self = Self(1_000_075_000);
6030 }
6031 impl KhrExternalSemaphoreCapabilitiesFn {
name() -> &'static ::std::ffi::CStr6032     pub fn name() -> &'static ::std::ffi::CStr {
6033         unsafe {
6034             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6035                 b"VK_KHR_external_semaphore_capabilities\0",
6036             )
6037         }
6038     }
6039     pub const SPEC_VERSION: u32 = 1u32;
6040 }
6041 #[allow(non_camel_case_types)]
6042 pub type PFN_vkGetPhysicalDeviceExternalSemaphoreProperties = unsafe extern "system" fn(
6043     physical_device: PhysicalDevice,
6044     p_external_semaphore_info: *const PhysicalDeviceExternalSemaphoreInfo,
6045     p_external_semaphore_properties: *mut ExternalSemaphoreProperties,
6046 );
6047 #[derive(Clone)]
6048 pub struct KhrExternalSemaphoreCapabilitiesFn {
6049     pub get_physical_device_external_semaphore_properties_khr:
6050         PFN_vkGetPhysicalDeviceExternalSemaphoreProperties,
6051 }
6052 unsafe impl Send for KhrExternalSemaphoreCapabilitiesFn {}
6053 unsafe impl Sync for KhrExternalSemaphoreCapabilitiesFn {}
6054 impl KhrExternalSemaphoreCapabilitiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6055     pub fn load<F>(mut _f: F) -> Self
6056     where
6057         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6058     {
6059         Self {
6060             get_physical_device_external_semaphore_properties_khr: unsafe {
6061                 unsafe extern "system" fn get_physical_device_external_semaphore_properties_khr(
6062                     _physical_device: PhysicalDevice,
6063                     _p_external_semaphore_info: *const PhysicalDeviceExternalSemaphoreInfo,
6064                     _p_external_semaphore_properties: *mut ExternalSemaphoreProperties,
6065                 ) {
6066                     panic!(concat!(
6067                         "Unable to load ",
6068                         stringify!(get_physical_device_external_semaphore_properties_khr)
6069                     ))
6070                 }
6071                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6072                     b"vkGetPhysicalDeviceExternalSemaphorePropertiesKHR\0",
6073                 );
6074                 let val = _f(cname);
6075                 if val.is_null() {
6076                     get_physical_device_external_semaphore_properties_khr
6077                 } else {
6078                     ::std::mem::transmute(val)
6079                 }
6080             },
6081         }
6082     }
6083     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceExternalSemaphorePropertiesKHR.html>"]
get_physical_device_external_semaphore_properties_khr( &self, physical_device: PhysicalDevice, p_external_semaphore_info: *const PhysicalDeviceExternalSemaphoreInfo, p_external_semaphore_properties: *mut ExternalSemaphoreProperties, )6084     pub unsafe fn get_physical_device_external_semaphore_properties_khr(
6085         &self,
6086         physical_device: PhysicalDevice,
6087         p_external_semaphore_info: *const PhysicalDeviceExternalSemaphoreInfo,
6088         p_external_semaphore_properties: *mut ExternalSemaphoreProperties,
6089     ) {
6090         (self.get_physical_device_external_semaphore_properties_khr)(
6091             physical_device,
6092             p_external_semaphore_info,
6093             p_external_semaphore_properties,
6094         )
6095     }
6096 }
6097 #[doc = "Generated from 'VK_KHR_external_semaphore_capabilities'"]
6098 impl ExternalSemaphoreFeatureFlags {
6099     pub const EXPORTABLE_KHR: Self = Self::EXPORTABLE;
6100     pub const IMPORTABLE_KHR: Self = Self::IMPORTABLE;
6101 }
6102 #[doc = "Generated from 'VK_KHR_external_semaphore_capabilities'"]
6103 impl ExternalSemaphoreHandleTypeFlags {
6104     pub const OPAQUE_FD_KHR: Self = Self::OPAQUE_FD;
6105     pub const OPAQUE_WIN32_KHR: Self = Self::OPAQUE_WIN32;
6106     pub const OPAQUE_WIN32_KMT_KHR: Self = Self::OPAQUE_WIN32_KMT;
6107     pub const D3D12_FENCE_KHR: Self = Self::D3D12_FENCE;
6108     pub const SYNC_FD_KHR: Self = Self::SYNC_FD;
6109 }
6110 #[doc = "Generated from 'VK_KHR_external_semaphore_capabilities'"]
6111 impl StructureType {
6112     pub const PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR: Self =
6113         Self::PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO;
6114     pub const EXTERNAL_SEMAPHORE_PROPERTIES_KHR: Self = Self::EXTERNAL_SEMAPHORE_PROPERTIES;
6115 }
6116 impl KhrExternalSemaphoreFn {
name() -> &'static ::std::ffi::CStr6117     pub fn name() -> &'static ::std::ffi::CStr {
6118         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_semaphore\0") }
6119     }
6120     pub const SPEC_VERSION: u32 = 1u32;
6121 }
6122 #[derive(Clone)]
6123 pub struct KhrExternalSemaphoreFn {}
6124 unsafe impl Send for KhrExternalSemaphoreFn {}
6125 unsafe impl Sync for KhrExternalSemaphoreFn {}
6126 impl KhrExternalSemaphoreFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6127     pub fn load<F>(mut _f: F) -> Self
6128     where
6129         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6130     {
6131         Self {}
6132     }
6133 }
6134 #[doc = "Generated from 'VK_KHR_external_semaphore'"]
6135 impl SemaphoreImportFlags {
6136     pub const TEMPORARY_KHR: Self = Self::TEMPORARY;
6137 }
6138 #[doc = "Generated from 'VK_KHR_external_semaphore'"]
6139 impl StructureType {
6140     pub const EXPORT_SEMAPHORE_CREATE_INFO_KHR: Self = Self::EXPORT_SEMAPHORE_CREATE_INFO;
6141 }
6142 impl KhrExternalSemaphoreWin32Fn {
name() -> &'static ::std::ffi::CStr6143     pub fn name() -> &'static ::std::ffi::CStr {
6144         unsafe {
6145             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_semaphore_win32\0")
6146         }
6147     }
6148     pub const SPEC_VERSION: u32 = 1u32;
6149 }
6150 #[allow(non_camel_case_types)]
6151 pub type PFN_vkImportSemaphoreWin32HandleKHR = unsafe extern "system" fn(
6152     device: Device,
6153     p_import_semaphore_win32_handle_info: *const ImportSemaphoreWin32HandleInfoKHR,
6154 ) -> Result;
6155 #[allow(non_camel_case_types)]
6156 pub type PFN_vkGetSemaphoreWin32HandleKHR = unsafe extern "system" fn(
6157     device: Device,
6158     p_get_win32_handle_info: *const SemaphoreGetWin32HandleInfoKHR,
6159     p_handle: *mut HANDLE,
6160 ) -> Result;
6161 #[derive(Clone)]
6162 pub struct KhrExternalSemaphoreWin32Fn {
6163     pub import_semaphore_win32_handle_khr: PFN_vkImportSemaphoreWin32HandleKHR,
6164     pub get_semaphore_win32_handle_khr: PFN_vkGetSemaphoreWin32HandleKHR,
6165 }
6166 unsafe impl Send for KhrExternalSemaphoreWin32Fn {}
6167 unsafe impl Sync for KhrExternalSemaphoreWin32Fn {}
6168 impl KhrExternalSemaphoreWin32Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6169     pub fn load<F>(mut _f: F) -> Self
6170     where
6171         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6172     {
6173         Self {
6174             import_semaphore_win32_handle_khr: unsafe {
6175                 unsafe extern "system" fn import_semaphore_win32_handle_khr(
6176                     _device: Device,
6177                     _p_import_semaphore_win32_handle_info: *const ImportSemaphoreWin32HandleInfoKHR,
6178                 ) -> Result {
6179                     panic!(concat!(
6180                         "Unable to load ",
6181                         stringify!(import_semaphore_win32_handle_khr)
6182                     ))
6183                 }
6184                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6185                     b"vkImportSemaphoreWin32HandleKHR\0",
6186                 );
6187                 let val = _f(cname);
6188                 if val.is_null() {
6189                     import_semaphore_win32_handle_khr
6190                 } else {
6191                     ::std::mem::transmute(val)
6192                 }
6193             },
6194             get_semaphore_win32_handle_khr: unsafe {
6195                 unsafe extern "system" fn get_semaphore_win32_handle_khr(
6196                     _device: Device,
6197                     _p_get_win32_handle_info: *const SemaphoreGetWin32HandleInfoKHR,
6198                     _p_handle: *mut HANDLE,
6199                 ) -> Result {
6200                     panic!(concat!(
6201                         "Unable to load ",
6202                         stringify!(get_semaphore_win32_handle_khr)
6203                     ))
6204                 }
6205                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6206                     b"vkGetSemaphoreWin32HandleKHR\0",
6207                 );
6208                 let val = _f(cname);
6209                 if val.is_null() {
6210                     get_semaphore_win32_handle_khr
6211                 } else {
6212                     ::std::mem::transmute(val)
6213                 }
6214             },
6215         }
6216     }
6217     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkImportSemaphoreWin32HandleKHR.html>"]
import_semaphore_win32_handle_khr( &self, device: Device, p_import_semaphore_win32_handle_info: *const ImportSemaphoreWin32HandleInfoKHR, ) -> Result6218     pub unsafe fn import_semaphore_win32_handle_khr(
6219         &self,
6220         device: Device,
6221         p_import_semaphore_win32_handle_info: *const ImportSemaphoreWin32HandleInfoKHR,
6222     ) -> Result {
6223         (self.import_semaphore_win32_handle_khr)(device, p_import_semaphore_win32_handle_info)
6224     }
6225     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetSemaphoreWin32HandleKHR.html>"]
get_semaphore_win32_handle_khr( &self, device: Device, p_get_win32_handle_info: *const SemaphoreGetWin32HandleInfoKHR, p_handle: *mut HANDLE, ) -> Result6226     pub unsafe fn get_semaphore_win32_handle_khr(
6227         &self,
6228         device: Device,
6229         p_get_win32_handle_info: *const SemaphoreGetWin32HandleInfoKHR,
6230         p_handle: *mut HANDLE,
6231     ) -> Result {
6232         (self.get_semaphore_win32_handle_khr)(device, p_get_win32_handle_info, p_handle)
6233     }
6234 }
6235 #[doc = "Generated from 'VK_KHR_external_semaphore_win32'"]
6236 impl StructureType {
6237     pub const IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_078_000);
6238     pub const EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_078_001);
6239     pub const D3D12_FENCE_SUBMIT_INFO_KHR: Self = Self(1_000_078_002);
6240     pub const SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_078_003);
6241 }
6242 impl KhrExternalSemaphoreFdFn {
name() -> &'static ::std::ffi::CStr6243     pub fn name() -> &'static ::std::ffi::CStr {
6244         unsafe {
6245             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_semaphore_fd\0")
6246         }
6247     }
6248     pub const SPEC_VERSION: u32 = 1u32;
6249 }
6250 #[allow(non_camel_case_types)]
6251 pub type PFN_vkImportSemaphoreFdKHR = unsafe extern "system" fn(
6252     device: Device,
6253     p_import_semaphore_fd_info: *const ImportSemaphoreFdInfoKHR,
6254 ) -> Result;
6255 #[allow(non_camel_case_types)]
6256 pub type PFN_vkGetSemaphoreFdKHR = unsafe extern "system" fn(
6257     device: Device,
6258     p_get_fd_info: *const SemaphoreGetFdInfoKHR,
6259     p_fd: *mut c_int,
6260 ) -> Result;
6261 #[derive(Clone)]
6262 pub struct KhrExternalSemaphoreFdFn {
6263     pub import_semaphore_fd_khr: PFN_vkImportSemaphoreFdKHR,
6264     pub get_semaphore_fd_khr: PFN_vkGetSemaphoreFdKHR,
6265 }
6266 unsafe impl Send for KhrExternalSemaphoreFdFn {}
6267 unsafe impl Sync for KhrExternalSemaphoreFdFn {}
6268 impl KhrExternalSemaphoreFdFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6269     pub fn load<F>(mut _f: F) -> Self
6270     where
6271         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6272     {
6273         Self {
6274             import_semaphore_fd_khr: unsafe {
6275                 unsafe extern "system" fn import_semaphore_fd_khr(
6276                     _device: Device,
6277                     _p_import_semaphore_fd_info: *const ImportSemaphoreFdInfoKHR,
6278                 ) -> Result {
6279                     panic!(concat!(
6280                         "Unable to load ",
6281                         stringify!(import_semaphore_fd_khr)
6282                     ))
6283                 }
6284                 let cname =
6285                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkImportSemaphoreFdKHR\0");
6286                 let val = _f(cname);
6287                 if val.is_null() {
6288                     import_semaphore_fd_khr
6289                 } else {
6290                     ::std::mem::transmute(val)
6291                 }
6292             },
6293             get_semaphore_fd_khr: unsafe {
6294                 unsafe extern "system" fn get_semaphore_fd_khr(
6295                     _device: Device,
6296                     _p_get_fd_info: *const SemaphoreGetFdInfoKHR,
6297                     _p_fd: *mut c_int,
6298                 ) -> Result {
6299                     panic!(concat!("Unable to load ", stringify!(get_semaphore_fd_khr)))
6300                 }
6301                 let cname =
6302                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetSemaphoreFdKHR\0");
6303                 let val = _f(cname);
6304                 if val.is_null() {
6305                     get_semaphore_fd_khr
6306                 } else {
6307                     ::std::mem::transmute(val)
6308                 }
6309             },
6310         }
6311     }
6312     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkImportSemaphoreFdKHR.html>"]
import_semaphore_fd_khr( &self, device: Device, p_import_semaphore_fd_info: *const ImportSemaphoreFdInfoKHR, ) -> Result6313     pub unsafe fn import_semaphore_fd_khr(
6314         &self,
6315         device: Device,
6316         p_import_semaphore_fd_info: *const ImportSemaphoreFdInfoKHR,
6317     ) -> Result {
6318         (self.import_semaphore_fd_khr)(device, p_import_semaphore_fd_info)
6319     }
6320     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetSemaphoreFdKHR.html>"]
get_semaphore_fd_khr( &self, device: Device, p_get_fd_info: *const SemaphoreGetFdInfoKHR, p_fd: *mut c_int, ) -> Result6321     pub unsafe fn get_semaphore_fd_khr(
6322         &self,
6323         device: Device,
6324         p_get_fd_info: *const SemaphoreGetFdInfoKHR,
6325         p_fd: *mut c_int,
6326     ) -> Result {
6327         (self.get_semaphore_fd_khr)(device, p_get_fd_info, p_fd)
6328     }
6329 }
6330 #[doc = "Generated from 'VK_KHR_external_semaphore_fd'"]
6331 impl StructureType {
6332     pub const IMPORT_SEMAPHORE_FD_INFO_KHR: Self = Self(1_000_079_000);
6333     pub const SEMAPHORE_GET_FD_INFO_KHR: Self = Self(1_000_079_001);
6334 }
6335 impl KhrPushDescriptorFn {
name() -> &'static ::std::ffi::CStr6336     pub fn name() -> &'static ::std::ffi::CStr {
6337         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_push_descriptor\0") }
6338     }
6339     pub const SPEC_VERSION: u32 = 2u32;
6340 }
6341 #[allow(non_camel_case_types)]
6342 pub type PFN_vkCmdPushDescriptorSetKHR = unsafe extern "system" fn(
6343     command_buffer: CommandBuffer,
6344     pipeline_bind_point: PipelineBindPoint,
6345     layout: PipelineLayout,
6346     set: u32,
6347     descriptor_write_count: u32,
6348     p_descriptor_writes: *const WriteDescriptorSet,
6349 );
6350 #[allow(non_camel_case_types)]
6351 pub type PFN_vkCmdPushDescriptorSetWithTemplateKHR = unsafe extern "system" fn(
6352     command_buffer: CommandBuffer,
6353     descriptor_update_template: DescriptorUpdateTemplate,
6354     layout: PipelineLayout,
6355     set: u32,
6356     p_data: *const c_void,
6357 );
6358 #[derive(Clone)]
6359 pub struct KhrPushDescriptorFn {
6360     pub cmd_push_descriptor_set_khr: PFN_vkCmdPushDescriptorSetKHR,
6361     pub cmd_push_descriptor_set_with_template_khr: PFN_vkCmdPushDescriptorSetWithTemplateKHR,
6362 }
6363 unsafe impl Send for KhrPushDescriptorFn {}
6364 unsafe impl Sync for KhrPushDescriptorFn {}
6365 impl KhrPushDescriptorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6366     pub fn load<F>(mut _f: F) -> Self
6367     where
6368         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6369     {
6370         Self {
6371             cmd_push_descriptor_set_khr: unsafe {
6372                 unsafe extern "system" fn cmd_push_descriptor_set_khr(
6373                     _command_buffer: CommandBuffer,
6374                     _pipeline_bind_point: PipelineBindPoint,
6375                     _layout: PipelineLayout,
6376                     _set: u32,
6377                     _descriptor_write_count: u32,
6378                     _p_descriptor_writes: *const WriteDescriptorSet,
6379                 ) {
6380                     panic!(concat!(
6381                         "Unable to load ",
6382                         stringify!(cmd_push_descriptor_set_khr)
6383                     ))
6384                 }
6385                 let cname =
6386                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdPushDescriptorSetKHR\0");
6387                 let val = _f(cname);
6388                 if val.is_null() {
6389                     cmd_push_descriptor_set_khr
6390                 } else {
6391                     ::std::mem::transmute(val)
6392                 }
6393             },
6394             cmd_push_descriptor_set_with_template_khr: unsafe {
6395                 unsafe extern "system" fn cmd_push_descriptor_set_with_template_khr(
6396                     _command_buffer: CommandBuffer,
6397                     _descriptor_update_template: DescriptorUpdateTemplate,
6398                     _layout: PipelineLayout,
6399                     _set: u32,
6400                     _p_data: *const c_void,
6401                 ) {
6402                     panic!(concat!(
6403                         "Unable to load ",
6404                         stringify!(cmd_push_descriptor_set_with_template_khr)
6405                     ))
6406                 }
6407                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6408                     b"vkCmdPushDescriptorSetWithTemplateKHR\0",
6409                 );
6410                 let val = _f(cname);
6411                 if val.is_null() {
6412                     cmd_push_descriptor_set_with_template_khr
6413                 } else {
6414                     ::std::mem::transmute(val)
6415                 }
6416             },
6417         }
6418     }
6419     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdPushDescriptorSetKHR.html>"]
cmd_push_descriptor_set_khr( &self, command_buffer: CommandBuffer, pipeline_bind_point: PipelineBindPoint, layout: PipelineLayout, set: u32, descriptor_write_count: u32, p_descriptor_writes: *const WriteDescriptorSet, )6420     pub unsafe fn cmd_push_descriptor_set_khr(
6421         &self,
6422         command_buffer: CommandBuffer,
6423         pipeline_bind_point: PipelineBindPoint,
6424         layout: PipelineLayout,
6425         set: u32,
6426         descriptor_write_count: u32,
6427         p_descriptor_writes: *const WriteDescriptorSet,
6428     ) {
6429         (self.cmd_push_descriptor_set_khr)(
6430             command_buffer,
6431             pipeline_bind_point,
6432             layout,
6433             set,
6434             descriptor_write_count,
6435             p_descriptor_writes,
6436         )
6437     }
6438     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdPushDescriptorSetWithTemplateKHR.html>"]
cmd_push_descriptor_set_with_template_khr( &self, command_buffer: CommandBuffer, descriptor_update_template: DescriptorUpdateTemplate, layout: PipelineLayout, set: u32, p_data: *const c_void, )6439     pub unsafe fn cmd_push_descriptor_set_with_template_khr(
6440         &self,
6441         command_buffer: CommandBuffer,
6442         descriptor_update_template: DescriptorUpdateTemplate,
6443         layout: PipelineLayout,
6444         set: u32,
6445         p_data: *const c_void,
6446     ) {
6447         (self.cmd_push_descriptor_set_with_template_khr)(
6448             command_buffer,
6449             descriptor_update_template,
6450             layout,
6451             set,
6452             p_data,
6453         )
6454     }
6455 }
6456 #[doc = "Generated from 'VK_KHR_push_descriptor'"]
6457 impl DescriptorSetLayoutCreateFlags {
6458     #[doc = "Descriptors are pushed via flink:vkCmdPushDescriptorSetKHR"]
6459     pub const PUSH_DESCRIPTOR_KHR: Self = Self(0b1);
6460 }
6461 #[doc = "Generated from 'VK_KHR_push_descriptor'"]
6462 impl DescriptorUpdateTemplateType {
6463     #[doc = "Create descriptor update template for pushed descriptor updates"]
6464     pub const PUSH_DESCRIPTORS_KHR: Self = Self(1);
6465 }
6466 #[doc = "Generated from 'VK_KHR_push_descriptor'"]
6467 impl StructureType {
6468     pub const PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: Self = Self(1_000_080_000);
6469 }
6470 impl ExtConditionalRenderingFn {
name() -> &'static ::std::ffi::CStr6471     pub fn name() -> &'static ::std::ffi::CStr {
6472         unsafe {
6473             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_conditional_rendering\0")
6474         }
6475     }
6476     pub const SPEC_VERSION: u32 = 2u32;
6477 }
6478 #[allow(non_camel_case_types)]
6479 pub type PFN_vkCmdBeginConditionalRenderingEXT = unsafe extern "system" fn(
6480     command_buffer: CommandBuffer,
6481     p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT,
6482 );
6483 #[allow(non_camel_case_types)]
6484 pub type PFN_vkCmdEndConditionalRenderingEXT =
6485     unsafe extern "system" fn(command_buffer: CommandBuffer);
6486 #[derive(Clone)]
6487 pub struct ExtConditionalRenderingFn {
6488     pub cmd_begin_conditional_rendering_ext: PFN_vkCmdBeginConditionalRenderingEXT,
6489     pub cmd_end_conditional_rendering_ext: PFN_vkCmdEndConditionalRenderingEXT,
6490 }
6491 unsafe impl Send for ExtConditionalRenderingFn {}
6492 unsafe impl Sync for ExtConditionalRenderingFn {}
6493 impl ExtConditionalRenderingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6494     pub fn load<F>(mut _f: F) -> Self
6495     where
6496         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6497     {
6498         Self {
6499             cmd_begin_conditional_rendering_ext: unsafe {
6500                 unsafe extern "system" fn cmd_begin_conditional_rendering_ext(
6501                     _command_buffer: CommandBuffer,
6502                     _p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT,
6503                 ) {
6504                     panic!(concat!(
6505                         "Unable to load ",
6506                         stringify!(cmd_begin_conditional_rendering_ext)
6507                     ))
6508                 }
6509                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6510                     b"vkCmdBeginConditionalRenderingEXT\0",
6511                 );
6512                 let val = _f(cname);
6513                 if val.is_null() {
6514                     cmd_begin_conditional_rendering_ext
6515                 } else {
6516                     ::std::mem::transmute(val)
6517                 }
6518             },
6519             cmd_end_conditional_rendering_ext: unsafe {
6520                 unsafe extern "system" fn cmd_end_conditional_rendering_ext(
6521                     _command_buffer: CommandBuffer,
6522                 ) {
6523                     panic!(concat!(
6524                         "Unable to load ",
6525                         stringify!(cmd_end_conditional_rendering_ext)
6526                     ))
6527                 }
6528                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6529                     b"vkCmdEndConditionalRenderingEXT\0",
6530                 );
6531                 let val = _f(cname);
6532                 if val.is_null() {
6533                     cmd_end_conditional_rendering_ext
6534                 } else {
6535                     ::std::mem::transmute(val)
6536                 }
6537             },
6538         }
6539     }
6540     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBeginConditionalRenderingEXT.html>"]
cmd_begin_conditional_rendering_ext( &self, command_buffer: CommandBuffer, p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT, )6541     pub unsafe fn cmd_begin_conditional_rendering_ext(
6542         &self,
6543         command_buffer: CommandBuffer,
6544         p_conditional_rendering_begin: *const ConditionalRenderingBeginInfoEXT,
6545     ) {
6546         (self.cmd_begin_conditional_rendering_ext)(command_buffer, p_conditional_rendering_begin)
6547     }
6548     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdEndConditionalRenderingEXT.html>"]
cmd_end_conditional_rendering_ext(&self, command_buffer: CommandBuffer)6549     pub unsafe fn cmd_end_conditional_rendering_ext(&self, command_buffer: CommandBuffer) {
6550         (self.cmd_end_conditional_rendering_ext)(command_buffer)
6551     }
6552 }
6553 #[doc = "Generated from 'VK_EXT_conditional_rendering'"]
6554 impl AccessFlags {
6555     #[doc = "read access flag for reading conditional rendering predicate"]
6556     pub const CONDITIONAL_RENDERING_READ_EXT: Self = Self(0b1_0000_0000_0000_0000_0000);
6557 }
6558 #[doc = "Generated from 'VK_EXT_conditional_rendering'"]
6559 impl BufferUsageFlags {
6560     #[doc = "Specifies the buffer can be used as predicate in conditional rendering"]
6561     pub const CONDITIONAL_RENDERING_EXT: Self = Self(0b10_0000_0000);
6562 }
6563 #[doc = "Generated from 'VK_EXT_conditional_rendering'"]
6564 impl PipelineStageFlags {
6565     #[doc = "A pipeline stage for conditional rendering predicate fetch"]
6566     pub const CONDITIONAL_RENDERING_EXT: Self = Self(0b100_0000_0000_0000_0000);
6567 }
6568 #[doc = "Generated from 'VK_EXT_conditional_rendering'"]
6569 impl StructureType {
6570     pub const COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: Self = Self(1_000_081_000);
6571     pub const PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: Self = Self(1_000_081_001);
6572     pub const CONDITIONAL_RENDERING_BEGIN_INFO_EXT: Self = Self(1_000_081_002);
6573 }
6574 impl KhrShaderFloat16Int8Fn {
name() -> &'static ::std::ffi::CStr6575     pub fn name() -> &'static ::std::ffi::CStr {
6576         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_float16_int8\0") }
6577     }
6578     pub const SPEC_VERSION: u32 = 1u32;
6579 }
6580 #[derive(Clone)]
6581 pub struct KhrShaderFloat16Int8Fn {}
6582 unsafe impl Send for KhrShaderFloat16Int8Fn {}
6583 unsafe impl Sync for KhrShaderFloat16Int8Fn {}
6584 impl KhrShaderFloat16Int8Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6585     pub fn load<F>(mut _f: F) -> Self
6586     where
6587         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6588     {
6589         Self {}
6590     }
6591 }
6592 #[doc = "Generated from 'VK_KHR_shader_float16_int8'"]
6593 impl StructureType {
6594     pub const PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR: Self =
6595         Self::PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
6596     pub const PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR: Self =
6597         Self::PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES;
6598 }
6599 impl Khr16bitStorageFn {
name() -> &'static ::std::ffi::CStr6600     pub fn name() -> &'static ::std::ffi::CStr {
6601         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_16bit_storage\0") }
6602     }
6603     pub const SPEC_VERSION: u32 = 1u32;
6604 }
6605 #[derive(Clone)]
6606 pub struct Khr16bitStorageFn {}
6607 unsafe impl Send for Khr16bitStorageFn {}
6608 unsafe impl Sync for Khr16bitStorageFn {}
6609 impl Khr16bitStorageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6610     pub fn load<F>(mut _f: F) -> Self
6611     where
6612         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6613     {
6614         Self {}
6615     }
6616 }
6617 #[doc = "Generated from 'VK_KHR_16bit_storage'"]
6618 impl StructureType {
6619     pub const PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR: Self =
6620         Self::PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES;
6621 }
6622 impl KhrIncrementalPresentFn {
name() -> &'static ::std::ffi::CStr6623     pub fn name() -> &'static ::std::ffi::CStr {
6624         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_incremental_present\0") }
6625     }
6626     pub const SPEC_VERSION: u32 = 2u32;
6627 }
6628 #[derive(Clone)]
6629 pub struct KhrIncrementalPresentFn {}
6630 unsafe impl Send for KhrIncrementalPresentFn {}
6631 unsafe impl Sync for KhrIncrementalPresentFn {}
6632 impl KhrIncrementalPresentFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6633     pub fn load<F>(mut _f: F) -> Self
6634     where
6635         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6636     {
6637         Self {}
6638     }
6639 }
6640 #[doc = "Generated from 'VK_KHR_incremental_present'"]
6641 impl StructureType {
6642     pub const PRESENT_REGIONS_KHR: Self = Self(1_000_084_000);
6643 }
6644 impl KhrDescriptorUpdateTemplateFn {
name() -> &'static ::std::ffi::CStr6645     pub fn name() -> &'static ::std::ffi::CStr {
6646         unsafe {
6647             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_descriptor_update_template\0")
6648         }
6649     }
6650     pub const SPEC_VERSION: u32 = 1u32;
6651 }
6652 #[allow(non_camel_case_types)]
6653 pub type PFN_vkCreateDescriptorUpdateTemplate = unsafe extern "system" fn(
6654     device: Device,
6655     p_create_info: *const DescriptorUpdateTemplateCreateInfo,
6656     p_allocator: *const AllocationCallbacks,
6657     p_descriptor_update_template: *mut DescriptorUpdateTemplate,
6658 ) -> Result;
6659 #[allow(non_camel_case_types)]
6660 pub type PFN_vkDestroyDescriptorUpdateTemplate = unsafe extern "system" fn(
6661     device: Device,
6662     descriptor_update_template: DescriptorUpdateTemplate,
6663     p_allocator: *const AllocationCallbacks,
6664 );
6665 #[allow(non_camel_case_types)]
6666 pub type PFN_vkUpdateDescriptorSetWithTemplate = unsafe extern "system" fn(
6667     device: Device,
6668     descriptor_set: DescriptorSet,
6669     descriptor_update_template: DescriptorUpdateTemplate,
6670     p_data: *const c_void,
6671 );
6672 #[derive(Clone)]
6673 pub struct KhrDescriptorUpdateTemplateFn {
6674     pub create_descriptor_update_template_khr: PFN_vkCreateDescriptorUpdateTemplate,
6675     pub destroy_descriptor_update_template_khr: PFN_vkDestroyDescriptorUpdateTemplate,
6676     pub update_descriptor_set_with_template_khr: PFN_vkUpdateDescriptorSetWithTemplate,
6677     pub cmd_push_descriptor_set_with_template_khr:
6678         crate::vk::PFN_vkCmdPushDescriptorSetWithTemplateKHR,
6679 }
6680 unsafe impl Send for KhrDescriptorUpdateTemplateFn {}
6681 unsafe impl Sync for KhrDescriptorUpdateTemplateFn {}
6682 impl KhrDescriptorUpdateTemplateFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6683     pub fn load<F>(mut _f: F) -> Self
6684     where
6685         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6686     {
6687         Self {
6688             create_descriptor_update_template_khr: unsafe {
6689                 unsafe extern "system" fn create_descriptor_update_template_khr(
6690                     _device: Device,
6691                     _p_create_info: *const DescriptorUpdateTemplateCreateInfo,
6692                     _p_allocator: *const AllocationCallbacks,
6693                     _p_descriptor_update_template: *mut DescriptorUpdateTemplate,
6694                 ) -> Result {
6695                     panic!(concat!(
6696                         "Unable to load ",
6697                         stringify!(create_descriptor_update_template_khr)
6698                     ))
6699                 }
6700                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6701                     b"vkCreateDescriptorUpdateTemplateKHR\0",
6702                 );
6703                 let val = _f(cname);
6704                 if val.is_null() {
6705                     create_descriptor_update_template_khr
6706                 } else {
6707                     ::std::mem::transmute(val)
6708                 }
6709             },
6710             destroy_descriptor_update_template_khr: unsafe {
6711                 unsafe extern "system" fn destroy_descriptor_update_template_khr(
6712                     _device: Device,
6713                     _descriptor_update_template: DescriptorUpdateTemplate,
6714                     _p_allocator: *const AllocationCallbacks,
6715                 ) {
6716                     panic!(concat!(
6717                         "Unable to load ",
6718                         stringify!(destroy_descriptor_update_template_khr)
6719                     ))
6720                 }
6721                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6722                     b"vkDestroyDescriptorUpdateTemplateKHR\0",
6723                 );
6724                 let val = _f(cname);
6725                 if val.is_null() {
6726                     destroy_descriptor_update_template_khr
6727                 } else {
6728                     ::std::mem::transmute(val)
6729                 }
6730             },
6731             update_descriptor_set_with_template_khr: unsafe {
6732                 unsafe extern "system" fn update_descriptor_set_with_template_khr(
6733                     _device: Device,
6734                     _descriptor_set: DescriptorSet,
6735                     _descriptor_update_template: DescriptorUpdateTemplate,
6736                     _p_data: *const c_void,
6737                 ) {
6738                     panic!(concat!(
6739                         "Unable to load ",
6740                         stringify!(update_descriptor_set_with_template_khr)
6741                     ))
6742                 }
6743                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6744                     b"vkUpdateDescriptorSetWithTemplateKHR\0",
6745                 );
6746                 let val = _f(cname);
6747                 if val.is_null() {
6748                     update_descriptor_set_with_template_khr
6749                 } else {
6750                     ::std::mem::transmute(val)
6751                 }
6752             },
6753             cmd_push_descriptor_set_with_template_khr: unsafe {
6754                 unsafe extern "system" fn cmd_push_descriptor_set_with_template_khr(
6755                     _command_buffer: CommandBuffer,
6756                     _descriptor_update_template: DescriptorUpdateTemplate,
6757                     _layout: PipelineLayout,
6758                     _set: u32,
6759                     _p_data: *const c_void,
6760                 ) {
6761                     panic!(concat!(
6762                         "Unable to load ",
6763                         stringify!(cmd_push_descriptor_set_with_template_khr)
6764                     ))
6765                 }
6766                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6767                     b"vkCmdPushDescriptorSetWithTemplateKHR\0",
6768                 );
6769                 let val = _f(cname);
6770                 if val.is_null() {
6771                     cmd_push_descriptor_set_with_template_khr
6772                 } else {
6773                     ::std::mem::transmute(val)
6774                 }
6775             },
6776         }
6777     }
6778     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateDescriptorUpdateTemplateKHR.html>"]
create_descriptor_update_template_khr( &self, device: Device, p_create_info: *const DescriptorUpdateTemplateCreateInfo, p_allocator: *const AllocationCallbacks, p_descriptor_update_template: *mut DescriptorUpdateTemplate, ) -> Result6779     pub unsafe fn create_descriptor_update_template_khr(
6780         &self,
6781         device: Device,
6782         p_create_info: *const DescriptorUpdateTemplateCreateInfo,
6783         p_allocator: *const AllocationCallbacks,
6784         p_descriptor_update_template: *mut DescriptorUpdateTemplate,
6785     ) -> Result {
6786         (self.create_descriptor_update_template_khr)(
6787             device,
6788             p_create_info,
6789             p_allocator,
6790             p_descriptor_update_template,
6791         )
6792     }
6793     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroyDescriptorUpdateTemplateKHR.html>"]
destroy_descriptor_update_template_khr( &self, device: Device, descriptor_update_template: DescriptorUpdateTemplate, p_allocator: *const AllocationCallbacks, )6794     pub unsafe fn destroy_descriptor_update_template_khr(
6795         &self,
6796         device: Device,
6797         descriptor_update_template: DescriptorUpdateTemplate,
6798         p_allocator: *const AllocationCallbacks,
6799     ) {
6800         (self.destroy_descriptor_update_template_khr)(
6801             device,
6802             descriptor_update_template,
6803             p_allocator,
6804         )
6805     }
6806     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkUpdateDescriptorSetWithTemplateKHR.html>"]
update_descriptor_set_with_template_khr( &self, device: Device, descriptor_set: DescriptorSet, descriptor_update_template: DescriptorUpdateTemplate, p_data: *const c_void, )6807     pub unsafe fn update_descriptor_set_with_template_khr(
6808         &self,
6809         device: Device,
6810         descriptor_set: DescriptorSet,
6811         descriptor_update_template: DescriptorUpdateTemplate,
6812         p_data: *const c_void,
6813     ) {
6814         (self.update_descriptor_set_with_template_khr)(
6815             device,
6816             descriptor_set,
6817             descriptor_update_template,
6818             p_data,
6819         )
6820     }
6821     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdPushDescriptorSetWithTemplateKHR.html>"]
cmd_push_descriptor_set_with_template_khr( &self, command_buffer: CommandBuffer, descriptor_update_template: DescriptorUpdateTemplate, layout: PipelineLayout, set: u32, p_data: *const c_void, )6822     pub unsafe fn cmd_push_descriptor_set_with_template_khr(
6823         &self,
6824         command_buffer: CommandBuffer,
6825         descriptor_update_template: DescriptorUpdateTemplate,
6826         layout: PipelineLayout,
6827         set: u32,
6828         p_data: *const c_void,
6829     ) {
6830         (self.cmd_push_descriptor_set_with_template_khr)(
6831             command_buffer,
6832             descriptor_update_template,
6833             layout,
6834             set,
6835             p_data,
6836         )
6837     }
6838 }
6839 #[doc = "Generated from 'VK_KHR_descriptor_update_template'"]
6840 impl DebugReportObjectTypeEXT {
6841     pub const DESCRIPTOR_UPDATE_TEMPLATE_KHR: Self = Self::DESCRIPTOR_UPDATE_TEMPLATE;
6842 }
6843 #[doc = "Generated from 'VK_KHR_descriptor_update_template'"]
6844 impl DescriptorUpdateTemplateType {
6845     pub const DESCRIPTOR_SET_KHR: Self = Self::DESCRIPTOR_SET;
6846 }
6847 #[doc = "Generated from 'VK_KHR_descriptor_update_template'"]
6848 impl ObjectType {
6849     pub const DESCRIPTOR_UPDATE_TEMPLATE_KHR: Self = Self::DESCRIPTOR_UPDATE_TEMPLATE;
6850 }
6851 #[doc = "Generated from 'VK_KHR_descriptor_update_template'"]
6852 impl StructureType {
6853     pub const DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR: Self =
6854         Self::DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO;
6855 }
6856 impl NvxDeviceGeneratedCommandsFn {
name() -> &'static ::std::ffi::CStr6857     pub fn name() -> &'static ::std::ffi::CStr {
6858         unsafe {
6859             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NVX_device_generated_commands\0")
6860         }
6861     }
6862     pub const SPEC_VERSION: u32 = 3u32;
6863 }
6864 #[derive(Clone)]
6865 pub struct NvxDeviceGeneratedCommandsFn {}
6866 unsafe impl Send for NvxDeviceGeneratedCommandsFn {}
6867 unsafe impl Sync for NvxDeviceGeneratedCommandsFn {}
6868 impl NvxDeviceGeneratedCommandsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6869     pub fn load<F>(mut _f: F) -> Self
6870     where
6871         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6872     {
6873         Self {}
6874     }
6875 }
6876 impl NvClipSpaceWScalingFn {
name() -> &'static ::std::ffi::CStr6877     pub fn name() -> &'static ::std::ffi::CStr {
6878         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_clip_space_w_scaling\0") }
6879     }
6880     pub const SPEC_VERSION: u32 = 1u32;
6881 }
6882 #[allow(non_camel_case_types)]
6883 pub type PFN_vkCmdSetViewportWScalingNV = unsafe extern "system" fn(
6884     command_buffer: CommandBuffer,
6885     first_viewport: u32,
6886     viewport_count: u32,
6887     p_viewport_w_scalings: *const ViewportWScalingNV,
6888 );
6889 #[derive(Clone)]
6890 pub struct NvClipSpaceWScalingFn {
6891     pub cmd_set_viewport_w_scaling_nv: PFN_vkCmdSetViewportWScalingNV,
6892 }
6893 unsafe impl Send for NvClipSpaceWScalingFn {}
6894 unsafe impl Sync for NvClipSpaceWScalingFn {}
6895 impl NvClipSpaceWScalingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6896     pub fn load<F>(mut _f: F) -> Self
6897     where
6898         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6899     {
6900         Self {
6901             cmd_set_viewport_w_scaling_nv: unsafe {
6902                 unsafe extern "system" fn cmd_set_viewport_w_scaling_nv(
6903                     _command_buffer: CommandBuffer,
6904                     _first_viewport: u32,
6905                     _viewport_count: u32,
6906                     _p_viewport_w_scalings: *const ViewportWScalingNV,
6907                 ) {
6908                     panic!(concat!(
6909                         "Unable to load ",
6910                         stringify!(cmd_set_viewport_w_scaling_nv)
6911                     ))
6912                 }
6913                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
6914                     b"vkCmdSetViewportWScalingNV\0",
6915                 );
6916                 let val = _f(cname);
6917                 if val.is_null() {
6918                     cmd_set_viewport_w_scaling_nv
6919                 } else {
6920                     ::std::mem::transmute(val)
6921                 }
6922             },
6923         }
6924     }
6925     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetViewportWScalingNV.html>"]
cmd_set_viewport_w_scaling_nv( &self, command_buffer: CommandBuffer, first_viewport: u32, viewport_count: u32, p_viewport_w_scalings: *const ViewportWScalingNV, )6926     pub unsafe fn cmd_set_viewport_w_scaling_nv(
6927         &self,
6928         command_buffer: CommandBuffer,
6929         first_viewport: u32,
6930         viewport_count: u32,
6931         p_viewport_w_scalings: *const ViewportWScalingNV,
6932     ) {
6933         (self.cmd_set_viewport_w_scaling_nv)(
6934             command_buffer,
6935             first_viewport,
6936             viewport_count,
6937             p_viewport_w_scalings,
6938         )
6939     }
6940 }
6941 #[doc = "Generated from 'VK_NV_clip_space_w_scaling'"]
6942 impl DynamicState {
6943     pub const VIEWPORT_W_SCALING_NV: Self = Self(1_000_087_000);
6944 }
6945 #[doc = "Generated from 'VK_NV_clip_space_w_scaling'"]
6946 impl StructureType {
6947     pub const PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: Self = Self(1_000_087_000);
6948 }
6949 impl ExtDirectModeDisplayFn {
name() -> &'static ::std::ffi::CStr6950     pub fn name() -> &'static ::std::ffi::CStr {
6951         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_direct_mode_display\0") }
6952     }
6953     pub const SPEC_VERSION: u32 = 1u32;
6954 }
6955 #[allow(non_camel_case_types)]
6956 pub type PFN_vkReleaseDisplayEXT =
6957     unsafe extern "system" fn(physical_device: PhysicalDevice, display: DisplayKHR) -> Result;
6958 #[derive(Clone)]
6959 pub struct ExtDirectModeDisplayFn {
6960     pub release_display_ext: PFN_vkReleaseDisplayEXT,
6961 }
6962 unsafe impl Send for ExtDirectModeDisplayFn {}
6963 unsafe impl Sync for ExtDirectModeDisplayFn {}
6964 impl ExtDirectModeDisplayFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,6965     pub fn load<F>(mut _f: F) -> Self
6966     where
6967         F: FnMut(&::std::ffi::CStr) -> *const c_void,
6968     {
6969         Self {
6970             release_display_ext: unsafe {
6971                 unsafe extern "system" fn release_display_ext(
6972                     _physical_device: PhysicalDevice,
6973                     _display: DisplayKHR,
6974                 ) -> Result {
6975                     panic!(concat!("Unable to load ", stringify!(release_display_ext)))
6976                 }
6977                 let cname =
6978                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkReleaseDisplayEXT\0");
6979                 let val = _f(cname);
6980                 if val.is_null() {
6981                     release_display_ext
6982                 } else {
6983                     ::std::mem::transmute(val)
6984                 }
6985             },
6986         }
6987     }
6988     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkReleaseDisplayEXT.html>"]
release_display_ext( &self, physical_device: PhysicalDevice, display: DisplayKHR, ) -> Result6989     pub unsafe fn release_display_ext(
6990         &self,
6991         physical_device: PhysicalDevice,
6992         display: DisplayKHR,
6993     ) -> Result {
6994         (self.release_display_ext)(physical_device, display)
6995     }
6996 }
6997 impl ExtAcquireXlibDisplayFn {
name() -> &'static ::std::ffi::CStr6998     pub fn name() -> &'static ::std::ffi::CStr {
6999         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_acquire_xlib_display\0") }
7000     }
7001     pub const SPEC_VERSION: u32 = 1u32;
7002 }
7003 #[allow(non_camel_case_types)]
7004 pub type PFN_vkAcquireXlibDisplayEXT = unsafe extern "system" fn(
7005     physical_device: PhysicalDevice,
7006     dpy: *mut Display,
7007     display: DisplayKHR,
7008 ) -> Result;
7009 #[allow(non_camel_case_types)]
7010 pub type PFN_vkGetRandROutputDisplayEXT = unsafe extern "system" fn(
7011     physical_device: PhysicalDevice,
7012     dpy: *mut Display,
7013     rr_output: RROutput,
7014     p_display: *mut DisplayKHR,
7015 ) -> Result;
7016 #[derive(Clone)]
7017 pub struct ExtAcquireXlibDisplayFn {
7018     pub acquire_xlib_display_ext: PFN_vkAcquireXlibDisplayEXT,
7019     pub get_rand_r_output_display_ext: PFN_vkGetRandROutputDisplayEXT,
7020 }
7021 unsafe impl Send for ExtAcquireXlibDisplayFn {}
7022 unsafe impl Sync for ExtAcquireXlibDisplayFn {}
7023 impl ExtAcquireXlibDisplayFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7024     pub fn load<F>(mut _f: F) -> Self
7025     where
7026         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7027     {
7028         Self {
7029             acquire_xlib_display_ext: unsafe {
7030                 unsafe extern "system" fn acquire_xlib_display_ext(
7031                     _physical_device: PhysicalDevice,
7032                     _dpy: *mut Display,
7033                     _display: DisplayKHR,
7034                 ) -> Result {
7035                     panic!(concat!(
7036                         "Unable to load ",
7037                         stringify!(acquire_xlib_display_ext)
7038                     ))
7039                 }
7040                 let cname =
7041                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireXlibDisplayEXT\0");
7042                 let val = _f(cname);
7043                 if val.is_null() {
7044                     acquire_xlib_display_ext
7045                 } else {
7046                     ::std::mem::transmute(val)
7047                 }
7048             },
7049             get_rand_r_output_display_ext: unsafe {
7050                 unsafe extern "system" fn get_rand_r_output_display_ext(
7051                     _physical_device: PhysicalDevice,
7052                     _dpy: *mut Display,
7053                     _rr_output: RROutput,
7054                     _p_display: *mut DisplayKHR,
7055                 ) -> Result {
7056                     panic!(concat!(
7057                         "Unable to load ",
7058                         stringify!(get_rand_r_output_display_ext)
7059                     ))
7060                 }
7061                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7062                     b"vkGetRandROutputDisplayEXT\0",
7063                 );
7064                 let val = _f(cname);
7065                 if val.is_null() {
7066                     get_rand_r_output_display_ext
7067                 } else {
7068                     ::std::mem::transmute(val)
7069                 }
7070             },
7071         }
7072     }
7073     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkAcquireXlibDisplayEXT.html>"]
acquire_xlib_display_ext( &self, physical_device: PhysicalDevice, dpy: *mut Display, display: DisplayKHR, ) -> Result7074     pub unsafe fn acquire_xlib_display_ext(
7075         &self,
7076         physical_device: PhysicalDevice,
7077         dpy: *mut Display,
7078         display: DisplayKHR,
7079     ) -> Result {
7080         (self.acquire_xlib_display_ext)(physical_device, dpy, display)
7081     }
7082     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetRandROutputDisplayEXT.html>"]
get_rand_r_output_display_ext( &self, physical_device: PhysicalDevice, dpy: *mut Display, rr_output: RROutput, p_display: *mut DisplayKHR, ) -> Result7083     pub unsafe fn get_rand_r_output_display_ext(
7084         &self,
7085         physical_device: PhysicalDevice,
7086         dpy: *mut Display,
7087         rr_output: RROutput,
7088         p_display: *mut DisplayKHR,
7089     ) -> Result {
7090         (self.get_rand_r_output_display_ext)(physical_device, dpy, rr_output, p_display)
7091     }
7092 }
7093 impl ExtDisplaySurfaceCounterFn {
name() -> &'static ::std::ffi::CStr7094     pub fn name() -> &'static ::std::ffi::CStr {
7095         unsafe {
7096             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_display_surface_counter\0")
7097         }
7098     }
7099     pub const SPEC_VERSION: u32 = 1u32;
7100 }
7101 #[allow(non_camel_case_types)]
7102 pub type PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT = unsafe extern "system" fn(
7103     physical_device: PhysicalDevice,
7104     surface: SurfaceKHR,
7105     p_surface_capabilities: *mut SurfaceCapabilities2EXT,
7106 ) -> Result;
7107 #[derive(Clone)]
7108 pub struct ExtDisplaySurfaceCounterFn {
7109     pub get_physical_device_surface_capabilities2_ext:
7110         PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT,
7111 }
7112 unsafe impl Send for ExtDisplaySurfaceCounterFn {}
7113 unsafe impl Sync for ExtDisplaySurfaceCounterFn {}
7114 impl ExtDisplaySurfaceCounterFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7115     pub fn load<F>(mut _f: F) -> Self
7116     where
7117         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7118     {
7119         Self {
7120             get_physical_device_surface_capabilities2_ext: unsafe {
7121                 unsafe extern "system" fn get_physical_device_surface_capabilities2_ext(
7122                     _physical_device: PhysicalDevice,
7123                     _surface: SurfaceKHR,
7124                     _p_surface_capabilities: *mut SurfaceCapabilities2EXT,
7125                 ) -> Result {
7126                     panic!(concat!(
7127                         "Unable to load ",
7128                         stringify!(get_physical_device_surface_capabilities2_ext)
7129                     ))
7130                 }
7131                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7132                     b"vkGetPhysicalDeviceSurfaceCapabilities2EXT\0",
7133                 );
7134                 let val = _f(cname);
7135                 if val.is_null() {
7136                     get_physical_device_surface_capabilities2_ext
7137                 } else {
7138                     ::std::mem::transmute(val)
7139                 }
7140             },
7141         }
7142     }
7143     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceSurfaceCapabilities2EXT.html>"]
get_physical_device_surface_capabilities2_ext( &self, physical_device: PhysicalDevice, surface: SurfaceKHR, p_surface_capabilities: *mut SurfaceCapabilities2EXT, ) -> Result7144     pub unsafe fn get_physical_device_surface_capabilities2_ext(
7145         &self,
7146         physical_device: PhysicalDevice,
7147         surface: SurfaceKHR,
7148         p_surface_capabilities: *mut SurfaceCapabilities2EXT,
7149     ) -> Result {
7150         (self.get_physical_device_surface_capabilities2_ext)(
7151             physical_device,
7152             surface,
7153             p_surface_capabilities,
7154         )
7155     }
7156 }
7157 #[doc = "Generated from 'VK_EXT_display_surface_counter'"]
7158 impl StructureType {
7159     pub const SURFACE_CAPABILITIES_2_EXT: Self = Self(1_000_090_000);
7160 }
7161 impl ExtDisplayControlFn {
name() -> &'static ::std::ffi::CStr7162     pub fn name() -> &'static ::std::ffi::CStr {
7163         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_display_control\0") }
7164     }
7165     pub const SPEC_VERSION: u32 = 1u32;
7166 }
7167 #[allow(non_camel_case_types)]
7168 pub type PFN_vkDisplayPowerControlEXT = unsafe extern "system" fn(
7169     device: Device,
7170     display: DisplayKHR,
7171     p_display_power_info: *const DisplayPowerInfoEXT,
7172 ) -> Result;
7173 #[allow(non_camel_case_types)]
7174 pub type PFN_vkRegisterDeviceEventEXT = unsafe extern "system" fn(
7175     device: Device,
7176     p_device_event_info: *const DeviceEventInfoEXT,
7177     p_allocator: *const AllocationCallbacks,
7178     p_fence: *mut Fence,
7179 ) -> Result;
7180 #[allow(non_camel_case_types)]
7181 pub type PFN_vkRegisterDisplayEventEXT = unsafe extern "system" fn(
7182     device: Device,
7183     display: DisplayKHR,
7184     p_display_event_info: *const DisplayEventInfoEXT,
7185     p_allocator: *const AllocationCallbacks,
7186     p_fence: *mut Fence,
7187 ) -> Result;
7188 #[allow(non_camel_case_types)]
7189 pub type PFN_vkGetSwapchainCounterEXT = unsafe extern "system" fn(
7190     device: Device,
7191     swapchain: SwapchainKHR,
7192     counter: SurfaceCounterFlagsEXT,
7193     p_counter_value: *mut u64,
7194 ) -> Result;
7195 #[derive(Clone)]
7196 pub struct ExtDisplayControlFn {
7197     pub display_power_control_ext: PFN_vkDisplayPowerControlEXT,
7198     pub register_device_event_ext: PFN_vkRegisterDeviceEventEXT,
7199     pub register_display_event_ext: PFN_vkRegisterDisplayEventEXT,
7200     pub get_swapchain_counter_ext: PFN_vkGetSwapchainCounterEXT,
7201 }
7202 unsafe impl Send for ExtDisplayControlFn {}
7203 unsafe impl Sync for ExtDisplayControlFn {}
7204 impl ExtDisplayControlFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7205     pub fn load<F>(mut _f: F) -> Self
7206     where
7207         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7208     {
7209         Self {
7210             display_power_control_ext: unsafe {
7211                 unsafe extern "system" fn display_power_control_ext(
7212                     _device: Device,
7213                     _display: DisplayKHR,
7214                     _p_display_power_info: *const DisplayPowerInfoEXT,
7215                 ) -> Result {
7216                     panic!(concat!(
7217                         "Unable to load ",
7218                         stringify!(display_power_control_ext)
7219                     ))
7220                 }
7221                 let cname =
7222                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkDisplayPowerControlEXT\0");
7223                 let val = _f(cname);
7224                 if val.is_null() {
7225                     display_power_control_ext
7226                 } else {
7227                     ::std::mem::transmute(val)
7228                 }
7229             },
7230             register_device_event_ext: unsafe {
7231                 unsafe extern "system" fn register_device_event_ext(
7232                     _device: Device,
7233                     _p_device_event_info: *const DeviceEventInfoEXT,
7234                     _p_allocator: *const AllocationCallbacks,
7235                     _p_fence: *mut Fence,
7236                 ) -> Result {
7237                     panic!(concat!(
7238                         "Unable to load ",
7239                         stringify!(register_device_event_ext)
7240                     ))
7241                 }
7242                 let cname =
7243                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkRegisterDeviceEventEXT\0");
7244                 let val = _f(cname);
7245                 if val.is_null() {
7246                     register_device_event_ext
7247                 } else {
7248                     ::std::mem::transmute(val)
7249                 }
7250             },
7251             register_display_event_ext: unsafe {
7252                 unsafe extern "system" fn register_display_event_ext(
7253                     _device: Device,
7254                     _display: DisplayKHR,
7255                     _p_display_event_info: *const DisplayEventInfoEXT,
7256                     _p_allocator: *const AllocationCallbacks,
7257                     _p_fence: *mut Fence,
7258                 ) -> Result {
7259                     panic!(concat!(
7260                         "Unable to load ",
7261                         stringify!(register_display_event_ext)
7262                     ))
7263                 }
7264                 let cname =
7265                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkRegisterDisplayEventEXT\0");
7266                 let val = _f(cname);
7267                 if val.is_null() {
7268                     register_display_event_ext
7269                 } else {
7270                     ::std::mem::transmute(val)
7271                 }
7272             },
7273             get_swapchain_counter_ext: unsafe {
7274                 unsafe extern "system" fn get_swapchain_counter_ext(
7275                     _device: Device,
7276                     _swapchain: SwapchainKHR,
7277                     _counter: SurfaceCounterFlagsEXT,
7278                     _p_counter_value: *mut u64,
7279                 ) -> Result {
7280                     panic!(concat!(
7281                         "Unable to load ",
7282                         stringify!(get_swapchain_counter_ext)
7283                     ))
7284                 }
7285                 let cname =
7286                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainCounterEXT\0");
7287                 let val = _f(cname);
7288                 if val.is_null() {
7289                     get_swapchain_counter_ext
7290                 } else {
7291                     ::std::mem::transmute(val)
7292                 }
7293             },
7294         }
7295     }
7296     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDisplayPowerControlEXT.html>"]
display_power_control_ext( &self, device: Device, display: DisplayKHR, p_display_power_info: *const DisplayPowerInfoEXT, ) -> Result7297     pub unsafe fn display_power_control_ext(
7298         &self,
7299         device: Device,
7300         display: DisplayKHR,
7301         p_display_power_info: *const DisplayPowerInfoEXT,
7302     ) -> Result {
7303         (self.display_power_control_ext)(device, display, p_display_power_info)
7304     }
7305     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkRegisterDeviceEventEXT.html>"]
register_device_event_ext( &self, device: Device, p_device_event_info: *const DeviceEventInfoEXT, p_allocator: *const AllocationCallbacks, p_fence: *mut Fence, ) -> Result7306     pub unsafe fn register_device_event_ext(
7307         &self,
7308         device: Device,
7309         p_device_event_info: *const DeviceEventInfoEXT,
7310         p_allocator: *const AllocationCallbacks,
7311         p_fence: *mut Fence,
7312     ) -> Result {
7313         (self.register_device_event_ext)(device, p_device_event_info, p_allocator, p_fence)
7314     }
7315     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkRegisterDisplayEventEXT.html>"]
register_display_event_ext( &self, device: Device, display: DisplayKHR, p_display_event_info: *const DisplayEventInfoEXT, p_allocator: *const AllocationCallbacks, p_fence: *mut Fence, ) -> Result7316     pub unsafe fn register_display_event_ext(
7317         &self,
7318         device: Device,
7319         display: DisplayKHR,
7320         p_display_event_info: *const DisplayEventInfoEXT,
7321         p_allocator: *const AllocationCallbacks,
7322         p_fence: *mut Fence,
7323     ) -> Result {
7324         (self.register_display_event_ext)(
7325             device,
7326             display,
7327             p_display_event_info,
7328             p_allocator,
7329             p_fence,
7330         )
7331     }
7332     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetSwapchainCounterEXT.html>"]
get_swapchain_counter_ext( &self, device: Device, swapchain: SwapchainKHR, counter: SurfaceCounterFlagsEXT, p_counter_value: *mut u64, ) -> Result7333     pub unsafe fn get_swapchain_counter_ext(
7334         &self,
7335         device: Device,
7336         swapchain: SwapchainKHR,
7337         counter: SurfaceCounterFlagsEXT,
7338         p_counter_value: *mut u64,
7339     ) -> Result {
7340         (self.get_swapchain_counter_ext)(device, swapchain, counter, p_counter_value)
7341     }
7342 }
7343 #[doc = "Generated from 'VK_EXT_display_control'"]
7344 impl StructureType {
7345     pub const DISPLAY_POWER_INFO_EXT: Self = Self(1_000_091_000);
7346     pub const DEVICE_EVENT_INFO_EXT: Self = Self(1_000_091_001);
7347     pub const DISPLAY_EVENT_INFO_EXT: Self = Self(1_000_091_002);
7348     pub const SWAPCHAIN_COUNTER_CREATE_INFO_EXT: Self = Self(1_000_091_003);
7349 }
7350 impl GoogleDisplayTimingFn {
name() -> &'static ::std::ffi::CStr7351     pub fn name() -> &'static ::std::ffi::CStr {
7352         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_display_timing\0") }
7353     }
7354     pub const SPEC_VERSION: u32 = 1u32;
7355 }
7356 #[allow(non_camel_case_types)]
7357 pub type PFN_vkGetRefreshCycleDurationGOOGLE = unsafe extern "system" fn(
7358     device: Device,
7359     swapchain: SwapchainKHR,
7360     p_display_timing_properties: *mut RefreshCycleDurationGOOGLE,
7361 ) -> Result;
7362 #[allow(non_camel_case_types)]
7363 pub type PFN_vkGetPastPresentationTimingGOOGLE = unsafe extern "system" fn(
7364     device: Device,
7365     swapchain: SwapchainKHR,
7366     p_presentation_timing_count: *mut u32,
7367     p_presentation_timings: *mut PastPresentationTimingGOOGLE,
7368 ) -> Result;
7369 #[derive(Clone)]
7370 pub struct GoogleDisplayTimingFn {
7371     pub get_refresh_cycle_duration_google: PFN_vkGetRefreshCycleDurationGOOGLE,
7372     pub get_past_presentation_timing_google: PFN_vkGetPastPresentationTimingGOOGLE,
7373 }
7374 unsafe impl Send for GoogleDisplayTimingFn {}
7375 unsafe impl Sync for GoogleDisplayTimingFn {}
7376 impl GoogleDisplayTimingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7377     pub fn load<F>(mut _f: F) -> Self
7378     where
7379         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7380     {
7381         Self {
7382             get_refresh_cycle_duration_google: unsafe {
7383                 unsafe extern "system" fn get_refresh_cycle_duration_google(
7384                     _device: Device,
7385                     _swapchain: SwapchainKHR,
7386                     _p_display_timing_properties: *mut RefreshCycleDurationGOOGLE,
7387                 ) -> Result {
7388                     panic!(concat!(
7389                         "Unable to load ",
7390                         stringify!(get_refresh_cycle_duration_google)
7391                     ))
7392                 }
7393                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7394                     b"vkGetRefreshCycleDurationGOOGLE\0",
7395                 );
7396                 let val = _f(cname);
7397                 if val.is_null() {
7398                     get_refresh_cycle_duration_google
7399                 } else {
7400                     ::std::mem::transmute(val)
7401                 }
7402             },
7403             get_past_presentation_timing_google: unsafe {
7404                 unsafe extern "system" fn get_past_presentation_timing_google(
7405                     _device: Device,
7406                     _swapchain: SwapchainKHR,
7407                     _p_presentation_timing_count: *mut u32,
7408                     _p_presentation_timings: *mut PastPresentationTimingGOOGLE,
7409                 ) -> Result {
7410                     panic!(concat!(
7411                         "Unable to load ",
7412                         stringify!(get_past_presentation_timing_google)
7413                     ))
7414                 }
7415                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7416                     b"vkGetPastPresentationTimingGOOGLE\0",
7417                 );
7418                 let val = _f(cname);
7419                 if val.is_null() {
7420                     get_past_presentation_timing_google
7421                 } else {
7422                     ::std::mem::transmute(val)
7423                 }
7424             },
7425         }
7426     }
7427     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetRefreshCycleDurationGOOGLE.html>"]
get_refresh_cycle_duration_google( &self, device: Device, swapchain: SwapchainKHR, p_display_timing_properties: *mut RefreshCycleDurationGOOGLE, ) -> Result7428     pub unsafe fn get_refresh_cycle_duration_google(
7429         &self,
7430         device: Device,
7431         swapchain: SwapchainKHR,
7432         p_display_timing_properties: *mut RefreshCycleDurationGOOGLE,
7433     ) -> Result {
7434         (self.get_refresh_cycle_duration_google)(device, swapchain, p_display_timing_properties)
7435     }
7436     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPastPresentationTimingGOOGLE.html>"]
get_past_presentation_timing_google( &self, device: Device, swapchain: SwapchainKHR, p_presentation_timing_count: *mut u32, p_presentation_timings: *mut PastPresentationTimingGOOGLE, ) -> Result7437     pub unsafe fn get_past_presentation_timing_google(
7438         &self,
7439         device: Device,
7440         swapchain: SwapchainKHR,
7441         p_presentation_timing_count: *mut u32,
7442         p_presentation_timings: *mut PastPresentationTimingGOOGLE,
7443     ) -> Result {
7444         (self.get_past_presentation_timing_google)(
7445             device,
7446             swapchain,
7447             p_presentation_timing_count,
7448             p_presentation_timings,
7449         )
7450     }
7451 }
7452 #[doc = "Generated from 'VK_GOOGLE_display_timing'"]
7453 impl StructureType {
7454     pub const PRESENT_TIMES_INFO_GOOGLE: Self = Self(1_000_092_000);
7455 }
7456 impl NvSampleMaskOverrideCoverageFn {
name() -> &'static ::std::ffi::CStr7457     pub fn name() -> &'static ::std::ffi::CStr {
7458         unsafe {
7459             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7460                 b"VK_NV_sample_mask_override_coverage\0",
7461             )
7462         }
7463     }
7464     pub const SPEC_VERSION: u32 = 1u32;
7465 }
7466 #[derive(Clone)]
7467 pub struct NvSampleMaskOverrideCoverageFn {}
7468 unsafe impl Send for NvSampleMaskOverrideCoverageFn {}
7469 unsafe impl Sync for NvSampleMaskOverrideCoverageFn {}
7470 impl NvSampleMaskOverrideCoverageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7471     pub fn load<F>(mut _f: F) -> Self
7472     where
7473         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7474     {
7475         Self {}
7476     }
7477 }
7478 impl NvGeometryShaderPassthroughFn {
name() -> &'static ::std::ffi::CStr7479     pub fn name() -> &'static ::std::ffi::CStr {
7480         unsafe {
7481             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_geometry_shader_passthrough\0")
7482         }
7483     }
7484     pub const SPEC_VERSION: u32 = 1u32;
7485 }
7486 #[derive(Clone)]
7487 pub struct NvGeometryShaderPassthroughFn {}
7488 unsafe impl Send for NvGeometryShaderPassthroughFn {}
7489 unsafe impl Sync for NvGeometryShaderPassthroughFn {}
7490 impl NvGeometryShaderPassthroughFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7491     pub fn load<F>(mut _f: F) -> Self
7492     where
7493         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7494     {
7495         Self {}
7496     }
7497 }
7498 impl NvViewportArray2Fn {
name() -> &'static ::std::ffi::CStr7499     pub fn name() -> &'static ::std::ffi::CStr {
7500         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_viewport_array2\0") }
7501     }
7502     pub const SPEC_VERSION: u32 = 1u32;
7503 }
7504 #[derive(Clone)]
7505 pub struct NvViewportArray2Fn {}
7506 unsafe impl Send for NvViewportArray2Fn {}
7507 unsafe impl Sync for NvViewportArray2Fn {}
7508 impl NvViewportArray2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7509     pub fn load<F>(mut _f: F) -> Self
7510     where
7511         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7512     {
7513         Self {}
7514     }
7515 }
7516 impl NvxMultiviewPerViewAttributesFn {
name() -> &'static ::std::ffi::CStr7517     pub fn name() -> &'static ::std::ffi::CStr {
7518         unsafe {
7519             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7520                 b"VK_NVX_multiview_per_view_attributes\0",
7521             )
7522         }
7523     }
7524     pub const SPEC_VERSION: u32 = 1u32;
7525 }
7526 #[derive(Clone)]
7527 pub struct NvxMultiviewPerViewAttributesFn {}
7528 unsafe impl Send for NvxMultiviewPerViewAttributesFn {}
7529 unsafe impl Sync for NvxMultiviewPerViewAttributesFn {}
7530 impl NvxMultiviewPerViewAttributesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7531     pub fn load<F>(mut _f: F) -> Self
7532     where
7533         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7534     {
7535         Self {}
7536     }
7537 }
7538 #[doc = "Generated from 'VK_NVX_multiview_per_view_attributes'"]
7539 impl StructureType {
7540     pub const PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: Self =
7541         Self(1_000_097_000);
7542 }
7543 #[doc = "Generated from 'VK_NVX_multiview_per_view_attributes'"]
7544 impl SubpassDescriptionFlags {
7545     pub const PER_VIEW_ATTRIBUTES_NVX: Self = Self(0b1);
7546     pub const PER_VIEW_POSITION_X_ONLY_NVX: Self = Self(0b10);
7547 }
7548 impl NvViewportSwizzleFn {
name() -> &'static ::std::ffi::CStr7549     pub fn name() -> &'static ::std::ffi::CStr {
7550         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_viewport_swizzle\0") }
7551     }
7552     pub const SPEC_VERSION: u32 = 1u32;
7553 }
7554 #[derive(Clone)]
7555 pub struct NvViewportSwizzleFn {}
7556 unsafe impl Send for NvViewportSwizzleFn {}
7557 unsafe impl Sync for NvViewportSwizzleFn {}
7558 impl NvViewportSwizzleFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7559     pub fn load<F>(mut _f: F) -> Self
7560     where
7561         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7562     {
7563         Self {}
7564     }
7565 }
7566 #[doc = "Generated from 'VK_NV_viewport_swizzle'"]
7567 impl StructureType {
7568     pub const PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: Self = Self(1_000_098_000);
7569 }
7570 impl ExtDiscardRectanglesFn {
name() -> &'static ::std::ffi::CStr7571     pub fn name() -> &'static ::std::ffi::CStr {
7572         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_discard_rectangles\0") }
7573     }
7574     pub const SPEC_VERSION: u32 = 1u32;
7575 }
7576 #[allow(non_camel_case_types)]
7577 pub type PFN_vkCmdSetDiscardRectangleEXT = unsafe extern "system" fn(
7578     command_buffer: CommandBuffer,
7579     first_discard_rectangle: u32,
7580     discard_rectangle_count: u32,
7581     p_discard_rectangles: *const Rect2D,
7582 );
7583 #[derive(Clone)]
7584 pub struct ExtDiscardRectanglesFn {
7585     pub cmd_set_discard_rectangle_ext: PFN_vkCmdSetDiscardRectangleEXT,
7586 }
7587 unsafe impl Send for ExtDiscardRectanglesFn {}
7588 unsafe impl Sync for ExtDiscardRectanglesFn {}
7589 impl ExtDiscardRectanglesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7590     pub fn load<F>(mut _f: F) -> Self
7591     where
7592         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7593     {
7594         Self {
7595             cmd_set_discard_rectangle_ext: unsafe {
7596                 unsafe extern "system" fn cmd_set_discard_rectangle_ext(
7597                     _command_buffer: CommandBuffer,
7598                     _first_discard_rectangle: u32,
7599                     _discard_rectangle_count: u32,
7600                     _p_discard_rectangles: *const Rect2D,
7601                 ) {
7602                     panic!(concat!(
7603                         "Unable to load ",
7604                         stringify!(cmd_set_discard_rectangle_ext)
7605                     ))
7606                 }
7607                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
7608                     b"vkCmdSetDiscardRectangleEXT\0",
7609                 );
7610                 let val = _f(cname);
7611                 if val.is_null() {
7612                     cmd_set_discard_rectangle_ext
7613                 } else {
7614                     ::std::mem::transmute(val)
7615                 }
7616             },
7617         }
7618     }
7619     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetDiscardRectangleEXT.html>"]
cmd_set_discard_rectangle_ext( &self, command_buffer: CommandBuffer, first_discard_rectangle: u32, discard_rectangle_count: u32, p_discard_rectangles: *const Rect2D, )7620     pub unsafe fn cmd_set_discard_rectangle_ext(
7621         &self,
7622         command_buffer: CommandBuffer,
7623         first_discard_rectangle: u32,
7624         discard_rectangle_count: u32,
7625         p_discard_rectangles: *const Rect2D,
7626     ) {
7627         (self.cmd_set_discard_rectangle_ext)(
7628             command_buffer,
7629             first_discard_rectangle,
7630             discard_rectangle_count,
7631             p_discard_rectangles,
7632         )
7633     }
7634 }
7635 #[doc = "Generated from 'VK_EXT_discard_rectangles'"]
7636 impl DynamicState {
7637     pub const DISCARD_RECTANGLE_EXT: Self = Self(1_000_099_000);
7638 }
7639 #[doc = "Generated from 'VK_EXT_discard_rectangles'"]
7640 impl StructureType {
7641     pub const PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: Self = Self(1_000_099_000);
7642     pub const PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: Self = Self(1_000_099_001);
7643 }
7644 impl NvExtension101Fn {
name() -> &'static ::std::ffi::CStr7645     pub fn name() -> &'static ::std::ffi::CStr {
7646         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_101\0") }
7647     }
7648     pub const SPEC_VERSION: u32 = 0u32;
7649 }
7650 #[derive(Clone)]
7651 pub struct NvExtension101Fn {}
7652 unsafe impl Send for NvExtension101Fn {}
7653 unsafe impl Sync for NvExtension101Fn {}
7654 impl NvExtension101Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7655     pub fn load<F>(mut _f: F) -> Self
7656     where
7657         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7658     {
7659         Self {}
7660     }
7661 }
7662 impl ExtConservativeRasterizationFn {
name() -> &'static ::std::ffi::CStr7663     pub fn name() -> &'static ::std::ffi::CStr {
7664         unsafe {
7665             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_conservative_rasterization\0")
7666         }
7667     }
7668     pub const SPEC_VERSION: u32 = 1u32;
7669 }
7670 #[derive(Clone)]
7671 pub struct ExtConservativeRasterizationFn {}
7672 unsafe impl Send for ExtConservativeRasterizationFn {}
7673 unsafe impl Sync for ExtConservativeRasterizationFn {}
7674 impl ExtConservativeRasterizationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7675     pub fn load<F>(mut _f: F) -> Self
7676     where
7677         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7678     {
7679         Self {}
7680     }
7681 }
7682 #[doc = "Generated from 'VK_EXT_conservative_rasterization'"]
7683 impl StructureType {
7684     pub const PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: Self = Self(1_000_101_000);
7685     pub const PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: Self = Self(1_000_101_001);
7686 }
7687 impl ExtDepthClipEnableFn {
name() -> &'static ::std::ffi::CStr7688     pub fn name() -> &'static ::std::ffi::CStr {
7689         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_clip_enable\0") }
7690     }
7691     pub const SPEC_VERSION: u32 = 1u32;
7692 }
7693 #[derive(Clone)]
7694 pub struct ExtDepthClipEnableFn {}
7695 unsafe impl Send for ExtDepthClipEnableFn {}
7696 unsafe impl Sync for ExtDepthClipEnableFn {}
7697 impl ExtDepthClipEnableFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7698     pub fn load<F>(mut _f: F) -> Self
7699     where
7700         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7701     {
7702         Self {}
7703     }
7704 }
7705 #[doc = "Generated from 'VK_EXT_depth_clip_enable'"]
7706 impl StructureType {
7707     pub const PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: Self = Self(1_000_102_000);
7708     pub const PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: Self = Self(1_000_102_001);
7709 }
7710 impl NvExtension104Fn {
name() -> &'static ::std::ffi::CStr7711     pub fn name() -> &'static ::std::ffi::CStr {
7712         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_104\0") }
7713     }
7714     pub const SPEC_VERSION: u32 = 0u32;
7715 }
7716 #[derive(Clone)]
7717 pub struct NvExtension104Fn {}
7718 unsafe impl Send for NvExtension104Fn {}
7719 unsafe impl Sync for NvExtension104Fn {}
7720 impl NvExtension104Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7721     pub fn load<F>(mut _f: F) -> Self
7722     where
7723         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7724     {
7725         Self {}
7726     }
7727 }
7728 impl ExtSwapchainColorspaceFn {
name() -> &'static ::std::ffi::CStr7729     pub fn name() -> &'static ::std::ffi::CStr {
7730         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_swapchain_colorspace\0") }
7731     }
7732     pub const SPEC_VERSION: u32 = 4u32;
7733 }
7734 #[derive(Clone)]
7735 pub struct ExtSwapchainColorspaceFn {}
7736 unsafe impl Send for ExtSwapchainColorspaceFn {}
7737 unsafe impl Sync for ExtSwapchainColorspaceFn {}
7738 impl ExtSwapchainColorspaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7739     pub fn load<F>(mut _f: F) -> Self
7740     where
7741         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7742     {
7743         Self {}
7744     }
7745 }
7746 #[doc = "Generated from 'VK_EXT_swapchain_colorspace'"]
7747 impl ColorSpaceKHR {
7748     pub const DISPLAY_P3_NONLINEAR_EXT: Self = Self(1_000_104_001);
7749     pub const EXTENDED_SRGB_LINEAR_EXT: Self = Self(1_000_104_002);
7750     pub const DISPLAY_P3_LINEAR_EXT: Self = Self(1_000_104_003);
7751     pub const DCI_P3_NONLINEAR_EXT: Self = Self(1_000_104_004);
7752     pub const BT709_LINEAR_EXT: Self = Self(1_000_104_005);
7753     pub const BT709_NONLINEAR_EXT: Self = Self(1_000_104_006);
7754     pub const BT2020_LINEAR_EXT: Self = Self(1_000_104_007);
7755     pub const HDR10_ST2084_EXT: Self = Self(1_000_104_008);
7756     pub const DOLBYVISION_EXT: Self = Self(1_000_104_009);
7757     pub const HDR10_HLG_EXT: Self = Self(1_000_104_010);
7758     pub const ADOBERGB_LINEAR_EXT: Self = Self(1_000_104_011);
7759     pub const ADOBERGB_NONLINEAR_EXT: Self = Self(1_000_104_012);
7760     pub const PASS_THROUGH_EXT: Self = Self(1_000_104_013);
7761     pub const EXTENDED_SRGB_NONLINEAR_EXT: Self = Self(1_000_104_014);
7762 }
7763 impl ExtHdrMetadataFn {
name() -> &'static ::std::ffi::CStr7764     pub fn name() -> &'static ::std::ffi::CStr {
7765         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_hdr_metadata\0") }
7766     }
7767     pub const SPEC_VERSION: u32 = 2u32;
7768 }
7769 #[allow(non_camel_case_types)]
7770 pub type PFN_vkSetHdrMetadataEXT = unsafe extern "system" fn(
7771     device: Device,
7772     swapchain_count: u32,
7773     p_swapchains: *const SwapchainKHR,
7774     p_metadata: *const HdrMetadataEXT,
7775 );
7776 #[derive(Clone)]
7777 pub struct ExtHdrMetadataFn {
7778     pub set_hdr_metadata_ext: PFN_vkSetHdrMetadataEXT,
7779 }
7780 unsafe impl Send for ExtHdrMetadataFn {}
7781 unsafe impl Sync for ExtHdrMetadataFn {}
7782 impl ExtHdrMetadataFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7783     pub fn load<F>(mut _f: F) -> Self
7784     where
7785         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7786     {
7787         Self {
7788             set_hdr_metadata_ext: unsafe {
7789                 unsafe extern "system" fn set_hdr_metadata_ext(
7790                     _device: Device,
7791                     _swapchain_count: u32,
7792                     _p_swapchains: *const SwapchainKHR,
7793                     _p_metadata: *const HdrMetadataEXT,
7794                 ) {
7795                     panic!(concat!("Unable to load ", stringify!(set_hdr_metadata_ext)))
7796                 }
7797                 let cname =
7798                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkSetHdrMetadataEXT\0");
7799                 let val = _f(cname);
7800                 if val.is_null() {
7801                     set_hdr_metadata_ext
7802                 } else {
7803                     ::std::mem::transmute(val)
7804                 }
7805             },
7806         }
7807     }
7808     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkSetHdrMetadataEXT.html>"]
set_hdr_metadata_ext( &self, device: Device, swapchain_count: u32, p_swapchains: *const SwapchainKHR, p_metadata: *const HdrMetadataEXT, )7809     pub unsafe fn set_hdr_metadata_ext(
7810         &self,
7811         device: Device,
7812         swapchain_count: u32,
7813         p_swapchains: *const SwapchainKHR,
7814         p_metadata: *const HdrMetadataEXT,
7815     ) {
7816         (self.set_hdr_metadata_ext)(device, swapchain_count, p_swapchains, p_metadata)
7817     }
7818 }
7819 #[doc = "Generated from 'VK_EXT_hdr_metadata'"]
7820 impl StructureType {
7821     pub const HDR_METADATA_EXT: Self = Self(1_000_105_000);
7822 }
7823 impl ImgExtension107Fn {
name() -> &'static ::std::ffi::CStr7824     pub fn name() -> &'static ::std::ffi::CStr {
7825         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_IMG_extension_107\0") }
7826     }
7827     pub const SPEC_VERSION: u32 = 0u32;
7828 }
7829 #[derive(Clone)]
7830 pub struct ImgExtension107Fn {}
7831 unsafe impl Send for ImgExtension107Fn {}
7832 unsafe impl Sync for ImgExtension107Fn {}
7833 impl ImgExtension107Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7834     pub fn load<F>(mut _f: F) -> Self
7835     where
7836         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7837     {
7838         Self {}
7839     }
7840 }
7841 impl ImgExtension108Fn {
name() -> &'static ::std::ffi::CStr7842     pub fn name() -> &'static ::std::ffi::CStr {
7843         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_IMG_extension_108\0") }
7844     }
7845     pub const SPEC_VERSION: u32 = 0u32;
7846 }
7847 #[derive(Clone)]
7848 pub struct ImgExtension108Fn {}
7849 unsafe impl Send for ImgExtension108Fn {}
7850 unsafe impl Sync for ImgExtension108Fn {}
7851 impl ImgExtension108Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7852     pub fn load<F>(mut _f: F) -> Self
7853     where
7854         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7855     {
7856         Self {}
7857     }
7858 }
7859 impl KhrImagelessFramebufferFn {
name() -> &'static ::std::ffi::CStr7860     pub fn name() -> &'static ::std::ffi::CStr {
7861         unsafe {
7862             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_imageless_framebuffer\0")
7863         }
7864     }
7865     pub const SPEC_VERSION: u32 = 1u32;
7866 }
7867 #[derive(Clone)]
7868 pub struct KhrImagelessFramebufferFn {}
7869 unsafe impl Send for KhrImagelessFramebufferFn {}
7870 unsafe impl Sync for KhrImagelessFramebufferFn {}
7871 impl KhrImagelessFramebufferFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7872     pub fn load<F>(mut _f: F) -> Self
7873     where
7874         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7875     {
7876         Self {}
7877     }
7878 }
7879 #[doc = "Generated from 'VK_KHR_imageless_framebuffer'"]
7880 impl FramebufferCreateFlags {
7881     pub const IMAGELESS_KHR: Self = Self::IMAGELESS;
7882 }
7883 #[doc = "Generated from 'VK_KHR_imageless_framebuffer'"]
7884 impl StructureType {
7885     pub const PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR: Self =
7886         Self::PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES;
7887     pub const FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR: Self =
7888         Self::FRAMEBUFFER_ATTACHMENTS_CREATE_INFO;
7889     pub const FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR: Self = Self::FRAMEBUFFER_ATTACHMENT_IMAGE_INFO;
7890     pub const RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR: Self = Self::RENDER_PASS_ATTACHMENT_BEGIN_INFO;
7891 }
7892 impl KhrCreateRenderpass2Fn {
name() -> &'static ::std::ffi::CStr7893     pub fn name() -> &'static ::std::ffi::CStr {
7894         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_create_renderpass2\0") }
7895     }
7896     pub const SPEC_VERSION: u32 = 1u32;
7897 }
7898 #[allow(non_camel_case_types)]
7899 pub type PFN_vkCreateRenderPass2 = unsafe extern "system" fn(
7900     device: Device,
7901     p_create_info: *const RenderPassCreateInfo2,
7902     p_allocator: *const AllocationCallbacks,
7903     p_render_pass: *mut RenderPass,
7904 ) -> Result;
7905 #[allow(non_camel_case_types)]
7906 pub type PFN_vkCmdBeginRenderPass2 = unsafe extern "system" fn(
7907     command_buffer: CommandBuffer,
7908     p_render_pass_begin: *const RenderPassBeginInfo,
7909     p_subpass_begin_info: *const SubpassBeginInfo,
7910 );
7911 #[allow(non_camel_case_types)]
7912 pub type PFN_vkCmdNextSubpass2 = unsafe extern "system" fn(
7913     command_buffer: CommandBuffer,
7914     p_subpass_begin_info: *const SubpassBeginInfo,
7915     p_subpass_end_info: *const SubpassEndInfo,
7916 );
7917 #[allow(non_camel_case_types)]
7918 pub type PFN_vkCmdEndRenderPass2 = unsafe extern "system" fn(
7919     command_buffer: CommandBuffer,
7920     p_subpass_end_info: *const SubpassEndInfo,
7921 );
7922 #[derive(Clone)]
7923 pub struct KhrCreateRenderpass2Fn {
7924     pub create_render_pass2_khr: PFN_vkCreateRenderPass2,
7925     pub cmd_begin_render_pass2_khr: PFN_vkCmdBeginRenderPass2,
7926     pub cmd_next_subpass2_khr: PFN_vkCmdNextSubpass2,
7927     pub cmd_end_render_pass2_khr: PFN_vkCmdEndRenderPass2,
7928 }
7929 unsafe impl Send for KhrCreateRenderpass2Fn {}
7930 unsafe impl Sync for KhrCreateRenderpass2Fn {}
7931 impl KhrCreateRenderpass2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,7932     pub fn load<F>(mut _f: F) -> Self
7933     where
7934         F: FnMut(&::std::ffi::CStr) -> *const c_void,
7935     {
7936         Self {
7937             create_render_pass2_khr: unsafe {
7938                 unsafe extern "system" fn create_render_pass2_khr(
7939                     _device: Device,
7940                     _p_create_info: *const RenderPassCreateInfo2,
7941                     _p_allocator: *const AllocationCallbacks,
7942                     _p_render_pass: *mut RenderPass,
7943                 ) -> Result {
7944                     panic!(concat!(
7945                         "Unable to load ",
7946                         stringify!(create_render_pass2_khr)
7947                     ))
7948                 }
7949                 let cname =
7950                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateRenderPass2KHR\0");
7951                 let val = _f(cname);
7952                 if val.is_null() {
7953                     create_render_pass2_khr
7954                 } else {
7955                     ::std::mem::transmute(val)
7956                 }
7957             },
7958             cmd_begin_render_pass2_khr: unsafe {
7959                 unsafe extern "system" fn cmd_begin_render_pass2_khr(
7960                     _command_buffer: CommandBuffer,
7961                     _p_render_pass_begin: *const RenderPassBeginInfo,
7962                     _p_subpass_begin_info: *const SubpassBeginInfo,
7963                 ) {
7964                     panic!(concat!(
7965                         "Unable to load ",
7966                         stringify!(cmd_begin_render_pass2_khr)
7967                     ))
7968                 }
7969                 let cname =
7970                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBeginRenderPass2KHR\0");
7971                 let val = _f(cname);
7972                 if val.is_null() {
7973                     cmd_begin_render_pass2_khr
7974                 } else {
7975                     ::std::mem::transmute(val)
7976                 }
7977             },
7978             cmd_next_subpass2_khr: unsafe {
7979                 unsafe extern "system" fn cmd_next_subpass2_khr(
7980                     _command_buffer: CommandBuffer,
7981                     _p_subpass_begin_info: *const SubpassBeginInfo,
7982                     _p_subpass_end_info: *const SubpassEndInfo,
7983                 ) {
7984                     panic!(concat!(
7985                         "Unable to load ",
7986                         stringify!(cmd_next_subpass2_khr)
7987                     ))
7988                 }
7989                 let cname =
7990                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdNextSubpass2KHR\0");
7991                 let val = _f(cname);
7992                 if val.is_null() {
7993                     cmd_next_subpass2_khr
7994                 } else {
7995                     ::std::mem::transmute(val)
7996                 }
7997             },
7998             cmd_end_render_pass2_khr: unsafe {
7999                 unsafe extern "system" fn cmd_end_render_pass2_khr(
8000                     _command_buffer: CommandBuffer,
8001                     _p_subpass_end_info: *const SubpassEndInfo,
8002                 ) {
8003                     panic!(concat!(
8004                         "Unable to load ",
8005                         stringify!(cmd_end_render_pass2_khr)
8006                     ))
8007                 }
8008                 let cname =
8009                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdEndRenderPass2KHR\0");
8010                 let val = _f(cname);
8011                 if val.is_null() {
8012                     cmd_end_render_pass2_khr
8013                 } else {
8014                     ::std::mem::transmute(val)
8015                 }
8016             },
8017         }
8018     }
8019     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateRenderPass2KHR.html>"]
create_render_pass2_khr( &self, device: Device, p_create_info: *const RenderPassCreateInfo2, p_allocator: *const AllocationCallbacks, p_render_pass: *mut RenderPass, ) -> Result8020     pub unsafe fn create_render_pass2_khr(
8021         &self,
8022         device: Device,
8023         p_create_info: *const RenderPassCreateInfo2,
8024         p_allocator: *const AllocationCallbacks,
8025         p_render_pass: *mut RenderPass,
8026     ) -> Result {
8027         (self.create_render_pass2_khr)(device, p_create_info, p_allocator, p_render_pass)
8028     }
8029     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBeginRenderPass2KHR.html>"]
cmd_begin_render_pass2_khr( &self, command_buffer: CommandBuffer, p_render_pass_begin: *const RenderPassBeginInfo, p_subpass_begin_info: *const SubpassBeginInfo, )8030     pub unsafe fn cmd_begin_render_pass2_khr(
8031         &self,
8032         command_buffer: CommandBuffer,
8033         p_render_pass_begin: *const RenderPassBeginInfo,
8034         p_subpass_begin_info: *const SubpassBeginInfo,
8035     ) {
8036         (self.cmd_begin_render_pass2_khr)(command_buffer, p_render_pass_begin, p_subpass_begin_info)
8037     }
8038     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdNextSubpass2KHR.html>"]
cmd_next_subpass2_khr( &self, command_buffer: CommandBuffer, p_subpass_begin_info: *const SubpassBeginInfo, p_subpass_end_info: *const SubpassEndInfo, )8039     pub unsafe fn cmd_next_subpass2_khr(
8040         &self,
8041         command_buffer: CommandBuffer,
8042         p_subpass_begin_info: *const SubpassBeginInfo,
8043         p_subpass_end_info: *const SubpassEndInfo,
8044     ) {
8045         (self.cmd_next_subpass2_khr)(command_buffer, p_subpass_begin_info, p_subpass_end_info)
8046     }
8047     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdEndRenderPass2KHR.html>"]
cmd_end_render_pass2_khr( &self, command_buffer: CommandBuffer, p_subpass_end_info: *const SubpassEndInfo, )8048     pub unsafe fn cmd_end_render_pass2_khr(
8049         &self,
8050         command_buffer: CommandBuffer,
8051         p_subpass_end_info: *const SubpassEndInfo,
8052     ) {
8053         (self.cmd_end_render_pass2_khr)(command_buffer, p_subpass_end_info)
8054     }
8055 }
8056 #[doc = "Generated from 'VK_KHR_create_renderpass2'"]
8057 impl StructureType {
8058     pub const ATTACHMENT_DESCRIPTION_2_KHR: Self = Self::ATTACHMENT_DESCRIPTION_2;
8059     pub const ATTACHMENT_REFERENCE_2_KHR: Self = Self::ATTACHMENT_REFERENCE_2;
8060     pub const SUBPASS_DESCRIPTION_2_KHR: Self = Self::SUBPASS_DESCRIPTION_2;
8061     pub const SUBPASS_DEPENDENCY_2_KHR: Self = Self::SUBPASS_DEPENDENCY_2;
8062     pub const RENDER_PASS_CREATE_INFO_2_KHR: Self = Self::RENDER_PASS_CREATE_INFO_2;
8063     pub const SUBPASS_BEGIN_INFO_KHR: Self = Self::SUBPASS_BEGIN_INFO;
8064     pub const SUBPASS_END_INFO_KHR: Self = Self::SUBPASS_END_INFO;
8065 }
8066 impl ImgExtension111Fn {
name() -> &'static ::std::ffi::CStr8067     pub fn name() -> &'static ::std::ffi::CStr {
8068         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_IMG_extension_111\0") }
8069     }
8070     pub const SPEC_VERSION: u32 = 0u32;
8071 }
8072 #[derive(Clone)]
8073 pub struct ImgExtension111Fn {}
8074 unsafe impl Send for ImgExtension111Fn {}
8075 unsafe impl Sync for ImgExtension111Fn {}
8076 impl ImgExtension111Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8077     pub fn load<F>(mut _f: F) -> Self
8078     where
8079         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8080     {
8081         Self {}
8082     }
8083 }
8084 impl KhrSharedPresentableImageFn {
name() -> &'static ::std::ffi::CStr8085     pub fn name() -> &'static ::std::ffi::CStr {
8086         unsafe {
8087             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shared_presentable_image\0")
8088         }
8089     }
8090     pub const SPEC_VERSION: u32 = 1u32;
8091 }
8092 #[allow(non_camel_case_types)]
8093 pub type PFN_vkGetSwapchainStatusKHR =
8094     unsafe extern "system" fn(device: Device, swapchain: SwapchainKHR) -> Result;
8095 #[derive(Clone)]
8096 pub struct KhrSharedPresentableImageFn {
8097     pub get_swapchain_status_khr: PFN_vkGetSwapchainStatusKHR,
8098 }
8099 unsafe impl Send for KhrSharedPresentableImageFn {}
8100 unsafe impl Sync for KhrSharedPresentableImageFn {}
8101 impl KhrSharedPresentableImageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8102     pub fn load<F>(mut _f: F) -> Self
8103     where
8104         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8105     {
8106         Self {
8107             get_swapchain_status_khr: unsafe {
8108                 unsafe extern "system" fn get_swapchain_status_khr(
8109                     _device: Device,
8110                     _swapchain: SwapchainKHR,
8111                 ) -> Result {
8112                     panic!(concat!(
8113                         "Unable to load ",
8114                         stringify!(get_swapchain_status_khr)
8115                     ))
8116                 }
8117                 let cname =
8118                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetSwapchainStatusKHR\0");
8119                 let val = _f(cname);
8120                 if val.is_null() {
8121                     get_swapchain_status_khr
8122                 } else {
8123                     ::std::mem::transmute(val)
8124                 }
8125             },
8126         }
8127     }
8128     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetSwapchainStatusKHR.html>"]
get_swapchain_status_khr( &self, device: Device, swapchain: SwapchainKHR, ) -> Result8129     pub unsafe fn get_swapchain_status_khr(
8130         &self,
8131         device: Device,
8132         swapchain: SwapchainKHR,
8133     ) -> Result {
8134         (self.get_swapchain_status_khr)(device, swapchain)
8135     }
8136 }
8137 #[doc = "Generated from 'VK_KHR_shared_presentable_image'"]
8138 impl ImageLayout {
8139     pub const SHARED_PRESENT_KHR: Self = Self(1_000_111_000);
8140 }
8141 #[doc = "Generated from 'VK_KHR_shared_presentable_image'"]
8142 impl PresentModeKHR {
8143     pub const SHARED_DEMAND_REFRESH: Self = Self(1_000_111_000);
8144     pub const SHARED_CONTINUOUS_REFRESH: Self = Self(1_000_111_001);
8145 }
8146 #[doc = "Generated from 'VK_KHR_shared_presentable_image'"]
8147 impl StructureType {
8148     pub const SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: Self = Self(1_000_111_000);
8149 }
8150 impl KhrExternalFenceCapabilitiesFn {
name() -> &'static ::std::ffi::CStr8151     pub fn name() -> &'static ::std::ffi::CStr {
8152         unsafe {
8153             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_fence_capabilities\0")
8154         }
8155     }
8156     pub const SPEC_VERSION: u32 = 1u32;
8157 }
8158 #[allow(non_camel_case_types)]
8159 pub type PFN_vkGetPhysicalDeviceExternalFenceProperties = unsafe extern "system" fn(
8160     physical_device: PhysicalDevice,
8161     p_external_fence_info: *const PhysicalDeviceExternalFenceInfo,
8162     p_external_fence_properties: *mut ExternalFenceProperties,
8163 );
8164 #[derive(Clone)]
8165 pub struct KhrExternalFenceCapabilitiesFn {
8166     pub get_physical_device_external_fence_properties_khr:
8167         PFN_vkGetPhysicalDeviceExternalFenceProperties,
8168 }
8169 unsafe impl Send for KhrExternalFenceCapabilitiesFn {}
8170 unsafe impl Sync for KhrExternalFenceCapabilitiesFn {}
8171 impl KhrExternalFenceCapabilitiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8172     pub fn load<F>(mut _f: F) -> Self
8173     where
8174         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8175     {
8176         Self {
8177             get_physical_device_external_fence_properties_khr: unsafe {
8178                 unsafe extern "system" fn get_physical_device_external_fence_properties_khr(
8179                     _physical_device: PhysicalDevice,
8180                     _p_external_fence_info: *const PhysicalDeviceExternalFenceInfo,
8181                     _p_external_fence_properties: *mut ExternalFenceProperties,
8182                 ) {
8183                     panic!(concat!(
8184                         "Unable to load ",
8185                         stringify!(get_physical_device_external_fence_properties_khr)
8186                     ))
8187                 }
8188                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8189                     b"vkGetPhysicalDeviceExternalFencePropertiesKHR\0",
8190                 );
8191                 let val = _f(cname);
8192                 if val.is_null() {
8193                     get_physical_device_external_fence_properties_khr
8194                 } else {
8195                     ::std::mem::transmute(val)
8196                 }
8197             },
8198         }
8199     }
8200     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceExternalFencePropertiesKHR.html>"]
get_physical_device_external_fence_properties_khr( &self, physical_device: PhysicalDevice, p_external_fence_info: *const PhysicalDeviceExternalFenceInfo, p_external_fence_properties: *mut ExternalFenceProperties, )8201     pub unsafe fn get_physical_device_external_fence_properties_khr(
8202         &self,
8203         physical_device: PhysicalDevice,
8204         p_external_fence_info: *const PhysicalDeviceExternalFenceInfo,
8205         p_external_fence_properties: *mut ExternalFenceProperties,
8206     ) {
8207         (self.get_physical_device_external_fence_properties_khr)(
8208             physical_device,
8209             p_external_fence_info,
8210             p_external_fence_properties,
8211         )
8212     }
8213 }
8214 #[doc = "Generated from 'VK_KHR_external_fence_capabilities'"]
8215 impl ExternalFenceFeatureFlags {
8216     pub const EXPORTABLE_KHR: Self = Self::EXPORTABLE;
8217     pub const IMPORTABLE_KHR: Self = Self::IMPORTABLE;
8218 }
8219 #[doc = "Generated from 'VK_KHR_external_fence_capabilities'"]
8220 impl ExternalFenceHandleTypeFlags {
8221     pub const OPAQUE_FD_KHR: Self = Self::OPAQUE_FD;
8222     pub const OPAQUE_WIN32_KHR: Self = Self::OPAQUE_WIN32;
8223     pub const OPAQUE_WIN32_KMT_KHR: Self = Self::OPAQUE_WIN32_KMT;
8224     pub const SYNC_FD_KHR: Self = Self::SYNC_FD;
8225 }
8226 #[doc = "Generated from 'VK_KHR_external_fence_capabilities'"]
8227 impl StructureType {
8228     pub const PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR: Self =
8229         Self::PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO;
8230     pub const EXTERNAL_FENCE_PROPERTIES_KHR: Self = Self::EXTERNAL_FENCE_PROPERTIES;
8231 }
8232 impl KhrExternalFenceFn {
name() -> &'static ::std::ffi::CStr8233     pub fn name() -> &'static ::std::ffi::CStr {
8234         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_fence\0") }
8235     }
8236     pub const SPEC_VERSION: u32 = 1u32;
8237 }
8238 #[derive(Clone)]
8239 pub struct KhrExternalFenceFn {}
8240 unsafe impl Send for KhrExternalFenceFn {}
8241 unsafe impl Sync for KhrExternalFenceFn {}
8242 impl KhrExternalFenceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8243     pub fn load<F>(mut _f: F) -> Self
8244     where
8245         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8246     {
8247         Self {}
8248     }
8249 }
8250 #[doc = "Generated from 'VK_KHR_external_fence'"]
8251 impl FenceImportFlags {
8252     pub const TEMPORARY_KHR: Self = Self::TEMPORARY;
8253 }
8254 #[doc = "Generated from 'VK_KHR_external_fence'"]
8255 impl StructureType {
8256     pub const EXPORT_FENCE_CREATE_INFO_KHR: Self = Self::EXPORT_FENCE_CREATE_INFO;
8257 }
8258 impl KhrExternalFenceWin32Fn {
name() -> &'static ::std::ffi::CStr8259     pub fn name() -> &'static ::std::ffi::CStr {
8260         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_fence_win32\0") }
8261     }
8262     pub const SPEC_VERSION: u32 = 1u32;
8263 }
8264 #[allow(non_camel_case_types)]
8265 pub type PFN_vkImportFenceWin32HandleKHR = unsafe extern "system" fn(
8266     device: Device,
8267     p_import_fence_win32_handle_info: *const ImportFenceWin32HandleInfoKHR,
8268 ) -> Result;
8269 #[allow(non_camel_case_types)]
8270 pub type PFN_vkGetFenceWin32HandleKHR = unsafe extern "system" fn(
8271     device: Device,
8272     p_get_win32_handle_info: *const FenceGetWin32HandleInfoKHR,
8273     p_handle: *mut HANDLE,
8274 ) -> Result;
8275 #[derive(Clone)]
8276 pub struct KhrExternalFenceWin32Fn {
8277     pub import_fence_win32_handle_khr: PFN_vkImportFenceWin32HandleKHR,
8278     pub get_fence_win32_handle_khr: PFN_vkGetFenceWin32HandleKHR,
8279 }
8280 unsafe impl Send for KhrExternalFenceWin32Fn {}
8281 unsafe impl Sync for KhrExternalFenceWin32Fn {}
8282 impl KhrExternalFenceWin32Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8283     pub fn load<F>(mut _f: F) -> Self
8284     where
8285         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8286     {
8287         Self {
8288             import_fence_win32_handle_khr: unsafe {
8289                 unsafe extern "system" fn import_fence_win32_handle_khr(
8290                     _device: Device,
8291                     _p_import_fence_win32_handle_info: *const ImportFenceWin32HandleInfoKHR,
8292                 ) -> Result {
8293                     panic!(concat!(
8294                         "Unable to load ",
8295                         stringify!(import_fence_win32_handle_khr)
8296                     ))
8297                 }
8298                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8299                     b"vkImportFenceWin32HandleKHR\0",
8300                 );
8301                 let val = _f(cname);
8302                 if val.is_null() {
8303                     import_fence_win32_handle_khr
8304                 } else {
8305                     ::std::mem::transmute(val)
8306                 }
8307             },
8308             get_fence_win32_handle_khr: unsafe {
8309                 unsafe extern "system" fn get_fence_win32_handle_khr(
8310                     _device: Device,
8311                     _p_get_win32_handle_info: *const FenceGetWin32HandleInfoKHR,
8312                     _p_handle: *mut HANDLE,
8313                 ) -> Result {
8314                     panic!(concat!(
8315                         "Unable to load ",
8316                         stringify!(get_fence_win32_handle_khr)
8317                     ))
8318                 }
8319                 let cname =
8320                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetFenceWin32HandleKHR\0");
8321                 let val = _f(cname);
8322                 if val.is_null() {
8323                     get_fence_win32_handle_khr
8324                 } else {
8325                     ::std::mem::transmute(val)
8326                 }
8327             },
8328         }
8329     }
8330     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkImportFenceWin32HandleKHR.html>"]
import_fence_win32_handle_khr( &self, device: Device, p_import_fence_win32_handle_info: *const ImportFenceWin32HandleInfoKHR, ) -> Result8331     pub unsafe fn import_fence_win32_handle_khr(
8332         &self,
8333         device: Device,
8334         p_import_fence_win32_handle_info: *const ImportFenceWin32HandleInfoKHR,
8335     ) -> Result {
8336         (self.import_fence_win32_handle_khr)(device, p_import_fence_win32_handle_info)
8337     }
8338     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetFenceWin32HandleKHR.html>"]
get_fence_win32_handle_khr( &self, device: Device, p_get_win32_handle_info: *const FenceGetWin32HandleInfoKHR, p_handle: *mut HANDLE, ) -> Result8339     pub unsafe fn get_fence_win32_handle_khr(
8340         &self,
8341         device: Device,
8342         p_get_win32_handle_info: *const FenceGetWin32HandleInfoKHR,
8343         p_handle: *mut HANDLE,
8344     ) -> Result {
8345         (self.get_fence_win32_handle_khr)(device, p_get_win32_handle_info, p_handle)
8346     }
8347 }
8348 #[doc = "Generated from 'VK_KHR_external_fence_win32'"]
8349 impl StructureType {
8350     pub const IMPORT_FENCE_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_114_000);
8351     pub const EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_114_001);
8352     pub const FENCE_GET_WIN32_HANDLE_INFO_KHR: Self = Self(1_000_114_002);
8353 }
8354 impl KhrExternalFenceFdFn {
name() -> &'static ::std::ffi::CStr8355     pub fn name() -> &'static ::std::ffi::CStr {
8356         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_external_fence_fd\0") }
8357     }
8358     pub const SPEC_VERSION: u32 = 1u32;
8359 }
8360 #[allow(non_camel_case_types)]
8361 pub type PFN_vkImportFenceFdKHR = unsafe extern "system" fn(
8362     device: Device,
8363     p_import_fence_fd_info: *const ImportFenceFdInfoKHR,
8364 ) -> Result;
8365 #[allow(non_camel_case_types)]
8366 pub type PFN_vkGetFenceFdKHR = unsafe extern "system" fn(
8367     device: Device,
8368     p_get_fd_info: *const FenceGetFdInfoKHR,
8369     p_fd: *mut c_int,
8370 ) -> Result;
8371 #[derive(Clone)]
8372 pub struct KhrExternalFenceFdFn {
8373     pub import_fence_fd_khr: PFN_vkImportFenceFdKHR,
8374     pub get_fence_fd_khr: PFN_vkGetFenceFdKHR,
8375 }
8376 unsafe impl Send for KhrExternalFenceFdFn {}
8377 unsafe impl Sync for KhrExternalFenceFdFn {}
8378 impl KhrExternalFenceFdFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8379     pub fn load<F>(mut _f: F) -> Self
8380     where
8381         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8382     {
8383         Self {
8384             import_fence_fd_khr: unsafe {
8385                 unsafe extern "system" fn import_fence_fd_khr(
8386                     _device: Device,
8387                     _p_import_fence_fd_info: *const ImportFenceFdInfoKHR,
8388                 ) -> Result {
8389                     panic!(concat!("Unable to load ", stringify!(import_fence_fd_khr)))
8390                 }
8391                 let cname =
8392                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkImportFenceFdKHR\0");
8393                 let val = _f(cname);
8394                 if val.is_null() {
8395                     import_fence_fd_khr
8396                 } else {
8397                     ::std::mem::transmute(val)
8398                 }
8399             },
8400             get_fence_fd_khr: unsafe {
8401                 unsafe extern "system" fn get_fence_fd_khr(
8402                     _device: Device,
8403                     _p_get_fd_info: *const FenceGetFdInfoKHR,
8404                     _p_fd: *mut c_int,
8405                 ) -> Result {
8406                     panic!(concat!("Unable to load ", stringify!(get_fence_fd_khr)))
8407                 }
8408                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetFenceFdKHR\0");
8409                 let val = _f(cname);
8410                 if val.is_null() {
8411                     get_fence_fd_khr
8412                 } else {
8413                     ::std::mem::transmute(val)
8414                 }
8415             },
8416         }
8417     }
8418     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkImportFenceFdKHR.html>"]
import_fence_fd_khr( &self, device: Device, p_import_fence_fd_info: *const ImportFenceFdInfoKHR, ) -> Result8419     pub unsafe fn import_fence_fd_khr(
8420         &self,
8421         device: Device,
8422         p_import_fence_fd_info: *const ImportFenceFdInfoKHR,
8423     ) -> Result {
8424         (self.import_fence_fd_khr)(device, p_import_fence_fd_info)
8425     }
8426     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetFenceFdKHR.html>"]
get_fence_fd_khr( &self, device: Device, p_get_fd_info: *const FenceGetFdInfoKHR, p_fd: *mut c_int, ) -> Result8427     pub unsafe fn get_fence_fd_khr(
8428         &self,
8429         device: Device,
8430         p_get_fd_info: *const FenceGetFdInfoKHR,
8431         p_fd: *mut c_int,
8432     ) -> Result {
8433         (self.get_fence_fd_khr)(device, p_get_fd_info, p_fd)
8434     }
8435 }
8436 #[doc = "Generated from 'VK_KHR_external_fence_fd'"]
8437 impl StructureType {
8438     pub const IMPORT_FENCE_FD_INFO_KHR: Self = Self(1_000_115_000);
8439     pub const FENCE_GET_FD_INFO_KHR: Self = Self(1_000_115_001);
8440 }
8441 impl KhrPerformanceQueryFn {
name() -> &'static ::std::ffi::CStr8442     pub fn name() -> &'static ::std::ffi::CStr {
8443         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_performance_query\0") }
8444     }
8445     pub const SPEC_VERSION: u32 = 1u32;
8446 }
8447 #[allow(non_camel_case_types)]
8448 pub type PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR =
8449     unsafe extern "system" fn(
8450         physical_device: PhysicalDevice,
8451         queue_family_index: u32,
8452         p_counter_count: *mut u32,
8453         p_counters: *mut PerformanceCounterKHR,
8454         p_counter_descriptions: *mut PerformanceCounterDescriptionKHR,
8455     ) -> Result;
8456 #[allow(non_camel_case_types)]
8457 pub type PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR =
8458     unsafe extern "system" fn(
8459         physical_device: PhysicalDevice,
8460         p_performance_query_create_info: *const QueryPoolPerformanceCreateInfoKHR,
8461         p_num_passes: *mut u32,
8462     );
8463 #[allow(non_camel_case_types)]
8464 pub type PFN_vkAcquireProfilingLockKHR =
8465     unsafe extern "system" fn(device: Device, p_info: *const AcquireProfilingLockInfoKHR) -> Result;
8466 #[allow(non_camel_case_types)]
8467 pub type PFN_vkReleaseProfilingLockKHR = unsafe extern "system" fn(device: Device);
8468 #[derive(Clone)]
8469 pub struct KhrPerformanceQueryFn {
8470     pub enumerate_physical_device_queue_family_performance_query_counters_khr:
8471         PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
8472     pub get_physical_device_queue_family_performance_query_passes_khr:
8473         PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR,
8474     pub acquire_profiling_lock_khr: PFN_vkAcquireProfilingLockKHR,
8475     pub release_profiling_lock_khr: PFN_vkReleaseProfilingLockKHR,
8476 }
8477 unsafe impl Send for KhrPerformanceQueryFn {}
8478 unsafe impl Sync for KhrPerformanceQueryFn {}
8479 impl KhrPerformanceQueryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8480     pub fn load<F>(mut _f: F) -> Self
8481     where
8482         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8483     {
8484         Self {
8485             enumerate_physical_device_queue_family_performance_query_counters_khr: unsafe {
8486                 unsafe extern "system" fn enumerate_physical_device_queue_family_performance_query_counters_khr(
8487                     _physical_device: PhysicalDevice,
8488                     _queue_family_index: u32,
8489                     _p_counter_count: *mut u32,
8490                     _p_counters: *mut PerformanceCounterKHR,
8491                     _p_counter_descriptions: *mut PerformanceCounterDescriptionKHR,
8492                 ) -> Result {
8493                     panic!(concat!(
8494                         "Unable to load ",
8495                         stringify!(
8496                             enumerate_physical_device_queue_family_performance_query_counters_khr
8497                         )
8498                     ))
8499                 }
8500                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8501                     b"vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR\0",
8502                 );
8503                 let val = _f(cname);
8504                 if val.is_null() {
8505                     enumerate_physical_device_queue_family_performance_query_counters_khr
8506                 } else {
8507                     ::std::mem::transmute(val)
8508                 }
8509             },
8510             get_physical_device_queue_family_performance_query_passes_khr: unsafe {
8511                 unsafe extern "system" fn get_physical_device_queue_family_performance_query_passes_khr(
8512                     _physical_device: PhysicalDevice,
8513                     _p_performance_query_create_info: *const QueryPoolPerformanceCreateInfoKHR,
8514                     _p_num_passes: *mut u32,
8515                 ) {
8516                     panic!(concat!(
8517                         "Unable to load ",
8518                         stringify!(get_physical_device_queue_family_performance_query_passes_khr)
8519                     ))
8520                 }
8521                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8522                     b"vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR\0",
8523                 );
8524                 let val = _f(cname);
8525                 if val.is_null() {
8526                     get_physical_device_queue_family_performance_query_passes_khr
8527                 } else {
8528                     ::std::mem::transmute(val)
8529                 }
8530             },
8531             acquire_profiling_lock_khr: unsafe {
8532                 unsafe extern "system" fn acquire_profiling_lock_khr(
8533                     _device: Device,
8534                     _p_info: *const AcquireProfilingLockInfoKHR,
8535                 ) -> Result {
8536                     panic!(concat!(
8537                         "Unable to load ",
8538                         stringify!(acquire_profiling_lock_khr)
8539                     ))
8540                 }
8541                 let cname =
8542                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireProfilingLockKHR\0");
8543                 let val = _f(cname);
8544                 if val.is_null() {
8545                     acquire_profiling_lock_khr
8546                 } else {
8547                     ::std::mem::transmute(val)
8548                 }
8549             },
8550             release_profiling_lock_khr: unsafe {
8551                 unsafe extern "system" fn release_profiling_lock_khr(_device: Device) {
8552                     panic!(concat!(
8553                         "Unable to load ",
8554                         stringify!(release_profiling_lock_khr)
8555                     ))
8556                 }
8557                 let cname =
8558                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkReleaseProfilingLockKHR\0");
8559                 let val = _f(cname);
8560                 if val.is_null() {
8561                     release_profiling_lock_khr
8562                 } else {
8563                     ::std::mem::transmute(val)
8564                 }
8565             },
8566         }
8567     }
8568     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR.html>"]
enumerate_physical_device_queue_family_performance_query_counters_khr( &self, physical_device: PhysicalDevice, queue_family_index: u32, p_counter_count: *mut u32, p_counters: *mut PerformanceCounterKHR, p_counter_descriptions: *mut PerformanceCounterDescriptionKHR, ) -> Result8569     pub unsafe fn enumerate_physical_device_queue_family_performance_query_counters_khr(
8570         &self,
8571         physical_device: PhysicalDevice,
8572         queue_family_index: u32,
8573         p_counter_count: *mut u32,
8574         p_counters: *mut PerformanceCounterKHR,
8575         p_counter_descriptions: *mut PerformanceCounterDescriptionKHR,
8576     ) -> Result {
8577         (self.enumerate_physical_device_queue_family_performance_query_counters_khr)(
8578             physical_device,
8579             queue_family_index,
8580             p_counter_count,
8581             p_counters,
8582             p_counter_descriptions,
8583         )
8584     }
8585     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR.html>"]
get_physical_device_queue_family_performance_query_passes_khr( &self, physical_device: PhysicalDevice, p_performance_query_create_info: *const QueryPoolPerformanceCreateInfoKHR, p_num_passes: *mut u32, )8586     pub unsafe fn get_physical_device_queue_family_performance_query_passes_khr(
8587         &self,
8588         physical_device: PhysicalDevice,
8589         p_performance_query_create_info: *const QueryPoolPerformanceCreateInfoKHR,
8590         p_num_passes: *mut u32,
8591     ) {
8592         (self.get_physical_device_queue_family_performance_query_passes_khr)(
8593             physical_device,
8594             p_performance_query_create_info,
8595             p_num_passes,
8596         )
8597     }
8598     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkAcquireProfilingLockKHR.html>"]
acquire_profiling_lock_khr( &self, device: Device, p_info: *const AcquireProfilingLockInfoKHR, ) -> Result8599     pub unsafe fn acquire_profiling_lock_khr(
8600         &self,
8601         device: Device,
8602         p_info: *const AcquireProfilingLockInfoKHR,
8603     ) -> Result {
8604         (self.acquire_profiling_lock_khr)(device, p_info)
8605     }
8606     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkReleaseProfilingLockKHR.html>"]
release_profiling_lock_khr(&self, device: Device)8607     pub unsafe fn release_profiling_lock_khr(&self, device: Device) {
8608         (self.release_profiling_lock_khr)(device)
8609     }
8610 }
8611 #[doc = "Generated from 'VK_KHR_performance_query'"]
8612 impl QueryType {
8613     pub const PERFORMANCE_QUERY_KHR: Self = Self(1_000_116_000);
8614 }
8615 #[doc = "Generated from 'VK_KHR_performance_query'"]
8616 impl StructureType {
8617     pub const PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: Self = Self(1_000_116_000);
8618     pub const PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: Self = Self(1_000_116_001);
8619     pub const QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: Self = Self(1_000_116_002);
8620     pub const PERFORMANCE_QUERY_SUBMIT_INFO_KHR: Self = Self(1_000_116_003);
8621     pub const ACQUIRE_PROFILING_LOCK_INFO_KHR: Self = Self(1_000_116_004);
8622     pub const PERFORMANCE_COUNTER_KHR: Self = Self(1_000_116_005);
8623     pub const PERFORMANCE_COUNTER_DESCRIPTION_KHR: Self = Self(1_000_116_006);
8624 }
8625 impl KhrMaintenance2Fn {
name() -> &'static ::std::ffi::CStr8626     pub fn name() -> &'static ::std::ffi::CStr {
8627         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance2\0") }
8628     }
8629     pub const SPEC_VERSION: u32 = 1u32;
8630 }
8631 #[derive(Clone)]
8632 pub struct KhrMaintenance2Fn {}
8633 unsafe impl Send for KhrMaintenance2Fn {}
8634 unsafe impl Sync for KhrMaintenance2Fn {}
8635 impl KhrMaintenance2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8636     pub fn load<F>(mut _f: F) -> Self
8637     where
8638         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8639     {
8640         Self {}
8641     }
8642 }
8643 #[doc = "Generated from 'VK_KHR_maintenance2'"]
8644 impl ImageCreateFlags {
8645     pub const BLOCK_TEXEL_VIEW_COMPATIBLE_KHR: Self = Self::BLOCK_TEXEL_VIEW_COMPATIBLE;
8646     pub const EXTENDED_USAGE_KHR: Self = Self::EXTENDED_USAGE;
8647 }
8648 #[doc = "Generated from 'VK_KHR_maintenance2'"]
8649 impl ImageLayout {
8650     pub const DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR: Self =
8651         Self::DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL;
8652     pub const DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR: Self =
8653         Self::DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL;
8654 }
8655 #[doc = "Generated from 'VK_KHR_maintenance2'"]
8656 impl PointClippingBehavior {
8657     pub const ALL_CLIP_PLANES_KHR: Self = Self::ALL_CLIP_PLANES;
8658     pub const USER_CLIP_PLANES_ONLY_KHR: Self = Self::USER_CLIP_PLANES_ONLY;
8659 }
8660 #[doc = "Generated from 'VK_KHR_maintenance2'"]
8661 impl StructureType {
8662     pub const PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR: Self =
8663         Self::PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES;
8664     pub const RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR: Self =
8665         Self::RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO;
8666     pub const IMAGE_VIEW_USAGE_CREATE_INFO_KHR: Self = Self::IMAGE_VIEW_USAGE_CREATE_INFO;
8667     pub const PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR: Self =
8668         Self::PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO;
8669 }
8670 #[doc = "Generated from 'VK_KHR_maintenance2'"]
8671 impl TessellationDomainOrigin {
8672     pub const UPPER_LEFT_KHR: Self = Self::UPPER_LEFT;
8673     pub const LOWER_LEFT_KHR: Self = Self::LOWER_LEFT;
8674 }
8675 impl KhrExtension119Fn {
name() -> &'static ::std::ffi::CStr8676     pub fn name() -> &'static ::std::ffi::CStr {
8677         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_119\0") }
8678     }
8679     pub const SPEC_VERSION: u32 = 0u32;
8680 }
8681 #[derive(Clone)]
8682 pub struct KhrExtension119Fn {}
8683 unsafe impl Send for KhrExtension119Fn {}
8684 unsafe impl Sync for KhrExtension119Fn {}
8685 impl KhrExtension119Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8686     pub fn load<F>(mut _f: F) -> Self
8687     where
8688         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8689     {
8690         Self {}
8691     }
8692 }
8693 impl KhrGetSurfaceCapabilities2Fn {
name() -> &'static ::std::ffi::CStr8694     pub fn name() -> &'static ::std::ffi::CStr {
8695         unsafe {
8696             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_get_surface_capabilities2\0")
8697         }
8698     }
8699     pub const SPEC_VERSION: u32 = 1u32;
8700 }
8701 #[allow(non_camel_case_types)]
8702 pub type PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR = unsafe extern "system" fn(
8703     physical_device: PhysicalDevice,
8704     p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
8705     p_surface_capabilities: *mut SurfaceCapabilities2KHR,
8706 ) -> Result;
8707 #[allow(non_camel_case_types)]
8708 pub type PFN_vkGetPhysicalDeviceSurfaceFormats2KHR = unsafe extern "system" fn(
8709     physical_device: PhysicalDevice,
8710     p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
8711     p_surface_format_count: *mut u32,
8712     p_surface_formats: *mut SurfaceFormat2KHR,
8713 ) -> Result;
8714 #[derive(Clone)]
8715 pub struct KhrGetSurfaceCapabilities2Fn {
8716     pub get_physical_device_surface_capabilities2_khr:
8717         PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR,
8718     pub get_physical_device_surface_formats2_khr: PFN_vkGetPhysicalDeviceSurfaceFormats2KHR,
8719 }
8720 unsafe impl Send for KhrGetSurfaceCapabilities2Fn {}
8721 unsafe impl Sync for KhrGetSurfaceCapabilities2Fn {}
8722 impl KhrGetSurfaceCapabilities2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8723     pub fn load<F>(mut _f: F) -> Self
8724     where
8725         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8726     {
8727         Self {
8728             get_physical_device_surface_capabilities2_khr: unsafe {
8729                 unsafe extern "system" fn get_physical_device_surface_capabilities2_khr(
8730                     _physical_device: PhysicalDevice,
8731                     _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
8732                     _p_surface_capabilities: *mut SurfaceCapabilities2KHR,
8733                 ) -> Result {
8734                     panic!(concat!(
8735                         "Unable to load ",
8736                         stringify!(get_physical_device_surface_capabilities2_khr)
8737                     ))
8738                 }
8739                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8740                     b"vkGetPhysicalDeviceSurfaceCapabilities2KHR\0",
8741                 );
8742                 let val = _f(cname);
8743                 if val.is_null() {
8744                     get_physical_device_surface_capabilities2_khr
8745                 } else {
8746                     ::std::mem::transmute(val)
8747                 }
8748             },
8749             get_physical_device_surface_formats2_khr: unsafe {
8750                 unsafe extern "system" fn get_physical_device_surface_formats2_khr(
8751                     _physical_device: PhysicalDevice,
8752                     _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
8753                     _p_surface_format_count: *mut u32,
8754                     _p_surface_formats: *mut SurfaceFormat2KHR,
8755                 ) -> Result {
8756                     panic!(concat!(
8757                         "Unable to load ",
8758                         stringify!(get_physical_device_surface_formats2_khr)
8759                     ))
8760                 }
8761                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8762                     b"vkGetPhysicalDeviceSurfaceFormats2KHR\0",
8763                 );
8764                 let val = _f(cname);
8765                 if val.is_null() {
8766                     get_physical_device_surface_formats2_khr
8767                 } else {
8768                     ::std::mem::transmute(val)
8769                 }
8770             },
8771         }
8772     }
8773     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceSurfaceCapabilities2KHR.html>"]
get_physical_device_surface_capabilities2_khr( &self, physical_device: PhysicalDevice, p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR, p_surface_capabilities: *mut SurfaceCapabilities2KHR, ) -> Result8774     pub unsafe fn get_physical_device_surface_capabilities2_khr(
8775         &self,
8776         physical_device: PhysicalDevice,
8777         p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
8778         p_surface_capabilities: *mut SurfaceCapabilities2KHR,
8779     ) -> Result {
8780         (self.get_physical_device_surface_capabilities2_khr)(
8781             physical_device,
8782             p_surface_info,
8783             p_surface_capabilities,
8784         )
8785     }
8786     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceSurfaceFormats2KHR.html>"]
get_physical_device_surface_formats2_khr( &self, physical_device: PhysicalDevice, p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR, p_surface_format_count: *mut u32, p_surface_formats: *mut SurfaceFormat2KHR, ) -> Result8787     pub unsafe fn get_physical_device_surface_formats2_khr(
8788         &self,
8789         physical_device: PhysicalDevice,
8790         p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
8791         p_surface_format_count: *mut u32,
8792         p_surface_formats: *mut SurfaceFormat2KHR,
8793     ) -> Result {
8794         (self.get_physical_device_surface_formats2_khr)(
8795             physical_device,
8796             p_surface_info,
8797             p_surface_format_count,
8798             p_surface_formats,
8799         )
8800     }
8801 }
8802 #[doc = "Generated from 'VK_KHR_get_surface_capabilities2'"]
8803 impl StructureType {
8804     pub const PHYSICAL_DEVICE_SURFACE_INFO_2_KHR: Self = Self(1_000_119_000);
8805     pub const SURFACE_CAPABILITIES_2_KHR: Self = Self(1_000_119_001);
8806     pub const SURFACE_FORMAT_2_KHR: Self = Self(1_000_119_002);
8807 }
8808 impl KhrVariablePointersFn {
name() -> &'static ::std::ffi::CStr8809     pub fn name() -> &'static ::std::ffi::CStr {
8810         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_variable_pointers\0") }
8811     }
8812     pub const SPEC_VERSION: u32 = 1u32;
8813 }
8814 #[derive(Clone)]
8815 pub struct KhrVariablePointersFn {}
8816 unsafe impl Send for KhrVariablePointersFn {}
8817 unsafe impl Sync for KhrVariablePointersFn {}
8818 impl KhrVariablePointersFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8819     pub fn load<F>(mut _f: F) -> Self
8820     where
8821         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8822     {
8823         Self {}
8824     }
8825 }
8826 #[doc = "Generated from 'VK_KHR_variable_pointers'"]
8827 impl StructureType {
8828     pub const PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR: Self =
8829         Self::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES;
8830     pub const PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR: Self =
8831         Self::PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR;
8832 }
8833 impl KhrGetDisplayProperties2Fn {
name() -> &'static ::std::ffi::CStr8834     pub fn name() -> &'static ::std::ffi::CStr {
8835         unsafe {
8836             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_get_display_properties2\0")
8837         }
8838     }
8839     pub const SPEC_VERSION: u32 = 1u32;
8840 }
8841 #[allow(non_camel_case_types)]
8842 pub type PFN_vkGetPhysicalDeviceDisplayProperties2KHR = unsafe extern "system" fn(
8843     physical_device: PhysicalDevice,
8844     p_property_count: *mut u32,
8845     p_properties: *mut DisplayProperties2KHR,
8846 ) -> Result;
8847 #[allow(non_camel_case_types)]
8848 pub type PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR = unsafe extern "system" fn(
8849     physical_device: PhysicalDevice,
8850     p_property_count: *mut u32,
8851     p_properties: *mut DisplayPlaneProperties2KHR,
8852 ) -> Result;
8853 #[allow(non_camel_case_types)]
8854 pub type PFN_vkGetDisplayModeProperties2KHR = unsafe extern "system" fn(
8855     physical_device: PhysicalDevice,
8856     display: DisplayKHR,
8857     p_property_count: *mut u32,
8858     p_properties: *mut DisplayModeProperties2KHR,
8859 ) -> Result;
8860 #[allow(non_camel_case_types)]
8861 pub type PFN_vkGetDisplayPlaneCapabilities2KHR = unsafe extern "system" fn(
8862     physical_device: PhysicalDevice,
8863     p_display_plane_info: *const DisplayPlaneInfo2KHR,
8864     p_capabilities: *mut DisplayPlaneCapabilities2KHR,
8865 ) -> Result;
8866 #[derive(Clone)]
8867 pub struct KhrGetDisplayProperties2Fn {
8868     pub get_physical_device_display_properties2_khr: PFN_vkGetPhysicalDeviceDisplayProperties2KHR,
8869     pub get_physical_device_display_plane_properties2_khr:
8870         PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR,
8871     pub get_display_mode_properties2_khr: PFN_vkGetDisplayModeProperties2KHR,
8872     pub get_display_plane_capabilities2_khr: PFN_vkGetDisplayPlaneCapabilities2KHR,
8873 }
8874 unsafe impl Send for KhrGetDisplayProperties2Fn {}
8875 unsafe impl Sync for KhrGetDisplayProperties2Fn {}
8876 impl KhrGetDisplayProperties2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,8877     pub fn load<F>(mut _f: F) -> Self
8878     where
8879         F: FnMut(&::std::ffi::CStr) -> *const c_void,
8880     {
8881         Self {
8882             get_physical_device_display_properties2_khr: unsafe {
8883                 unsafe extern "system" fn get_physical_device_display_properties2_khr(
8884                     _physical_device: PhysicalDevice,
8885                     _p_property_count: *mut u32,
8886                     _p_properties: *mut DisplayProperties2KHR,
8887                 ) -> Result {
8888                     panic!(concat!(
8889                         "Unable to load ",
8890                         stringify!(get_physical_device_display_properties2_khr)
8891                     ))
8892                 }
8893                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8894                     b"vkGetPhysicalDeviceDisplayProperties2KHR\0",
8895                 );
8896                 let val = _f(cname);
8897                 if val.is_null() {
8898                     get_physical_device_display_properties2_khr
8899                 } else {
8900                     ::std::mem::transmute(val)
8901                 }
8902             },
8903             get_physical_device_display_plane_properties2_khr: unsafe {
8904                 unsafe extern "system" fn get_physical_device_display_plane_properties2_khr(
8905                     _physical_device: PhysicalDevice,
8906                     _p_property_count: *mut u32,
8907                     _p_properties: *mut DisplayPlaneProperties2KHR,
8908                 ) -> Result {
8909                     panic!(concat!(
8910                         "Unable to load ",
8911                         stringify!(get_physical_device_display_plane_properties2_khr)
8912                     ))
8913                 }
8914                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8915                     b"vkGetPhysicalDeviceDisplayPlaneProperties2KHR\0",
8916                 );
8917                 let val = _f(cname);
8918                 if val.is_null() {
8919                     get_physical_device_display_plane_properties2_khr
8920                 } else {
8921                     ::std::mem::transmute(val)
8922                 }
8923             },
8924             get_display_mode_properties2_khr: unsafe {
8925                 unsafe extern "system" fn get_display_mode_properties2_khr(
8926                     _physical_device: PhysicalDevice,
8927                     _display: DisplayKHR,
8928                     _p_property_count: *mut u32,
8929                     _p_properties: *mut DisplayModeProperties2KHR,
8930                 ) -> Result {
8931                     panic!(concat!(
8932                         "Unable to load ",
8933                         stringify!(get_display_mode_properties2_khr)
8934                     ))
8935                 }
8936                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8937                     b"vkGetDisplayModeProperties2KHR\0",
8938                 );
8939                 let val = _f(cname);
8940                 if val.is_null() {
8941                     get_display_mode_properties2_khr
8942                 } else {
8943                     ::std::mem::transmute(val)
8944                 }
8945             },
8946             get_display_plane_capabilities2_khr: unsafe {
8947                 unsafe extern "system" fn get_display_plane_capabilities2_khr(
8948                     _physical_device: PhysicalDevice,
8949                     _p_display_plane_info: *const DisplayPlaneInfo2KHR,
8950                     _p_capabilities: *mut DisplayPlaneCapabilities2KHR,
8951                 ) -> Result {
8952                     panic!(concat!(
8953                         "Unable to load ",
8954                         stringify!(get_display_plane_capabilities2_khr)
8955                     ))
8956                 }
8957                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
8958                     b"vkGetDisplayPlaneCapabilities2KHR\0",
8959                 );
8960                 let val = _f(cname);
8961                 if val.is_null() {
8962                     get_display_plane_capabilities2_khr
8963                 } else {
8964                     ::std::mem::transmute(val)
8965                 }
8966             },
8967         }
8968     }
8969     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceDisplayProperties2KHR.html>"]
get_physical_device_display_properties2_khr( &self, physical_device: PhysicalDevice, p_property_count: *mut u32, p_properties: *mut DisplayProperties2KHR, ) -> Result8970     pub unsafe fn get_physical_device_display_properties2_khr(
8971         &self,
8972         physical_device: PhysicalDevice,
8973         p_property_count: *mut u32,
8974         p_properties: *mut DisplayProperties2KHR,
8975     ) -> Result {
8976         (self.get_physical_device_display_properties2_khr)(
8977             physical_device,
8978             p_property_count,
8979             p_properties,
8980         )
8981     }
8982     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceDisplayPlaneProperties2KHR.html>"]
get_physical_device_display_plane_properties2_khr( &self, physical_device: PhysicalDevice, p_property_count: *mut u32, p_properties: *mut DisplayPlaneProperties2KHR, ) -> Result8983     pub unsafe fn get_physical_device_display_plane_properties2_khr(
8984         &self,
8985         physical_device: PhysicalDevice,
8986         p_property_count: *mut u32,
8987         p_properties: *mut DisplayPlaneProperties2KHR,
8988     ) -> Result {
8989         (self.get_physical_device_display_plane_properties2_khr)(
8990             physical_device,
8991             p_property_count,
8992             p_properties,
8993         )
8994     }
8995     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDisplayModeProperties2KHR.html>"]
get_display_mode_properties2_khr( &self, physical_device: PhysicalDevice, display: DisplayKHR, p_property_count: *mut u32, p_properties: *mut DisplayModeProperties2KHR, ) -> Result8996     pub unsafe fn get_display_mode_properties2_khr(
8997         &self,
8998         physical_device: PhysicalDevice,
8999         display: DisplayKHR,
9000         p_property_count: *mut u32,
9001         p_properties: *mut DisplayModeProperties2KHR,
9002     ) -> Result {
9003         (self.get_display_mode_properties2_khr)(
9004             physical_device,
9005             display,
9006             p_property_count,
9007             p_properties,
9008         )
9009     }
9010     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDisplayPlaneCapabilities2KHR.html>"]
get_display_plane_capabilities2_khr( &self, physical_device: PhysicalDevice, p_display_plane_info: *const DisplayPlaneInfo2KHR, p_capabilities: *mut DisplayPlaneCapabilities2KHR, ) -> Result9011     pub unsafe fn get_display_plane_capabilities2_khr(
9012         &self,
9013         physical_device: PhysicalDevice,
9014         p_display_plane_info: *const DisplayPlaneInfo2KHR,
9015         p_capabilities: *mut DisplayPlaneCapabilities2KHR,
9016     ) -> Result {
9017         (self.get_display_plane_capabilities2_khr)(
9018             physical_device,
9019             p_display_plane_info,
9020             p_capabilities,
9021         )
9022     }
9023 }
9024 #[doc = "Generated from 'VK_KHR_get_display_properties2'"]
9025 impl StructureType {
9026     pub const DISPLAY_PROPERTIES_2_KHR: Self = Self(1_000_121_000);
9027     pub const DISPLAY_PLANE_PROPERTIES_2_KHR: Self = Self(1_000_121_001);
9028     pub const DISPLAY_MODE_PROPERTIES_2_KHR: Self = Self(1_000_121_002);
9029     pub const DISPLAY_PLANE_INFO_2_KHR: Self = Self(1_000_121_003);
9030     pub const DISPLAY_PLANE_CAPABILITIES_2_KHR: Self = Self(1_000_121_004);
9031 }
9032 impl MvkIosSurfaceFn {
name() -> &'static ::std::ffi::CStr9033     pub fn name() -> &'static ::std::ffi::CStr {
9034         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_MVK_ios_surface\0") }
9035     }
9036     pub const SPEC_VERSION: u32 = 3u32;
9037 }
9038 #[allow(non_camel_case_types)]
9039 pub type PFN_vkCreateIOSSurfaceMVK = unsafe extern "system" fn(
9040     instance: Instance,
9041     p_create_info: *const IOSSurfaceCreateInfoMVK,
9042     p_allocator: *const AllocationCallbacks,
9043     p_surface: *mut SurfaceKHR,
9044 ) -> Result;
9045 #[derive(Clone)]
9046 pub struct MvkIosSurfaceFn {
9047     pub create_ios_surface_mvk: PFN_vkCreateIOSSurfaceMVK,
9048 }
9049 unsafe impl Send for MvkIosSurfaceFn {}
9050 unsafe impl Sync for MvkIosSurfaceFn {}
9051 impl MvkIosSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9052     pub fn load<F>(mut _f: F) -> Self
9053     where
9054         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9055     {
9056         Self {
9057             create_ios_surface_mvk: unsafe {
9058                 unsafe extern "system" fn create_ios_surface_mvk(
9059                     _instance: Instance,
9060                     _p_create_info: *const IOSSurfaceCreateInfoMVK,
9061                     _p_allocator: *const AllocationCallbacks,
9062                     _p_surface: *mut SurfaceKHR,
9063                 ) -> Result {
9064                     panic!(concat!(
9065                         "Unable to load ",
9066                         stringify!(create_ios_surface_mvk)
9067                     ))
9068                 }
9069                 let cname =
9070                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateIOSSurfaceMVK\0");
9071                 let val = _f(cname);
9072                 if val.is_null() {
9073                     create_ios_surface_mvk
9074                 } else {
9075                     ::std::mem::transmute(val)
9076                 }
9077             },
9078         }
9079     }
9080     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateIOSSurfaceMVK.html>"]
create_ios_surface_mvk( &self, instance: Instance, p_create_info: *const IOSSurfaceCreateInfoMVK, p_allocator: *const AllocationCallbacks, p_surface: *mut SurfaceKHR, ) -> Result9081     pub unsafe fn create_ios_surface_mvk(
9082         &self,
9083         instance: Instance,
9084         p_create_info: *const IOSSurfaceCreateInfoMVK,
9085         p_allocator: *const AllocationCallbacks,
9086         p_surface: *mut SurfaceKHR,
9087     ) -> Result {
9088         (self.create_ios_surface_mvk)(instance, p_create_info, p_allocator, p_surface)
9089     }
9090 }
9091 #[doc = "Generated from 'VK_MVK_ios_surface'"]
9092 impl StructureType {
9093     pub const IOS_SURFACE_CREATE_INFO_MVK: Self = Self(1_000_122_000);
9094 }
9095 impl MvkMacosSurfaceFn {
name() -> &'static ::std::ffi::CStr9096     pub fn name() -> &'static ::std::ffi::CStr {
9097         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_MVK_macos_surface\0") }
9098     }
9099     pub const SPEC_VERSION: u32 = 3u32;
9100 }
9101 #[allow(non_camel_case_types)]
9102 pub type PFN_vkCreateMacOSSurfaceMVK = unsafe extern "system" fn(
9103     instance: Instance,
9104     p_create_info: *const MacOSSurfaceCreateInfoMVK,
9105     p_allocator: *const AllocationCallbacks,
9106     p_surface: *mut SurfaceKHR,
9107 ) -> Result;
9108 #[derive(Clone)]
9109 pub struct MvkMacosSurfaceFn {
9110     pub create_mac_os_surface_mvk: PFN_vkCreateMacOSSurfaceMVK,
9111 }
9112 unsafe impl Send for MvkMacosSurfaceFn {}
9113 unsafe impl Sync for MvkMacosSurfaceFn {}
9114 impl MvkMacosSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9115     pub fn load<F>(mut _f: F) -> Self
9116     where
9117         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9118     {
9119         Self {
9120             create_mac_os_surface_mvk: unsafe {
9121                 unsafe extern "system" fn create_mac_os_surface_mvk(
9122                     _instance: Instance,
9123                     _p_create_info: *const MacOSSurfaceCreateInfoMVK,
9124                     _p_allocator: *const AllocationCallbacks,
9125                     _p_surface: *mut SurfaceKHR,
9126                 ) -> Result {
9127                     panic!(concat!(
9128                         "Unable to load ",
9129                         stringify!(create_mac_os_surface_mvk)
9130                     ))
9131                 }
9132                 let cname =
9133                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateMacOSSurfaceMVK\0");
9134                 let val = _f(cname);
9135                 if val.is_null() {
9136                     create_mac_os_surface_mvk
9137                 } else {
9138                     ::std::mem::transmute(val)
9139                 }
9140             },
9141         }
9142     }
9143     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateMacOSSurfaceMVK.html>"]
create_mac_os_surface_mvk( &self, instance: Instance, p_create_info: *const MacOSSurfaceCreateInfoMVK, p_allocator: *const AllocationCallbacks, p_surface: *mut SurfaceKHR, ) -> Result9144     pub unsafe fn create_mac_os_surface_mvk(
9145         &self,
9146         instance: Instance,
9147         p_create_info: *const MacOSSurfaceCreateInfoMVK,
9148         p_allocator: *const AllocationCallbacks,
9149         p_surface: *mut SurfaceKHR,
9150     ) -> Result {
9151         (self.create_mac_os_surface_mvk)(instance, p_create_info, p_allocator, p_surface)
9152     }
9153 }
9154 #[doc = "Generated from 'VK_MVK_macos_surface'"]
9155 impl StructureType {
9156     pub const MACOS_SURFACE_CREATE_INFO_MVK: Self = Self(1_000_123_000);
9157 }
9158 impl MvkMoltenvkFn {
name() -> &'static ::std::ffi::CStr9159     pub fn name() -> &'static ::std::ffi::CStr {
9160         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_MVK_moltenvk\0") }
9161     }
9162     pub const SPEC_VERSION: u32 = 0u32;
9163 }
9164 #[derive(Clone)]
9165 pub struct MvkMoltenvkFn {}
9166 unsafe impl Send for MvkMoltenvkFn {}
9167 unsafe impl Sync for MvkMoltenvkFn {}
9168 impl MvkMoltenvkFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9169     pub fn load<F>(mut _f: F) -> Self
9170     where
9171         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9172     {
9173         Self {}
9174     }
9175 }
9176 impl ExtExternalMemoryDmaBufFn {
name() -> &'static ::std::ffi::CStr9177     pub fn name() -> &'static ::std::ffi::CStr {
9178         unsafe {
9179             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_external_memory_dma_buf\0")
9180         }
9181     }
9182     pub const SPEC_VERSION: u32 = 1u32;
9183 }
9184 #[derive(Clone)]
9185 pub struct ExtExternalMemoryDmaBufFn {}
9186 unsafe impl Send for ExtExternalMemoryDmaBufFn {}
9187 unsafe impl Sync for ExtExternalMemoryDmaBufFn {}
9188 impl ExtExternalMemoryDmaBufFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9189     pub fn load<F>(mut _f: F) -> Self
9190     where
9191         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9192     {
9193         Self {}
9194     }
9195 }
9196 #[doc = "Generated from 'VK_EXT_external_memory_dma_buf'"]
9197 impl ExternalMemoryHandleTypeFlags {
9198     pub const DMA_BUF_EXT: Self = Self(0b10_0000_0000);
9199 }
9200 impl ExtQueueFamilyForeignFn {
name() -> &'static ::std::ffi::CStr9201     pub fn name() -> &'static ::std::ffi::CStr {
9202         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_queue_family_foreign\0") }
9203     }
9204     pub const SPEC_VERSION: u32 = 1u32;
9205 }
9206 #[derive(Clone)]
9207 pub struct ExtQueueFamilyForeignFn {}
9208 unsafe impl Send for ExtQueueFamilyForeignFn {}
9209 unsafe impl Sync for ExtQueueFamilyForeignFn {}
9210 impl ExtQueueFamilyForeignFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9211     pub fn load<F>(mut _f: F) -> Self
9212     where
9213         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9214     {
9215         Self {}
9216     }
9217 }
9218 impl KhrDedicatedAllocationFn {
name() -> &'static ::std::ffi::CStr9219     pub fn name() -> &'static ::std::ffi::CStr {
9220         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_dedicated_allocation\0") }
9221     }
9222     pub const SPEC_VERSION: u32 = 3u32;
9223 }
9224 #[derive(Clone)]
9225 pub struct KhrDedicatedAllocationFn {}
9226 unsafe impl Send for KhrDedicatedAllocationFn {}
9227 unsafe impl Sync for KhrDedicatedAllocationFn {}
9228 impl KhrDedicatedAllocationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9229     pub fn load<F>(mut _f: F) -> Self
9230     where
9231         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9232     {
9233         Self {}
9234     }
9235 }
9236 #[doc = "Generated from 'VK_KHR_dedicated_allocation'"]
9237 impl StructureType {
9238     pub const MEMORY_DEDICATED_REQUIREMENTS_KHR: Self = Self::MEMORY_DEDICATED_REQUIREMENTS;
9239     pub const MEMORY_DEDICATED_ALLOCATE_INFO_KHR: Self = Self::MEMORY_DEDICATED_ALLOCATE_INFO;
9240 }
9241 impl ExtDebugUtilsFn {
name() -> &'static ::std::ffi::CStr9242     pub fn name() -> &'static ::std::ffi::CStr {
9243         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_debug_utils\0") }
9244     }
9245     pub const SPEC_VERSION: u32 = 2u32;
9246 }
9247 #[allow(non_camel_case_types)]
9248 pub type PFN_vkSetDebugUtilsObjectNameEXT = unsafe extern "system" fn(
9249     device: Device,
9250     p_name_info: *const DebugUtilsObjectNameInfoEXT,
9251 ) -> Result;
9252 #[allow(non_camel_case_types)]
9253 pub type PFN_vkSetDebugUtilsObjectTagEXT = unsafe extern "system" fn(
9254     device: Device,
9255     p_tag_info: *const DebugUtilsObjectTagInfoEXT,
9256 ) -> Result;
9257 #[allow(non_camel_case_types)]
9258 pub type PFN_vkQueueBeginDebugUtilsLabelEXT =
9259     unsafe extern "system" fn(queue: Queue, p_label_info: *const DebugUtilsLabelEXT);
9260 #[allow(non_camel_case_types)]
9261 pub type PFN_vkQueueEndDebugUtilsLabelEXT = unsafe extern "system" fn(queue: Queue);
9262 #[allow(non_camel_case_types)]
9263 pub type PFN_vkQueueInsertDebugUtilsLabelEXT =
9264     unsafe extern "system" fn(queue: Queue, p_label_info: *const DebugUtilsLabelEXT);
9265 #[allow(non_camel_case_types)]
9266 pub type PFN_vkCmdBeginDebugUtilsLabelEXT = unsafe extern "system" fn(
9267     command_buffer: CommandBuffer,
9268     p_label_info: *const DebugUtilsLabelEXT,
9269 );
9270 #[allow(non_camel_case_types)]
9271 pub type PFN_vkCmdEndDebugUtilsLabelEXT = unsafe extern "system" fn(command_buffer: CommandBuffer);
9272 #[allow(non_camel_case_types)]
9273 pub type PFN_vkCmdInsertDebugUtilsLabelEXT = unsafe extern "system" fn(
9274     command_buffer: CommandBuffer,
9275     p_label_info: *const DebugUtilsLabelEXT,
9276 );
9277 #[allow(non_camel_case_types)]
9278 pub type PFN_vkCreateDebugUtilsMessengerEXT = unsafe extern "system" fn(
9279     instance: Instance,
9280     p_create_info: *const DebugUtilsMessengerCreateInfoEXT,
9281     p_allocator: *const AllocationCallbacks,
9282     p_messenger: *mut DebugUtilsMessengerEXT,
9283 ) -> Result;
9284 #[allow(non_camel_case_types)]
9285 pub type PFN_vkDestroyDebugUtilsMessengerEXT = unsafe extern "system" fn(
9286     instance: Instance,
9287     messenger: DebugUtilsMessengerEXT,
9288     p_allocator: *const AllocationCallbacks,
9289 );
9290 #[allow(non_camel_case_types)]
9291 pub type PFN_vkSubmitDebugUtilsMessageEXT = unsafe extern "system" fn(
9292     instance: Instance,
9293     message_severity: DebugUtilsMessageSeverityFlagsEXT,
9294     message_types: DebugUtilsMessageTypeFlagsEXT,
9295     p_callback_data: *const DebugUtilsMessengerCallbackDataEXT,
9296 );
9297 #[derive(Clone)]
9298 pub struct ExtDebugUtilsFn {
9299     pub set_debug_utils_object_name_ext: PFN_vkSetDebugUtilsObjectNameEXT,
9300     pub set_debug_utils_object_tag_ext: PFN_vkSetDebugUtilsObjectTagEXT,
9301     pub queue_begin_debug_utils_label_ext: PFN_vkQueueBeginDebugUtilsLabelEXT,
9302     pub queue_end_debug_utils_label_ext: PFN_vkQueueEndDebugUtilsLabelEXT,
9303     pub queue_insert_debug_utils_label_ext: PFN_vkQueueInsertDebugUtilsLabelEXT,
9304     pub cmd_begin_debug_utils_label_ext: PFN_vkCmdBeginDebugUtilsLabelEXT,
9305     pub cmd_end_debug_utils_label_ext: PFN_vkCmdEndDebugUtilsLabelEXT,
9306     pub cmd_insert_debug_utils_label_ext: PFN_vkCmdInsertDebugUtilsLabelEXT,
9307     pub create_debug_utils_messenger_ext: PFN_vkCreateDebugUtilsMessengerEXT,
9308     pub destroy_debug_utils_messenger_ext: PFN_vkDestroyDebugUtilsMessengerEXT,
9309     pub submit_debug_utils_message_ext: PFN_vkSubmitDebugUtilsMessageEXT,
9310 }
9311 unsafe impl Send for ExtDebugUtilsFn {}
9312 unsafe impl Sync for ExtDebugUtilsFn {}
9313 impl ExtDebugUtilsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9314     pub fn load<F>(mut _f: F) -> Self
9315     where
9316         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9317     {
9318         Self {
9319             set_debug_utils_object_name_ext: unsafe {
9320                 unsafe extern "system" fn set_debug_utils_object_name_ext(
9321                     _device: Device,
9322                     _p_name_info: *const DebugUtilsObjectNameInfoEXT,
9323                 ) -> Result {
9324                     panic!(concat!(
9325                         "Unable to load ",
9326                         stringify!(set_debug_utils_object_name_ext)
9327                     ))
9328                 }
9329                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9330                     b"vkSetDebugUtilsObjectNameEXT\0",
9331                 );
9332                 let val = _f(cname);
9333                 if val.is_null() {
9334                     set_debug_utils_object_name_ext
9335                 } else {
9336                     ::std::mem::transmute(val)
9337                 }
9338             },
9339             set_debug_utils_object_tag_ext: unsafe {
9340                 unsafe extern "system" fn set_debug_utils_object_tag_ext(
9341                     _device: Device,
9342                     _p_tag_info: *const DebugUtilsObjectTagInfoEXT,
9343                 ) -> Result {
9344                     panic!(concat!(
9345                         "Unable to load ",
9346                         stringify!(set_debug_utils_object_tag_ext)
9347                     ))
9348                 }
9349                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9350                     b"vkSetDebugUtilsObjectTagEXT\0",
9351                 );
9352                 let val = _f(cname);
9353                 if val.is_null() {
9354                     set_debug_utils_object_tag_ext
9355                 } else {
9356                     ::std::mem::transmute(val)
9357                 }
9358             },
9359             queue_begin_debug_utils_label_ext: unsafe {
9360                 unsafe extern "system" fn queue_begin_debug_utils_label_ext(
9361                     _queue: Queue,
9362                     _p_label_info: *const DebugUtilsLabelEXT,
9363                 ) {
9364                     panic!(concat!(
9365                         "Unable to load ",
9366                         stringify!(queue_begin_debug_utils_label_ext)
9367                     ))
9368                 }
9369                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9370                     b"vkQueueBeginDebugUtilsLabelEXT\0",
9371                 );
9372                 let val = _f(cname);
9373                 if val.is_null() {
9374                     queue_begin_debug_utils_label_ext
9375                 } else {
9376                     ::std::mem::transmute(val)
9377                 }
9378             },
9379             queue_end_debug_utils_label_ext: unsafe {
9380                 unsafe extern "system" fn queue_end_debug_utils_label_ext(_queue: Queue) {
9381                     panic!(concat!(
9382                         "Unable to load ",
9383                         stringify!(queue_end_debug_utils_label_ext)
9384                     ))
9385                 }
9386                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9387                     b"vkQueueEndDebugUtilsLabelEXT\0",
9388                 );
9389                 let val = _f(cname);
9390                 if val.is_null() {
9391                     queue_end_debug_utils_label_ext
9392                 } else {
9393                     ::std::mem::transmute(val)
9394                 }
9395             },
9396             queue_insert_debug_utils_label_ext: unsafe {
9397                 unsafe extern "system" fn queue_insert_debug_utils_label_ext(
9398                     _queue: Queue,
9399                     _p_label_info: *const DebugUtilsLabelEXT,
9400                 ) {
9401                     panic!(concat!(
9402                         "Unable to load ",
9403                         stringify!(queue_insert_debug_utils_label_ext)
9404                     ))
9405                 }
9406                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9407                     b"vkQueueInsertDebugUtilsLabelEXT\0",
9408                 );
9409                 let val = _f(cname);
9410                 if val.is_null() {
9411                     queue_insert_debug_utils_label_ext
9412                 } else {
9413                     ::std::mem::transmute(val)
9414                 }
9415             },
9416             cmd_begin_debug_utils_label_ext: unsafe {
9417                 unsafe extern "system" fn cmd_begin_debug_utils_label_ext(
9418                     _command_buffer: CommandBuffer,
9419                     _p_label_info: *const DebugUtilsLabelEXT,
9420                 ) {
9421                     panic!(concat!(
9422                         "Unable to load ",
9423                         stringify!(cmd_begin_debug_utils_label_ext)
9424                     ))
9425                 }
9426                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9427                     b"vkCmdBeginDebugUtilsLabelEXT\0",
9428                 );
9429                 let val = _f(cname);
9430                 if val.is_null() {
9431                     cmd_begin_debug_utils_label_ext
9432                 } else {
9433                     ::std::mem::transmute(val)
9434                 }
9435             },
9436             cmd_end_debug_utils_label_ext: unsafe {
9437                 unsafe extern "system" fn cmd_end_debug_utils_label_ext(
9438                     _command_buffer: CommandBuffer,
9439                 ) {
9440                     panic!(concat!(
9441                         "Unable to load ",
9442                         stringify!(cmd_end_debug_utils_label_ext)
9443                     ))
9444                 }
9445                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9446                     b"vkCmdEndDebugUtilsLabelEXT\0",
9447                 );
9448                 let val = _f(cname);
9449                 if val.is_null() {
9450                     cmd_end_debug_utils_label_ext
9451                 } else {
9452                     ::std::mem::transmute(val)
9453                 }
9454             },
9455             cmd_insert_debug_utils_label_ext: unsafe {
9456                 unsafe extern "system" fn cmd_insert_debug_utils_label_ext(
9457                     _command_buffer: CommandBuffer,
9458                     _p_label_info: *const DebugUtilsLabelEXT,
9459                 ) {
9460                     panic!(concat!(
9461                         "Unable to load ",
9462                         stringify!(cmd_insert_debug_utils_label_ext)
9463                     ))
9464                 }
9465                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9466                     b"vkCmdInsertDebugUtilsLabelEXT\0",
9467                 );
9468                 let val = _f(cname);
9469                 if val.is_null() {
9470                     cmd_insert_debug_utils_label_ext
9471                 } else {
9472                     ::std::mem::transmute(val)
9473                 }
9474             },
9475             create_debug_utils_messenger_ext: unsafe {
9476                 unsafe extern "system" fn create_debug_utils_messenger_ext(
9477                     _instance: Instance,
9478                     _p_create_info: *const DebugUtilsMessengerCreateInfoEXT,
9479                     _p_allocator: *const AllocationCallbacks,
9480                     _p_messenger: *mut DebugUtilsMessengerEXT,
9481                 ) -> Result {
9482                     panic!(concat!(
9483                         "Unable to load ",
9484                         stringify!(create_debug_utils_messenger_ext)
9485                     ))
9486                 }
9487                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9488                     b"vkCreateDebugUtilsMessengerEXT\0",
9489                 );
9490                 let val = _f(cname);
9491                 if val.is_null() {
9492                     create_debug_utils_messenger_ext
9493                 } else {
9494                     ::std::mem::transmute(val)
9495                 }
9496             },
9497             destroy_debug_utils_messenger_ext: unsafe {
9498                 unsafe extern "system" fn destroy_debug_utils_messenger_ext(
9499                     _instance: Instance,
9500                     _messenger: DebugUtilsMessengerEXT,
9501                     _p_allocator: *const AllocationCallbacks,
9502                 ) {
9503                     panic!(concat!(
9504                         "Unable to load ",
9505                         stringify!(destroy_debug_utils_messenger_ext)
9506                     ))
9507                 }
9508                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9509                     b"vkDestroyDebugUtilsMessengerEXT\0",
9510                 );
9511                 let val = _f(cname);
9512                 if val.is_null() {
9513                     destroy_debug_utils_messenger_ext
9514                 } else {
9515                     ::std::mem::transmute(val)
9516                 }
9517             },
9518             submit_debug_utils_message_ext: unsafe {
9519                 unsafe extern "system" fn submit_debug_utils_message_ext(
9520                     _instance: Instance,
9521                     _message_severity: DebugUtilsMessageSeverityFlagsEXT,
9522                     _message_types: DebugUtilsMessageTypeFlagsEXT,
9523                     _p_callback_data: *const DebugUtilsMessengerCallbackDataEXT,
9524                 ) {
9525                     panic!(concat!(
9526                         "Unable to load ",
9527                         stringify!(submit_debug_utils_message_ext)
9528                     ))
9529                 }
9530                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9531                     b"vkSubmitDebugUtilsMessageEXT\0",
9532                 );
9533                 let val = _f(cname);
9534                 if val.is_null() {
9535                     submit_debug_utils_message_ext
9536                 } else {
9537                     ::std::mem::transmute(val)
9538                 }
9539             },
9540         }
9541     }
9542     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkSetDebugUtilsObjectNameEXT.html>"]
set_debug_utils_object_name_ext( &self, device: Device, p_name_info: *const DebugUtilsObjectNameInfoEXT, ) -> Result9543     pub unsafe fn set_debug_utils_object_name_ext(
9544         &self,
9545         device: Device,
9546         p_name_info: *const DebugUtilsObjectNameInfoEXT,
9547     ) -> Result {
9548         (self.set_debug_utils_object_name_ext)(device, p_name_info)
9549     }
9550     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkSetDebugUtilsObjectTagEXT.html>"]
set_debug_utils_object_tag_ext( &self, device: Device, p_tag_info: *const DebugUtilsObjectTagInfoEXT, ) -> Result9551     pub unsafe fn set_debug_utils_object_tag_ext(
9552         &self,
9553         device: Device,
9554         p_tag_info: *const DebugUtilsObjectTagInfoEXT,
9555     ) -> Result {
9556         (self.set_debug_utils_object_tag_ext)(device, p_tag_info)
9557     }
9558     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkQueueBeginDebugUtilsLabelEXT.html>"]
queue_begin_debug_utils_label_ext( &self, queue: Queue, p_label_info: *const DebugUtilsLabelEXT, )9559     pub unsafe fn queue_begin_debug_utils_label_ext(
9560         &self,
9561         queue: Queue,
9562         p_label_info: *const DebugUtilsLabelEXT,
9563     ) {
9564         (self.queue_begin_debug_utils_label_ext)(queue, p_label_info)
9565     }
9566     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkQueueEndDebugUtilsLabelEXT.html>"]
queue_end_debug_utils_label_ext(&self, queue: Queue)9567     pub unsafe fn queue_end_debug_utils_label_ext(&self, queue: Queue) {
9568         (self.queue_end_debug_utils_label_ext)(queue)
9569     }
9570     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkQueueInsertDebugUtilsLabelEXT.html>"]
queue_insert_debug_utils_label_ext( &self, queue: Queue, p_label_info: *const DebugUtilsLabelEXT, )9571     pub unsafe fn queue_insert_debug_utils_label_ext(
9572         &self,
9573         queue: Queue,
9574         p_label_info: *const DebugUtilsLabelEXT,
9575     ) {
9576         (self.queue_insert_debug_utils_label_ext)(queue, p_label_info)
9577     }
9578     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBeginDebugUtilsLabelEXT.html>"]
cmd_begin_debug_utils_label_ext( &self, command_buffer: CommandBuffer, p_label_info: *const DebugUtilsLabelEXT, )9579     pub unsafe fn cmd_begin_debug_utils_label_ext(
9580         &self,
9581         command_buffer: CommandBuffer,
9582         p_label_info: *const DebugUtilsLabelEXT,
9583     ) {
9584         (self.cmd_begin_debug_utils_label_ext)(command_buffer, p_label_info)
9585     }
9586     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdEndDebugUtilsLabelEXT.html>"]
cmd_end_debug_utils_label_ext(&self, command_buffer: CommandBuffer)9587     pub unsafe fn cmd_end_debug_utils_label_ext(&self, command_buffer: CommandBuffer) {
9588         (self.cmd_end_debug_utils_label_ext)(command_buffer)
9589     }
9590     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdInsertDebugUtilsLabelEXT.html>"]
cmd_insert_debug_utils_label_ext( &self, command_buffer: CommandBuffer, p_label_info: *const DebugUtilsLabelEXT, )9591     pub unsafe fn cmd_insert_debug_utils_label_ext(
9592         &self,
9593         command_buffer: CommandBuffer,
9594         p_label_info: *const DebugUtilsLabelEXT,
9595     ) {
9596         (self.cmd_insert_debug_utils_label_ext)(command_buffer, p_label_info)
9597     }
9598     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateDebugUtilsMessengerEXT.html>"]
create_debug_utils_messenger_ext( &self, instance: Instance, p_create_info: *const DebugUtilsMessengerCreateInfoEXT, p_allocator: *const AllocationCallbacks, p_messenger: *mut DebugUtilsMessengerEXT, ) -> Result9599     pub unsafe fn create_debug_utils_messenger_ext(
9600         &self,
9601         instance: Instance,
9602         p_create_info: *const DebugUtilsMessengerCreateInfoEXT,
9603         p_allocator: *const AllocationCallbacks,
9604         p_messenger: *mut DebugUtilsMessengerEXT,
9605     ) -> Result {
9606         (self.create_debug_utils_messenger_ext)(instance, p_create_info, p_allocator, p_messenger)
9607     }
9608     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroyDebugUtilsMessengerEXT.html>"]
destroy_debug_utils_messenger_ext( &self, instance: Instance, messenger: DebugUtilsMessengerEXT, p_allocator: *const AllocationCallbacks, )9609     pub unsafe fn destroy_debug_utils_messenger_ext(
9610         &self,
9611         instance: Instance,
9612         messenger: DebugUtilsMessengerEXT,
9613         p_allocator: *const AllocationCallbacks,
9614     ) {
9615         (self.destroy_debug_utils_messenger_ext)(instance, messenger, p_allocator)
9616     }
9617     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkSubmitDebugUtilsMessageEXT.html>"]
submit_debug_utils_message_ext( &self, instance: Instance, message_severity: DebugUtilsMessageSeverityFlagsEXT, message_types: DebugUtilsMessageTypeFlagsEXT, p_callback_data: *const DebugUtilsMessengerCallbackDataEXT, )9618     pub unsafe fn submit_debug_utils_message_ext(
9619         &self,
9620         instance: Instance,
9621         message_severity: DebugUtilsMessageSeverityFlagsEXT,
9622         message_types: DebugUtilsMessageTypeFlagsEXT,
9623         p_callback_data: *const DebugUtilsMessengerCallbackDataEXT,
9624     ) {
9625         (self.submit_debug_utils_message_ext)(
9626             instance,
9627             message_severity,
9628             message_types,
9629             p_callback_data,
9630         )
9631     }
9632 }
9633 #[doc = "Generated from 'VK_EXT_debug_utils'"]
9634 impl ObjectType {
9635     pub const DEBUG_UTILS_MESSENGER_EXT: Self = Self(1_000_128_000);
9636 }
9637 #[doc = "Generated from 'VK_EXT_debug_utils'"]
9638 impl StructureType {
9639     pub const DEBUG_UTILS_OBJECT_NAME_INFO_EXT: Self = Self(1_000_128_000);
9640     pub const DEBUG_UTILS_OBJECT_TAG_INFO_EXT: Self = Self(1_000_128_001);
9641     pub const DEBUG_UTILS_LABEL_EXT: Self = Self(1_000_128_002);
9642     pub const DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT: Self = Self(1_000_128_003);
9643     pub const DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: Self = Self(1_000_128_004);
9644 }
9645 impl AndroidExternalMemoryAndroidHardwareBufferFn {
name() -> &'static ::std::ffi::CStr9646     pub fn name() -> &'static ::std::ffi::CStr {
9647         unsafe {
9648             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9649                 b"VK_ANDROID_external_memory_android_hardware_buffer\0",
9650             )
9651         }
9652     }
9653     pub const SPEC_VERSION: u32 = 4u32;
9654 }
9655 #[allow(non_camel_case_types)]
9656 pub type PFN_vkGetAndroidHardwareBufferPropertiesANDROID = unsafe extern "system" fn(
9657     device: Device,
9658     buffer: *const AHardwareBuffer,
9659     p_properties: *mut AndroidHardwareBufferPropertiesANDROID,
9660 ) -> Result;
9661 #[allow(non_camel_case_types)]
9662 pub type PFN_vkGetMemoryAndroidHardwareBufferANDROID = unsafe extern "system" fn(
9663     device: Device,
9664     p_info: *const MemoryGetAndroidHardwareBufferInfoANDROID,
9665     p_buffer: *mut *mut AHardwareBuffer,
9666 ) -> Result;
9667 #[derive(Clone)]
9668 pub struct AndroidExternalMemoryAndroidHardwareBufferFn {
9669     pub get_android_hardware_buffer_properties_android:
9670         PFN_vkGetAndroidHardwareBufferPropertiesANDROID,
9671     pub get_memory_android_hardware_buffer_android: PFN_vkGetMemoryAndroidHardwareBufferANDROID,
9672 }
9673 unsafe impl Send for AndroidExternalMemoryAndroidHardwareBufferFn {}
9674 unsafe impl Sync for AndroidExternalMemoryAndroidHardwareBufferFn {}
9675 impl AndroidExternalMemoryAndroidHardwareBufferFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9676     pub fn load<F>(mut _f: F) -> Self
9677     where
9678         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9679     {
9680         Self {
9681             get_android_hardware_buffer_properties_android: unsafe {
9682                 unsafe extern "system" fn get_android_hardware_buffer_properties_android(
9683                     _device: Device,
9684                     _buffer: *const AHardwareBuffer,
9685                     _p_properties: *mut AndroidHardwareBufferPropertiesANDROID,
9686                 ) -> Result {
9687                     panic!(concat!(
9688                         "Unable to load ",
9689                         stringify!(get_android_hardware_buffer_properties_android)
9690                     ))
9691                 }
9692                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9693                     b"vkGetAndroidHardwareBufferPropertiesANDROID\0",
9694                 );
9695                 let val = _f(cname);
9696                 if val.is_null() {
9697                     get_android_hardware_buffer_properties_android
9698                 } else {
9699                     ::std::mem::transmute(val)
9700                 }
9701             },
9702             get_memory_android_hardware_buffer_android: unsafe {
9703                 unsafe extern "system" fn get_memory_android_hardware_buffer_android(
9704                     _device: Device,
9705                     _p_info: *const MemoryGetAndroidHardwareBufferInfoANDROID,
9706                     _p_buffer: *mut *mut AHardwareBuffer,
9707                 ) -> Result {
9708                     panic!(concat!(
9709                         "Unable to load ",
9710                         stringify!(get_memory_android_hardware_buffer_android)
9711                     ))
9712                 }
9713                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9714                     b"vkGetMemoryAndroidHardwareBufferANDROID\0",
9715                 );
9716                 let val = _f(cname);
9717                 if val.is_null() {
9718                     get_memory_android_hardware_buffer_android
9719                 } else {
9720                     ::std::mem::transmute(val)
9721                 }
9722             },
9723         }
9724     }
9725     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetAndroidHardwareBufferPropertiesANDROID.html>"]
get_android_hardware_buffer_properties_android( &self, device: Device, buffer: *const AHardwareBuffer, p_properties: *mut AndroidHardwareBufferPropertiesANDROID, ) -> Result9726     pub unsafe fn get_android_hardware_buffer_properties_android(
9727         &self,
9728         device: Device,
9729         buffer: *const AHardwareBuffer,
9730         p_properties: *mut AndroidHardwareBufferPropertiesANDROID,
9731     ) -> Result {
9732         (self.get_android_hardware_buffer_properties_android)(device, buffer, p_properties)
9733     }
9734     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetMemoryAndroidHardwareBufferANDROID.html>"]
get_memory_android_hardware_buffer_android( &self, device: Device, p_info: *const MemoryGetAndroidHardwareBufferInfoANDROID, p_buffer: *mut *mut AHardwareBuffer, ) -> Result9735     pub unsafe fn get_memory_android_hardware_buffer_android(
9736         &self,
9737         device: Device,
9738         p_info: *const MemoryGetAndroidHardwareBufferInfoANDROID,
9739         p_buffer: *mut *mut AHardwareBuffer,
9740     ) -> Result {
9741         (self.get_memory_android_hardware_buffer_android)(device, p_info, p_buffer)
9742     }
9743 }
9744 #[doc = "Generated from 'VK_ANDROID_external_memory_android_hardware_buffer'"]
9745 impl ExternalMemoryHandleTypeFlags {
9746     pub const ANDROID_HARDWARE_BUFFER_ANDROID: Self = Self(0b100_0000_0000);
9747 }
9748 #[doc = "Generated from 'VK_ANDROID_external_memory_android_hardware_buffer'"]
9749 impl StructureType {
9750     pub const ANDROID_HARDWARE_BUFFER_USAGE_ANDROID: Self = Self(1_000_129_000);
9751     pub const ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID: Self = Self(1_000_129_001);
9752     pub const ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID: Self = Self(1_000_129_002);
9753     pub const IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: Self = Self(1_000_129_003);
9754     pub const MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID: Self = Self(1_000_129_004);
9755     pub const EXTERNAL_FORMAT_ANDROID: Self = Self(1_000_129_005);
9756     pub const ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID: Self = Self(1_000_129_006);
9757 }
9758 impl ExtSamplerFilterMinmaxFn {
name() -> &'static ::std::ffi::CStr9759     pub fn name() -> &'static ::std::ffi::CStr {
9760         unsafe {
9761             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_sampler_filter_minmax\0")
9762         }
9763     }
9764     pub const SPEC_VERSION: u32 = 2u32;
9765 }
9766 #[derive(Clone)]
9767 pub struct ExtSamplerFilterMinmaxFn {}
9768 unsafe impl Send for ExtSamplerFilterMinmaxFn {}
9769 unsafe impl Sync for ExtSamplerFilterMinmaxFn {}
9770 impl ExtSamplerFilterMinmaxFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9771     pub fn load<F>(mut _f: F) -> Self
9772     where
9773         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9774     {
9775         Self {}
9776     }
9777 }
9778 #[doc = "Generated from 'VK_EXT_sampler_filter_minmax'"]
9779 impl FormatFeatureFlags {
9780     pub const SAMPLED_IMAGE_FILTER_MINMAX_EXT: Self = Self::SAMPLED_IMAGE_FILTER_MINMAX;
9781 }
9782 #[doc = "Generated from 'VK_EXT_sampler_filter_minmax'"]
9783 impl SamplerReductionMode {
9784     pub const WEIGHTED_AVERAGE_EXT: Self = Self::WEIGHTED_AVERAGE;
9785     pub const MIN_EXT: Self = Self::MIN;
9786     pub const MAX_EXT: Self = Self::MAX;
9787 }
9788 #[doc = "Generated from 'VK_EXT_sampler_filter_minmax'"]
9789 impl StructureType {
9790     pub const PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT: Self =
9791         Self::PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES;
9792     pub const SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT: Self =
9793         Self::SAMPLER_REDUCTION_MODE_CREATE_INFO;
9794 }
9795 impl KhrStorageBufferStorageClassFn {
name() -> &'static ::std::ffi::CStr9796     pub fn name() -> &'static ::std::ffi::CStr {
9797         unsafe {
9798             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
9799                 b"VK_KHR_storage_buffer_storage_class\0",
9800             )
9801         }
9802     }
9803     pub const SPEC_VERSION: u32 = 1u32;
9804 }
9805 #[derive(Clone)]
9806 pub struct KhrStorageBufferStorageClassFn {}
9807 unsafe impl Send for KhrStorageBufferStorageClassFn {}
9808 unsafe impl Sync for KhrStorageBufferStorageClassFn {}
9809 impl KhrStorageBufferStorageClassFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9810     pub fn load<F>(mut _f: F) -> Self
9811     where
9812         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9813     {
9814         Self {}
9815     }
9816 }
9817 impl AmdGpuShaderInt16Fn {
name() -> &'static ::std::ffi::CStr9818     pub fn name() -> &'static ::std::ffi::CStr {
9819         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_gpu_shader_int16\0") }
9820     }
9821     pub const SPEC_VERSION: u32 = 2u32;
9822 }
9823 #[derive(Clone)]
9824 pub struct AmdGpuShaderInt16Fn {}
9825 unsafe impl Send for AmdGpuShaderInt16Fn {}
9826 unsafe impl Sync for AmdGpuShaderInt16Fn {}
9827 impl AmdGpuShaderInt16Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9828     pub fn load<F>(mut _f: F) -> Self
9829     where
9830         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9831     {
9832         Self {}
9833     }
9834 }
9835 impl AmdExtension134Fn {
name() -> &'static ::std::ffi::CStr9836     pub fn name() -> &'static ::std::ffi::CStr {
9837         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_134\0") }
9838     }
9839     pub const SPEC_VERSION: u32 = 0u32;
9840 }
9841 #[derive(Clone)]
9842 pub struct AmdExtension134Fn {}
9843 unsafe impl Send for AmdExtension134Fn {}
9844 unsafe impl Sync for AmdExtension134Fn {}
9845 impl AmdExtension134Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9846     pub fn load<F>(mut _f: F) -> Self
9847     where
9848         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9849     {
9850         Self {}
9851     }
9852 }
9853 impl AmdExtension135Fn {
name() -> &'static ::std::ffi::CStr9854     pub fn name() -> &'static ::std::ffi::CStr {
9855         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_135\0") }
9856     }
9857     pub const SPEC_VERSION: u32 = 0u32;
9858 }
9859 #[derive(Clone)]
9860 pub struct AmdExtension135Fn {}
9861 unsafe impl Send for AmdExtension135Fn {}
9862 unsafe impl Sync for AmdExtension135Fn {}
9863 impl AmdExtension135Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9864     pub fn load<F>(mut _f: F) -> Self
9865     where
9866         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9867     {
9868         Self {}
9869     }
9870 }
9871 impl AmdExtension136Fn {
name() -> &'static ::std::ffi::CStr9872     pub fn name() -> &'static ::std::ffi::CStr {
9873         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_136\0") }
9874     }
9875     pub const SPEC_VERSION: u32 = 0u32;
9876 }
9877 #[derive(Clone)]
9878 pub struct AmdExtension136Fn {}
9879 unsafe impl Send for AmdExtension136Fn {}
9880 unsafe impl Sync for AmdExtension136Fn {}
9881 impl AmdExtension136Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9882     pub fn load<F>(mut _f: F) -> Self
9883     where
9884         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9885     {
9886         Self {}
9887     }
9888 }
9889 impl AmdMixedAttachmentSamplesFn {
name() -> &'static ::std::ffi::CStr9890     pub fn name() -> &'static ::std::ffi::CStr {
9891         unsafe {
9892             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_mixed_attachment_samples\0")
9893         }
9894     }
9895     pub const SPEC_VERSION: u32 = 1u32;
9896 }
9897 #[derive(Clone)]
9898 pub struct AmdMixedAttachmentSamplesFn {}
9899 unsafe impl Send for AmdMixedAttachmentSamplesFn {}
9900 unsafe impl Sync for AmdMixedAttachmentSamplesFn {}
9901 impl AmdMixedAttachmentSamplesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9902     pub fn load<F>(mut _f: F) -> Self
9903     where
9904         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9905     {
9906         Self {}
9907     }
9908 }
9909 impl AmdShaderFragmentMaskFn {
name() -> &'static ::std::ffi::CStr9910     pub fn name() -> &'static ::std::ffi::CStr {
9911         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_fragment_mask\0") }
9912     }
9913     pub const SPEC_VERSION: u32 = 1u32;
9914 }
9915 #[derive(Clone)]
9916 pub struct AmdShaderFragmentMaskFn {}
9917 unsafe impl Send for AmdShaderFragmentMaskFn {}
9918 unsafe impl Sync for AmdShaderFragmentMaskFn {}
9919 impl AmdShaderFragmentMaskFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9920     pub fn load<F>(mut _f: F) -> Self
9921     where
9922         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9923     {
9924         Self {}
9925     }
9926 }
9927 impl ExtInlineUniformBlockFn {
name() -> &'static ::std::ffi::CStr9928     pub fn name() -> &'static ::std::ffi::CStr {
9929         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_inline_uniform_block\0") }
9930     }
9931     pub const SPEC_VERSION: u32 = 1u32;
9932 }
9933 #[derive(Clone)]
9934 pub struct ExtInlineUniformBlockFn {}
9935 unsafe impl Send for ExtInlineUniformBlockFn {}
9936 unsafe impl Sync for ExtInlineUniformBlockFn {}
9937 impl ExtInlineUniformBlockFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9938     pub fn load<F>(mut _f: F) -> Self
9939     where
9940         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9941     {
9942         Self {}
9943     }
9944 }
9945 #[doc = "Generated from 'VK_EXT_inline_uniform_block'"]
9946 impl DescriptorType {
9947     pub const INLINE_UNIFORM_BLOCK_EXT: Self = Self(1_000_138_000);
9948 }
9949 #[doc = "Generated from 'VK_EXT_inline_uniform_block'"]
9950 impl StructureType {
9951     pub const PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT: Self = Self(1_000_138_000);
9952     pub const PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT: Self = Self(1_000_138_001);
9953     pub const WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT: Self = Self(1_000_138_002);
9954     pub const DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT: Self = Self(1_000_138_003);
9955 }
9956 impl AmdExtension140Fn {
name() -> &'static ::std::ffi::CStr9957     pub fn name() -> &'static ::std::ffi::CStr {
9958         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_140\0") }
9959     }
9960     pub const SPEC_VERSION: u32 = 0u32;
9961 }
9962 #[derive(Clone)]
9963 pub struct AmdExtension140Fn {}
9964 unsafe impl Send for AmdExtension140Fn {}
9965 unsafe impl Sync for AmdExtension140Fn {}
9966 impl AmdExtension140Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9967     pub fn load<F>(mut _f: F) -> Self
9968     where
9969         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9970     {
9971         Self {}
9972     }
9973 }
9974 impl ExtShaderStencilExportFn {
name() -> &'static ::std::ffi::CStr9975     pub fn name() -> &'static ::std::ffi::CStr {
9976         unsafe {
9977             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_stencil_export\0")
9978         }
9979     }
9980     pub const SPEC_VERSION: u32 = 1u32;
9981 }
9982 #[derive(Clone)]
9983 pub struct ExtShaderStencilExportFn {}
9984 unsafe impl Send for ExtShaderStencilExportFn {}
9985 unsafe impl Sync for ExtShaderStencilExportFn {}
9986 impl ExtShaderStencilExportFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,9987     pub fn load<F>(mut _f: F) -> Self
9988     where
9989         F: FnMut(&::std::ffi::CStr) -> *const c_void,
9990     {
9991         Self {}
9992     }
9993 }
9994 impl AmdExtension142Fn {
name() -> &'static ::std::ffi::CStr9995     pub fn name() -> &'static ::std::ffi::CStr {
9996         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_142\0") }
9997     }
9998     pub const SPEC_VERSION: u32 = 0u32;
9999 }
10000 #[derive(Clone)]
10001 pub struct AmdExtension142Fn {}
10002 unsafe impl Send for AmdExtension142Fn {}
10003 unsafe impl Sync for AmdExtension142Fn {}
10004 impl AmdExtension142Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10005     pub fn load<F>(mut _f: F) -> Self
10006     where
10007         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10008     {
10009         Self {}
10010     }
10011 }
10012 impl AmdExtension143Fn {
name() -> &'static ::std::ffi::CStr10013     pub fn name() -> &'static ::std::ffi::CStr {
10014         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_143\0") }
10015     }
10016     pub const SPEC_VERSION: u32 = 0u32;
10017 }
10018 #[derive(Clone)]
10019 pub struct AmdExtension143Fn {}
10020 unsafe impl Send for AmdExtension143Fn {}
10021 unsafe impl Sync for AmdExtension143Fn {}
10022 impl AmdExtension143Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10023     pub fn load<F>(mut _f: F) -> Self
10024     where
10025         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10026     {
10027         Self {}
10028     }
10029 }
10030 impl ExtSampleLocationsFn {
name() -> &'static ::std::ffi::CStr10031     pub fn name() -> &'static ::std::ffi::CStr {
10032         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_sample_locations\0") }
10033     }
10034     pub const SPEC_VERSION: u32 = 1u32;
10035 }
10036 #[allow(non_camel_case_types)]
10037 pub type PFN_vkCmdSetSampleLocationsEXT = unsafe extern "system" fn(
10038     command_buffer: CommandBuffer,
10039     p_sample_locations_info: *const SampleLocationsInfoEXT,
10040 );
10041 #[allow(non_camel_case_types)]
10042 pub type PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT = unsafe extern "system" fn(
10043     physical_device: PhysicalDevice,
10044     samples: SampleCountFlags,
10045     p_multisample_properties: *mut MultisamplePropertiesEXT,
10046 );
10047 #[derive(Clone)]
10048 pub struct ExtSampleLocationsFn {
10049     pub cmd_set_sample_locations_ext: PFN_vkCmdSetSampleLocationsEXT,
10050     pub get_physical_device_multisample_properties_ext:
10051         PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT,
10052 }
10053 unsafe impl Send for ExtSampleLocationsFn {}
10054 unsafe impl Sync for ExtSampleLocationsFn {}
10055 impl ExtSampleLocationsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10056     pub fn load<F>(mut _f: F) -> Self
10057     where
10058         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10059     {
10060         Self {
10061             cmd_set_sample_locations_ext: unsafe {
10062                 unsafe extern "system" fn cmd_set_sample_locations_ext(
10063                     _command_buffer: CommandBuffer,
10064                     _p_sample_locations_info: *const SampleLocationsInfoEXT,
10065                 ) {
10066                     panic!(concat!(
10067                         "Unable to load ",
10068                         stringify!(cmd_set_sample_locations_ext)
10069                     ))
10070                 }
10071                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10072                     b"vkCmdSetSampleLocationsEXT\0",
10073                 );
10074                 let val = _f(cname);
10075                 if val.is_null() {
10076                     cmd_set_sample_locations_ext
10077                 } else {
10078                     ::std::mem::transmute(val)
10079                 }
10080             },
10081             get_physical_device_multisample_properties_ext: unsafe {
10082                 unsafe extern "system" fn get_physical_device_multisample_properties_ext(
10083                     _physical_device: PhysicalDevice,
10084                     _samples: SampleCountFlags,
10085                     _p_multisample_properties: *mut MultisamplePropertiesEXT,
10086                 ) {
10087                     panic!(concat!(
10088                         "Unable to load ",
10089                         stringify!(get_physical_device_multisample_properties_ext)
10090                     ))
10091                 }
10092                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10093                     b"vkGetPhysicalDeviceMultisamplePropertiesEXT\0",
10094                 );
10095                 let val = _f(cname);
10096                 if val.is_null() {
10097                     get_physical_device_multisample_properties_ext
10098                 } else {
10099                     ::std::mem::transmute(val)
10100                 }
10101             },
10102         }
10103     }
10104     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetSampleLocationsEXT.html>"]
cmd_set_sample_locations_ext( &self, command_buffer: CommandBuffer, p_sample_locations_info: *const SampleLocationsInfoEXT, )10105     pub unsafe fn cmd_set_sample_locations_ext(
10106         &self,
10107         command_buffer: CommandBuffer,
10108         p_sample_locations_info: *const SampleLocationsInfoEXT,
10109     ) {
10110         (self.cmd_set_sample_locations_ext)(command_buffer, p_sample_locations_info)
10111     }
10112     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceMultisamplePropertiesEXT.html>"]
get_physical_device_multisample_properties_ext( &self, physical_device: PhysicalDevice, samples: SampleCountFlags, p_multisample_properties: *mut MultisamplePropertiesEXT, )10113     pub unsafe fn get_physical_device_multisample_properties_ext(
10114         &self,
10115         physical_device: PhysicalDevice,
10116         samples: SampleCountFlags,
10117         p_multisample_properties: *mut MultisamplePropertiesEXT,
10118     ) {
10119         (self.get_physical_device_multisample_properties_ext)(
10120             physical_device,
10121             samples,
10122             p_multisample_properties,
10123         )
10124     }
10125 }
10126 #[doc = "Generated from 'VK_EXT_sample_locations'"]
10127 impl DynamicState {
10128     pub const SAMPLE_LOCATIONS_EXT: Self = Self(1_000_143_000);
10129 }
10130 #[doc = "Generated from 'VK_EXT_sample_locations'"]
10131 impl ImageCreateFlags {
10132     pub const SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_EXT: Self = Self(0b1_0000_0000_0000);
10133 }
10134 #[doc = "Generated from 'VK_EXT_sample_locations'"]
10135 impl StructureType {
10136     pub const SAMPLE_LOCATIONS_INFO_EXT: Self = Self(1_000_143_000);
10137     pub const RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: Self = Self(1_000_143_001);
10138     pub const PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: Self = Self(1_000_143_002);
10139     pub const PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: Self = Self(1_000_143_003);
10140     pub const MULTISAMPLE_PROPERTIES_EXT: Self = Self(1_000_143_004);
10141 }
10142 impl KhrRelaxedBlockLayoutFn {
name() -> &'static ::std::ffi::CStr10143     pub fn name() -> &'static ::std::ffi::CStr {
10144         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_relaxed_block_layout\0") }
10145     }
10146     pub const SPEC_VERSION: u32 = 1u32;
10147 }
10148 #[derive(Clone)]
10149 pub struct KhrRelaxedBlockLayoutFn {}
10150 unsafe impl Send for KhrRelaxedBlockLayoutFn {}
10151 unsafe impl Sync for KhrRelaxedBlockLayoutFn {}
10152 impl KhrRelaxedBlockLayoutFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10153     pub fn load<F>(mut _f: F) -> Self
10154     where
10155         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10156     {
10157         Self {}
10158     }
10159 }
10160 impl KhrGetMemoryRequirements2Fn {
name() -> &'static ::std::ffi::CStr10161     pub fn name() -> &'static ::std::ffi::CStr {
10162         unsafe {
10163             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_get_memory_requirements2\0")
10164         }
10165     }
10166     pub const SPEC_VERSION: u32 = 1u32;
10167 }
10168 #[allow(non_camel_case_types)]
10169 pub type PFN_vkGetImageMemoryRequirements2 = unsafe extern "system" fn(
10170     device: Device,
10171     p_info: *const ImageMemoryRequirementsInfo2,
10172     p_memory_requirements: *mut MemoryRequirements2,
10173 );
10174 #[allow(non_camel_case_types)]
10175 pub type PFN_vkGetBufferMemoryRequirements2 = unsafe extern "system" fn(
10176     device: Device,
10177     p_info: *const BufferMemoryRequirementsInfo2,
10178     p_memory_requirements: *mut MemoryRequirements2,
10179 );
10180 #[allow(non_camel_case_types)]
10181 pub type PFN_vkGetImageSparseMemoryRequirements2 = unsafe extern "system" fn(
10182     device: Device,
10183     p_info: *const ImageSparseMemoryRequirementsInfo2,
10184     p_sparse_memory_requirement_count: *mut u32,
10185     p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2,
10186 );
10187 #[derive(Clone)]
10188 pub struct KhrGetMemoryRequirements2Fn {
10189     pub get_image_memory_requirements2_khr: PFN_vkGetImageMemoryRequirements2,
10190     pub get_buffer_memory_requirements2_khr: PFN_vkGetBufferMemoryRequirements2,
10191     pub get_image_sparse_memory_requirements2_khr: PFN_vkGetImageSparseMemoryRequirements2,
10192 }
10193 unsafe impl Send for KhrGetMemoryRequirements2Fn {}
10194 unsafe impl Sync for KhrGetMemoryRequirements2Fn {}
10195 impl KhrGetMemoryRequirements2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10196     pub fn load<F>(mut _f: F) -> Self
10197     where
10198         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10199     {
10200         Self {
10201             get_image_memory_requirements2_khr: unsafe {
10202                 unsafe extern "system" fn get_image_memory_requirements2_khr(
10203                     _device: Device,
10204                     _p_info: *const ImageMemoryRequirementsInfo2,
10205                     _p_memory_requirements: *mut MemoryRequirements2,
10206                 ) {
10207                     panic!(concat!(
10208                         "Unable to load ",
10209                         stringify!(get_image_memory_requirements2_khr)
10210                     ))
10211                 }
10212                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10213                     b"vkGetImageMemoryRequirements2KHR\0",
10214                 );
10215                 let val = _f(cname);
10216                 if val.is_null() {
10217                     get_image_memory_requirements2_khr
10218                 } else {
10219                     ::std::mem::transmute(val)
10220                 }
10221             },
10222             get_buffer_memory_requirements2_khr: unsafe {
10223                 unsafe extern "system" fn get_buffer_memory_requirements2_khr(
10224                     _device: Device,
10225                     _p_info: *const BufferMemoryRequirementsInfo2,
10226                     _p_memory_requirements: *mut MemoryRequirements2,
10227                 ) {
10228                     panic!(concat!(
10229                         "Unable to load ",
10230                         stringify!(get_buffer_memory_requirements2_khr)
10231                     ))
10232                 }
10233                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10234                     b"vkGetBufferMemoryRequirements2KHR\0",
10235                 );
10236                 let val = _f(cname);
10237                 if val.is_null() {
10238                     get_buffer_memory_requirements2_khr
10239                 } else {
10240                     ::std::mem::transmute(val)
10241                 }
10242             },
10243             get_image_sparse_memory_requirements2_khr: unsafe {
10244                 unsafe extern "system" fn get_image_sparse_memory_requirements2_khr(
10245                     _device: Device,
10246                     _p_info: *const ImageSparseMemoryRequirementsInfo2,
10247                     _p_sparse_memory_requirement_count: *mut u32,
10248                     _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2,
10249                 ) {
10250                     panic!(concat!(
10251                         "Unable to load ",
10252                         stringify!(get_image_sparse_memory_requirements2_khr)
10253                     ))
10254                 }
10255                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10256                     b"vkGetImageSparseMemoryRequirements2KHR\0",
10257                 );
10258                 let val = _f(cname);
10259                 if val.is_null() {
10260                     get_image_sparse_memory_requirements2_khr
10261                 } else {
10262                     ::std::mem::transmute(val)
10263                 }
10264             },
10265         }
10266     }
10267     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetImageMemoryRequirements2KHR.html>"]
get_image_memory_requirements2_khr( &self, device: Device, p_info: *const ImageMemoryRequirementsInfo2, p_memory_requirements: *mut MemoryRequirements2, )10268     pub unsafe fn get_image_memory_requirements2_khr(
10269         &self,
10270         device: Device,
10271         p_info: *const ImageMemoryRequirementsInfo2,
10272         p_memory_requirements: *mut MemoryRequirements2,
10273     ) {
10274         (self.get_image_memory_requirements2_khr)(device, p_info, p_memory_requirements)
10275     }
10276     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetBufferMemoryRequirements2KHR.html>"]
get_buffer_memory_requirements2_khr( &self, device: Device, p_info: *const BufferMemoryRequirementsInfo2, p_memory_requirements: *mut MemoryRequirements2, )10277     pub unsafe fn get_buffer_memory_requirements2_khr(
10278         &self,
10279         device: Device,
10280         p_info: *const BufferMemoryRequirementsInfo2,
10281         p_memory_requirements: *mut MemoryRequirements2,
10282     ) {
10283         (self.get_buffer_memory_requirements2_khr)(device, p_info, p_memory_requirements)
10284     }
10285     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetImageSparseMemoryRequirements2KHR.html>"]
get_image_sparse_memory_requirements2_khr( &self, device: Device, p_info: *const ImageSparseMemoryRequirementsInfo2, p_sparse_memory_requirement_count: *mut u32, p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2, )10286     pub unsafe fn get_image_sparse_memory_requirements2_khr(
10287         &self,
10288         device: Device,
10289         p_info: *const ImageSparseMemoryRequirementsInfo2,
10290         p_sparse_memory_requirement_count: *mut u32,
10291         p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2,
10292     ) {
10293         (self.get_image_sparse_memory_requirements2_khr)(
10294             device,
10295             p_info,
10296             p_sparse_memory_requirement_count,
10297             p_sparse_memory_requirements,
10298         )
10299     }
10300 }
10301 #[doc = "Generated from 'VK_KHR_get_memory_requirements2'"]
10302 impl StructureType {
10303     pub const BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR: Self = Self::BUFFER_MEMORY_REQUIREMENTS_INFO_2;
10304     pub const IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR: Self = Self::IMAGE_MEMORY_REQUIREMENTS_INFO_2;
10305     pub const IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR: Self =
10306         Self::IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2;
10307     pub const MEMORY_REQUIREMENTS_2_KHR: Self = Self::MEMORY_REQUIREMENTS_2;
10308     pub const SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR: Self =
10309         Self::SPARSE_IMAGE_MEMORY_REQUIREMENTS_2;
10310 }
10311 impl KhrImageFormatListFn {
name() -> &'static ::std::ffi::CStr10312     pub fn name() -> &'static ::std::ffi::CStr {
10313         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_image_format_list\0") }
10314     }
10315     pub const SPEC_VERSION: u32 = 1u32;
10316 }
10317 #[derive(Clone)]
10318 pub struct KhrImageFormatListFn {}
10319 unsafe impl Send for KhrImageFormatListFn {}
10320 unsafe impl Sync for KhrImageFormatListFn {}
10321 impl KhrImageFormatListFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10322     pub fn load<F>(mut _f: F) -> Self
10323     where
10324         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10325     {
10326         Self {}
10327     }
10328 }
10329 #[doc = "Generated from 'VK_KHR_image_format_list'"]
10330 impl StructureType {
10331     pub const IMAGE_FORMAT_LIST_CREATE_INFO_KHR: Self = Self::IMAGE_FORMAT_LIST_CREATE_INFO;
10332 }
10333 impl ExtBlendOperationAdvancedFn {
name() -> &'static ::std::ffi::CStr10334     pub fn name() -> &'static ::std::ffi::CStr {
10335         unsafe {
10336             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_blend_operation_advanced\0")
10337         }
10338     }
10339     pub const SPEC_VERSION: u32 = 2u32;
10340 }
10341 #[derive(Clone)]
10342 pub struct ExtBlendOperationAdvancedFn {}
10343 unsafe impl Send for ExtBlendOperationAdvancedFn {}
10344 unsafe impl Sync for ExtBlendOperationAdvancedFn {}
10345 impl ExtBlendOperationAdvancedFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10346     pub fn load<F>(mut _f: F) -> Self
10347     where
10348         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10349     {
10350         Self {}
10351     }
10352 }
10353 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
10354 impl AccessFlags {
10355     pub const COLOR_ATTACHMENT_READ_NONCOHERENT_EXT: Self = Self(0b1000_0000_0000_0000_0000);
10356 }
10357 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
10358 impl BlendOp {
10359     pub const ZERO_EXT: Self = Self(1_000_148_000);
10360     pub const SRC_EXT: Self = Self(1_000_148_001);
10361     pub const DST_EXT: Self = Self(1_000_148_002);
10362     pub const SRC_OVER_EXT: Self = Self(1_000_148_003);
10363     pub const DST_OVER_EXT: Self = Self(1_000_148_004);
10364     pub const SRC_IN_EXT: Self = Self(1_000_148_005);
10365     pub const DST_IN_EXT: Self = Self(1_000_148_006);
10366     pub const SRC_OUT_EXT: Self = Self(1_000_148_007);
10367     pub const DST_OUT_EXT: Self = Self(1_000_148_008);
10368     pub const SRC_ATOP_EXT: Self = Self(1_000_148_009);
10369     pub const DST_ATOP_EXT: Self = Self(1_000_148_010);
10370     pub const XOR_EXT: Self = Self(1_000_148_011);
10371     pub const MULTIPLY_EXT: Self = Self(1_000_148_012);
10372     pub const SCREEN_EXT: Self = Self(1_000_148_013);
10373     pub const OVERLAY_EXT: Self = Self(1_000_148_014);
10374     pub const DARKEN_EXT: Self = Self(1_000_148_015);
10375     pub const LIGHTEN_EXT: Self = Self(1_000_148_016);
10376     pub const COLORDODGE_EXT: Self = Self(1_000_148_017);
10377     pub const COLORBURN_EXT: Self = Self(1_000_148_018);
10378     pub const HARDLIGHT_EXT: Self = Self(1_000_148_019);
10379     pub const SOFTLIGHT_EXT: Self = Self(1_000_148_020);
10380     pub const DIFFERENCE_EXT: Self = Self(1_000_148_021);
10381     pub const EXCLUSION_EXT: Self = Self(1_000_148_022);
10382     pub const INVERT_EXT: Self = Self(1_000_148_023);
10383     pub const INVERT_RGB_EXT: Self = Self(1_000_148_024);
10384     pub const LINEARDODGE_EXT: Self = Self(1_000_148_025);
10385     pub const LINEARBURN_EXT: Self = Self(1_000_148_026);
10386     pub const VIVIDLIGHT_EXT: Self = Self(1_000_148_027);
10387     pub const LINEARLIGHT_EXT: Self = Self(1_000_148_028);
10388     pub const PINLIGHT_EXT: Self = Self(1_000_148_029);
10389     pub const HARDMIX_EXT: Self = Self(1_000_148_030);
10390     pub const HSL_HUE_EXT: Self = Self(1_000_148_031);
10391     pub const HSL_SATURATION_EXT: Self = Self(1_000_148_032);
10392     pub const HSL_COLOR_EXT: Self = Self(1_000_148_033);
10393     pub const HSL_LUMINOSITY_EXT: Self = Self(1_000_148_034);
10394     pub const PLUS_EXT: Self = Self(1_000_148_035);
10395     pub const PLUS_CLAMPED_EXT: Self = Self(1_000_148_036);
10396     pub const PLUS_CLAMPED_ALPHA_EXT: Self = Self(1_000_148_037);
10397     pub const PLUS_DARKER_EXT: Self = Self(1_000_148_038);
10398     pub const MINUS_EXT: Self = Self(1_000_148_039);
10399     pub const MINUS_CLAMPED_EXT: Self = Self(1_000_148_040);
10400     pub const CONTRAST_EXT: Self = Self(1_000_148_041);
10401     pub const INVERT_OVG_EXT: Self = Self(1_000_148_042);
10402     pub const RED_EXT: Self = Self(1_000_148_043);
10403     pub const GREEN_EXT: Self = Self(1_000_148_044);
10404     pub const BLUE_EXT: Self = Self(1_000_148_045);
10405 }
10406 #[doc = "Generated from 'VK_EXT_blend_operation_advanced'"]
10407 impl StructureType {
10408     pub const PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: Self = Self(1_000_148_000);
10409     pub const PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: Self = Self(1_000_148_001);
10410     pub const PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: Self = Self(1_000_148_002);
10411 }
10412 impl NvFragmentCoverageToColorFn {
name() -> &'static ::std::ffi::CStr10413     pub fn name() -> &'static ::std::ffi::CStr {
10414         unsafe {
10415             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_fragment_coverage_to_color\0")
10416         }
10417     }
10418     pub const SPEC_VERSION: u32 = 1u32;
10419 }
10420 #[derive(Clone)]
10421 pub struct NvFragmentCoverageToColorFn {}
10422 unsafe impl Send for NvFragmentCoverageToColorFn {}
10423 unsafe impl Sync for NvFragmentCoverageToColorFn {}
10424 impl NvFragmentCoverageToColorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10425     pub fn load<F>(mut _f: F) -> Self
10426     where
10427         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10428     {
10429         Self {}
10430     }
10431 }
10432 #[doc = "Generated from 'VK_NV_fragment_coverage_to_color'"]
10433 impl StructureType {
10434     pub const PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: Self = Self(1_000_149_000);
10435 }
10436 impl KhrAccelerationStructureFn {
name() -> &'static ::std::ffi::CStr10437     pub fn name() -> &'static ::std::ffi::CStr {
10438         unsafe {
10439             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_acceleration_structure\0")
10440         }
10441     }
10442     pub const SPEC_VERSION: u32 = 13u32;
10443 }
10444 #[allow(non_camel_case_types)]
10445 pub type PFN_vkCreateAccelerationStructureKHR = unsafe extern "system" fn(
10446     device: Device,
10447     p_create_info: *const AccelerationStructureCreateInfoKHR,
10448     p_allocator: *const AllocationCallbacks,
10449     p_acceleration_structure: *mut AccelerationStructureKHR,
10450 ) -> Result;
10451 #[allow(non_camel_case_types)]
10452 pub type PFN_vkDestroyAccelerationStructureKHR = unsafe extern "system" fn(
10453     device: Device,
10454     acceleration_structure: AccelerationStructureKHR,
10455     p_allocator: *const AllocationCallbacks,
10456 );
10457 #[allow(non_camel_case_types)]
10458 pub type PFN_vkCmdBuildAccelerationStructuresKHR = unsafe extern "system" fn(
10459     command_buffer: CommandBuffer,
10460     info_count: u32,
10461     p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
10462     pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
10463 );
10464 #[allow(non_camel_case_types)]
10465 pub type PFN_vkCmdBuildAccelerationStructuresIndirectKHR = unsafe extern "system" fn(
10466     command_buffer: CommandBuffer,
10467     info_count: u32,
10468     p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
10469     p_indirect_device_addresses: *const DeviceAddress,
10470     p_indirect_strides: *const u32,
10471     pp_max_primitive_counts: *const *const u32,
10472 );
10473 #[allow(non_camel_case_types)]
10474 pub type PFN_vkBuildAccelerationStructuresKHR = unsafe extern "system" fn(
10475     device: Device,
10476     deferred_operation: DeferredOperationKHR,
10477     info_count: u32,
10478     p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
10479     pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
10480 ) -> Result;
10481 #[allow(non_camel_case_types)]
10482 pub type PFN_vkCopyAccelerationStructureKHR = unsafe extern "system" fn(
10483     device: Device,
10484     deferred_operation: DeferredOperationKHR,
10485     p_info: *const CopyAccelerationStructureInfoKHR,
10486 ) -> Result;
10487 #[allow(non_camel_case_types)]
10488 pub type PFN_vkCopyAccelerationStructureToMemoryKHR = unsafe extern "system" fn(
10489     device: Device,
10490     deferred_operation: DeferredOperationKHR,
10491     p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
10492 ) -> Result;
10493 #[allow(non_camel_case_types)]
10494 pub type PFN_vkCopyMemoryToAccelerationStructureKHR = unsafe extern "system" fn(
10495     device: Device,
10496     deferred_operation: DeferredOperationKHR,
10497     p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
10498 ) -> Result;
10499 #[allow(non_camel_case_types)]
10500 pub type PFN_vkWriteAccelerationStructuresPropertiesKHR = unsafe extern "system" fn(
10501     device: Device,
10502     acceleration_structure_count: u32,
10503     p_acceleration_structures: *const AccelerationStructureKHR,
10504     query_type: QueryType,
10505     data_size: usize,
10506     p_data: *mut c_void,
10507     stride: usize,
10508 ) -> Result;
10509 #[allow(non_camel_case_types)]
10510 pub type PFN_vkCmdCopyAccelerationStructureKHR = unsafe extern "system" fn(
10511     command_buffer: CommandBuffer,
10512     p_info: *const CopyAccelerationStructureInfoKHR,
10513 );
10514 #[allow(non_camel_case_types)]
10515 pub type PFN_vkCmdCopyAccelerationStructureToMemoryKHR = unsafe extern "system" fn(
10516     command_buffer: CommandBuffer,
10517     p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
10518 );
10519 #[allow(non_camel_case_types)]
10520 pub type PFN_vkCmdCopyMemoryToAccelerationStructureKHR = unsafe extern "system" fn(
10521     command_buffer: CommandBuffer,
10522     p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
10523 );
10524 #[allow(non_camel_case_types)]
10525 pub type PFN_vkGetAccelerationStructureDeviceAddressKHR =
10526     unsafe extern "system" fn(
10527         device: Device,
10528         p_info: *const AccelerationStructureDeviceAddressInfoKHR,
10529     ) -> DeviceAddress;
10530 #[allow(non_camel_case_types)]
10531 pub type PFN_vkCmdWriteAccelerationStructuresPropertiesKHR = unsafe extern "system" fn(
10532     command_buffer: CommandBuffer,
10533     acceleration_structure_count: u32,
10534     p_acceleration_structures: *const AccelerationStructureKHR,
10535     query_type: QueryType,
10536     query_pool: QueryPool,
10537     first_query: u32,
10538 );
10539 #[allow(non_camel_case_types)]
10540 pub type PFN_vkGetDeviceAccelerationStructureCompatibilityKHR = unsafe extern "system" fn(
10541     device: Device,
10542     p_version_info: *const AccelerationStructureVersionInfoKHR,
10543     p_compatibility: *mut AccelerationStructureCompatibilityKHR,
10544 );
10545 #[allow(non_camel_case_types)]
10546 pub type PFN_vkGetAccelerationStructureBuildSizesKHR = unsafe extern "system" fn(
10547     device: Device,
10548     build_type: AccelerationStructureBuildTypeKHR,
10549     p_build_info: *const AccelerationStructureBuildGeometryInfoKHR,
10550     p_max_primitive_counts: *const u32,
10551     p_size_info: *mut AccelerationStructureBuildSizesInfoKHR,
10552 );
10553 #[derive(Clone)]
10554 pub struct KhrAccelerationStructureFn {
10555     pub create_acceleration_structure_khr: PFN_vkCreateAccelerationStructureKHR,
10556     pub destroy_acceleration_structure_khr: PFN_vkDestroyAccelerationStructureKHR,
10557     pub cmd_build_acceleration_structures_khr: PFN_vkCmdBuildAccelerationStructuresKHR,
10558     pub cmd_build_acceleration_structures_indirect_khr:
10559         PFN_vkCmdBuildAccelerationStructuresIndirectKHR,
10560     pub build_acceleration_structures_khr: PFN_vkBuildAccelerationStructuresKHR,
10561     pub copy_acceleration_structure_khr: PFN_vkCopyAccelerationStructureKHR,
10562     pub copy_acceleration_structure_to_memory_khr: PFN_vkCopyAccelerationStructureToMemoryKHR,
10563     pub copy_memory_to_acceleration_structure_khr: PFN_vkCopyMemoryToAccelerationStructureKHR,
10564     pub write_acceleration_structures_properties_khr:
10565         PFN_vkWriteAccelerationStructuresPropertiesKHR,
10566     pub cmd_copy_acceleration_structure_khr: PFN_vkCmdCopyAccelerationStructureKHR,
10567     pub cmd_copy_acceleration_structure_to_memory_khr:
10568         PFN_vkCmdCopyAccelerationStructureToMemoryKHR,
10569     pub cmd_copy_memory_to_acceleration_structure_khr:
10570         PFN_vkCmdCopyMemoryToAccelerationStructureKHR,
10571     pub get_acceleration_structure_device_address_khr:
10572         PFN_vkGetAccelerationStructureDeviceAddressKHR,
10573     pub cmd_write_acceleration_structures_properties_khr:
10574         PFN_vkCmdWriteAccelerationStructuresPropertiesKHR,
10575     pub get_device_acceleration_structure_compatibility_khr:
10576         PFN_vkGetDeviceAccelerationStructureCompatibilityKHR,
10577     pub get_acceleration_structure_build_sizes_khr: PFN_vkGetAccelerationStructureBuildSizesKHR,
10578 }
10579 unsafe impl Send for KhrAccelerationStructureFn {}
10580 unsafe impl Sync for KhrAccelerationStructureFn {}
10581 impl KhrAccelerationStructureFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,10582     pub fn load<F>(mut _f: F) -> Self
10583     where
10584         F: FnMut(&::std::ffi::CStr) -> *const c_void,
10585     {
10586         Self {
10587             create_acceleration_structure_khr: unsafe {
10588                 unsafe extern "system" fn create_acceleration_structure_khr(
10589                     _device: Device,
10590                     _p_create_info: *const AccelerationStructureCreateInfoKHR,
10591                     _p_allocator: *const AllocationCallbacks,
10592                     _p_acceleration_structure: *mut AccelerationStructureKHR,
10593                 ) -> Result {
10594                     panic!(concat!(
10595                         "Unable to load ",
10596                         stringify!(create_acceleration_structure_khr)
10597                     ))
10598                 }
10599                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10600                     b"vkCreateAccelerationStructureKHR\0",
10601                 );
10602                 let val = _f(cname);
10603                 if val.is_null() {
10604                     create_acceleration_structure_khr
10605                 } else {
10606                     ::std::mem::transmute(val)
10607                 }
10608             },
10609             destroy_acceleration_structure_khr: unsafe {
10610                 unsafe extern "system" fn destroy_acceleration_structure_khr(
10611                     _device: Device,
10612                     _acceleration_structure: AccelerationStructureKHR,
10613                     _p_allocator: *const AllocationCallbacks,
10614                 ) {
10615                     panic!(concat!(
10616                         "Unable to load ",
10617                         stringify!(destroy_acceleration_structure_khr)
10618                     ))
10619                 }
10620                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10621                     b"vkDestroyAccelerationStructureKHR\0",
10622                 );
10623                 let val = _f(cname);
10624                 if val.is_null() {
10625                     destroy_acceleration_structure_khr
10626                 } else {
10627                     ::std::mem::transmute(val)
10628                 }
10629             },
10630             cmd_build_acceleration_structures_khr: unsafe {
10631                 unsafe extern "system" fn cmd_build_acceleration_structures_khr(
10632                     _command_buffer: CommandBuffer,
10633                     _info_count: u32,
10634                     _p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
10635                     _pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
10636                 ) {
10637                     panic!(concat!(
10638                         "Unable to load ",
10639                         stringify!(cmd_build_acceleration_structures_khr)
10640                     ))
10641                 }
10642                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10643                     b"vkCmdBuildAccelerationStructuresKHR\0",
10644                 );
10645                 let val = _f(cname);
10646                 if val.is_null() {
10647                     cmd_build_acceleration_structures_khr
10648                 } else {
10649                     ::std::mem::transmute(val)
10650                 }
10651             },
10652             cmd_build_acceleration_structures_indirect_khr: unsafe {
10653                 unsafe extern "system" fn cmd_build_acceleration_structures_indirect_khr(
10654                     _command_buffer: CommandBuffer,
10655                     _info_count: u32,
10656                     _p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
10657                     _p_indirect_device_addresses: *const DeviceAddress,
10658                     _p_indirect_strides: *const u32,
10659                     _pp_max_primitive_counts: *const *const u32,
10660                 ) {
10661                     panic!(concat!(
10662                         "Unable to load ",
10663                         stringify!(cmd_build_acceleration_structures_indirect_khr)
10664                     ))
10665                 }
10666                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10667                     b"vkCmdBuildAccelerationStructuresIndirectKHR\0",
10668                 );
10669                 let val = _f(cname);
10670                 if val.is_null() {
10671                     cmd_build_acceleration_structures_indirect_khr
10672                 } else {
10673                     ::std::mem::transmute(val)
10674                 }
10675             },
10676             build_acceleration_structures_khr: unsafe {
10677                 unsafe extern "system" fn build_acceleration_structures_khr(
10678                     _device: Device,
10679                     _deferred_operation: DeferredOperationKHR,
10680                     _info_count: u32,
10681                     _p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
10682                     _pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
10683                 ) -> Result {
10684                     panic!(concat!(
10685                         "Unable to load ",
10686                         stringify!(build_acceleration_structures_khr)
10687                     ))
10688                 }
10689                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10690                     b"vkBuildAccelerationStructuresKHR\0",
10691                 );
10692                 let val = _f(cname);
10693                 if val.is_null() {
10694                     build_acceleration_structures_khr
10695                 } else {
10696                     ::std::mem::transmute(val)
10697                 }
10698             },
10699             copy_acceleration_structure_khr: unsafe {
10700                 unsafe extern "system" fn copy_acceleration_structure_khr(
10701                     _device: Device,
10702                     _deferred_operation: DeferredOperationKHR,
10703                     _p_info: *const CopyAccelerationStructureInfoKHR,
10704                 ) -> Result {
10705                     panic!(concat!(
10706                         "Unable to load ",
10707                         stringify!(copy_acceleration_structure_khr)
10708                     ))
10709                 }
10710                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10711                     b"vkCopyAccelerationStructureKHR\0",
10712                 );
10713                 let val = _f(cname);
10714                 if val.is_null() {
10715                     copy_acceleration_structure_khr
10716                 } else {
10717                     ::std::mem::transmute(val)
10718                 }
10719             },
10720             copy_acceleration_structure_to_memory_khr: unsafe {
10721                 unsafe extern "system" fn copy_acceleration_structure_to_memory_khr(
10722                     _device: Device,
10723                     _deferred_operation: DeferredOperationKHR,
10724                     _p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
10725                 ) -> Result {
10726                     panic!(concat!(
10727                         "Unable to load ",
10728                         stringify!(copy_acceleration_structure_to_memory_khr)
10729                     ))
10730                 }
10731                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10732                     b"vkCopyAccelerationStructureToMemoryKHR\0",
10733                 );
10734                 let val = _f(cname);
10735                 if val.is_null() {
10736                     copy_acceleration_structure_to_memory_khr
10737                 } else {
10738                     ::std::mem::transmute(val)
10739                 }
10740             },
10741             copy_memory_to_acceleration_structure_khr: unsafe {
10742                 unsafe extern "system" fn copy_memory_to_acceleration_structure_khr(
10743                     _device: Device,
10744                     _deferred_operation: DeferredOperationKHR,
10745                     _p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
10746                 ) -> Result {
10747                     panic!(concat!(
10748                         "Unable to load ",
10749                         stringify!(copy_memory_to_acceleration_structure_khr)
10750                     ))
10751                 }
10752                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10753                     b"vkCopyMemoryToAccelerationStructureKHR\0",
10754                 );
10755                 let val = _f(cname);
10756                 if val.is_null() {
10757                     copy_memory_to_acceleration_structure_khr
10758                 } else {
10759                     ::std::mem::transmute(val)
10760                 }
10761             },
10762             write_acceleration_structures_properties_khr: unsafe {
10763                 unsafe extern "system" fn write_acceleration_structures_properties_khr(
10764                     _device: Device,
10765                     _acceleration_structure_count: u32,
10766                     _p_acceleration_structures: *const AccelerationStructureKHR,
10767                     _query_type: QueryType,
10768                     _data_size: usize,
10769                     _p_data: *mut c_void,
10770                     _stride: usize,
10771                 ) -> Result {
10772                     panic!(concat!(
10773                         "Unable to load ",
10774                         stringify!(write_acceleration_structures_properties_khr)
10775                     ))
10776                 }
10777                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10778                     b"vkWriteAccelerationStructuresPropertiesKHR\0",
10779                 );
10780                 let val = _f(cname);
10781                 if val.is_null() {
10782                     write_acceleration_structures_properties_khr
10783                 } else {
10784                     ::std::mem::transmute(val)
10785                 }
10786             },
10787             cmd_copy_acceleration_structure_khr: unsafe {
10788                 unsafe extern "system" fn cmd_copy_acceleration_structure_khr(
10789                     _command_buffer: CommandBuffer,
10790                     _p_info: *const CopyAccelerationStructureInfoKHR,
10791                 ) {
10792                     panic!(concat!(
10793                         "Unable to load ",
10794                         stringify!(cmd_copy_acceleration_structure_khr)
10795                     ))
10796                 }
10797                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10798                     b"vkCmdCopyAccelerationStructureKHR\0",
10799                 );
10800                 let val = _f(cname);
10801                 if val.is_null() {
10802                     cmd_copy_acceleration_structure_khr
10803                 } else {
10804                     ::std::mem::transmute(val)
10805                 }
10806             },
10807             cmd_copy_acceleration_structure_to_memory_khr: unsafe {
10808                 unsafe extern "system" fn cmd_copy_acceleration_structure_to_memory_khr(
10809                     _command_buffer: CommandBuffer,
10810                     _p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
10811                 ) {
10812                     panic!(concat!(
10813                         "Unable to load ",
10814                         stringify!(cmd_copy_acceleration_structure_to_memory_khr)
10815                     ))
10816                 }
10817                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10818                     b"vkCmdCopyAccelerationStructureToMemoryKHR\0",
10819                 );
10820                 let val = _f(cname);
10821                 if val.is_null() {
10822                     cmd_copy_acceleration_structure_to_memory_khr
10823                 } else {
10824                     ::std::mem::transmute(val)
10825                 }
10826             },
10827             cmd_copy_memory_to_acceleration_structure_khr: unsafe {
10828                 unsafe extern "system" fn cmd_copy_memory_to_acceleration_structure_khr(
10829                     _command_buffer: CommandBuffer,
10830                     _p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
10831                 ) {
10832                     panic!(concat!(
10833                         "Unable to load ",
10834                         stringify!(cmd_copy_memory_to_acceleration_structure_khr)
10835                     ))
10836                 }
10837                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10838                     b"vkCmdCopyMemoryToAccelerationStructureKHR\0",
10839                 );
10840                 let val = _f(cname);
10841                 if val.is_null() {
10842                     cmd_copy_memory_to_acceleration_structure_khr
10843                 } else {
10844                     ::std::mem::transmute(val)
10845                 }
10846             },
10847             get_acceleration_structure_device_address_khr: unsafe {
10848                 unsafe extern "system" fn get_acceleration_structure_device_address_khr(
10849                     _device: Device,
10850                     _p_info: *const AccelerationStructureDeviceAddressInfoKHR,
10851                 ) -> DeviceAddress {
10852                     panic!(concat!(
10853                         "Unable to load ",
10854                         stringify!(get_acceleration_structure_device_address_khr)
10855                     ))
10856                 }
10857                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10858                     b"vkGetAccelerationStructureDeviceAddressKHR\0",
10859                 );
10860                 let val = _f(cname);
10861                 if val.is_null() {
10862                     get_acceleration_structure_device_address_khr
10863                 } else {
10864                     ::std::mem::transmute(val)
10865                 }
10866             },
10867             cmd_write_acceleration_structures_properties_khr: unsafe {
10868                 unsafe extern "system" fn cmd_write_acceleration_structures_properties_khr(
10869                     _command_buffer: CommandBuffer,
10870                     _acceleration_structure_count: u32,
10871                     _p_acceleration_structures: *const AccelerationStructureKHR,
10872                     _query_type: QueryType,
10873                     _query_pool: QueryPool,
10874                     _first_query: u32,
10875                 ) {
10876                     panic!(concat!(
10877                         "Unable to load ",
10878                         stringify!(cmd_write_acceleration_structures_properties_khr)
10879                     ))
10880                 }
10881                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10882                     b"vkCmdWriteAccelerationStructuresPropertiesKHR\0",
10883                 );
10884                 let val = _f(cname);
10885                 if val.is_null() {
10886                     cmd_write_acceleration_structures_properties_khr
10887                 } else {
10888                     ::std::mem::transmute(val)
10889                 }
10890             },
10891             get_device_acceleration_structure_compatibility_khr: unsafe {
10892                 unsafe extern "system" fn get_device_acceleration_structure_compatibility_khr(
10893                     _device: Device,
10894                     _p_version_info: *const AccelerationStructureVersionInfoKHR,
10895                     _p_compatibility: *mut AccelerationStructureCompatibilityKHR,
10896                 ) {
10897                     panic!(concat!(
10898                         "Unable to load ",
10899                         stringify!(get_device_acceleration_structure_compatibility_khr)
10900                     ))
10901                 }
10902                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10903                     b"vkGetDeviceAccelerationStructureCompatibilityKHR\0",
10904                 );
10905                 let val = _f(cname);
10906                 if val.is_null() {
10907                     get_device_acceleration_structure_compatibility_khr
10908                 } else {
10909                     ::std::mem::transmute(val)
10910                 }
10911             },
10912             get_acceleration_structure_build_sizes_khr: unsafe {
10913                 unsafe extern "system" fn get_acceleration_structure_build_sizes_khr(
10914                     _device: Device,
10915                     _build_type: AccelerationStructureBuildTypeKHR,
10916                     _p_build_info: *const AccelerationStructureBuildGeometryInfoKHR,
10917                     _p_max_primitive_counts: *const u32,
10918                     _p_size_info: *mut AccelerationStructureBuildSizesInfoKHR,
10919                 ) {
10920                     panic!(concat!(
10921                         "Unable to load ",
10922                         stringify!(get_acceleration_structure_build_sizes_khr)
10923                     ))
10924                 }
10925                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
10926                     b"vkGetAccelerationStructureBuildSizesKHR\0",
10927                 );
10928                 let val = _f(cname);
10929                 if val.is_null() {
10930                     get_acceleration_structure_build_sizes_khr
10931                 } else {
10932                     ::std::mem::transmute(val)
10933                 }
10934             },
10935         }
10936     }
10937     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateAccelerationStructureKHR.html>"]
create_acceleration_structure_khr( &self, device: Device, p_create_info: *const AccelerationStructureCreateInfoKHR, p_allocator: *const AllocationCallbacks, p_acceleration_structure: *mut AccelerationStructureKHR, ) -> Result10938     pub unsafe fn create_acceleration_structure_khr(
10939         &self,
10940         device: Device,
10941         p_create_info: *const AccelerationStructureCreateInfoKHR,
10942         p_allocator: *const AllocationCallbacks,
10943         p_acceleration_structure: *mut AccelerationStructureKHR,
10944     ) -> Result {
10945         (self.create_acceleration_structure_khr)(
10946             device,
10947             p_create_info,
10948             p_allocator,
10949             p_acceleration_structure,
10950         )
10951     }
10952     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroyAccelerationStructureKHR.html>"]
destroy_acceleration_structure_khr( &self, device: Device, acceleration_structure: AccelerationStructureKHR, p_allocator: *const AllocationCallbacks, )10953     pub unsafe fn destroy_acceleration_structure_khr(
10954         &self,
10955         device: Device,
10956         acceleration_structure: AccelerationStructureKHR,
10957         p_allocator: *const AllocationCallbacks,
10958     ) {
10959         (self.destroy_acceleration_structure_khr)(device, acceleration_structure, p_allocator)
10960     }
10961     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBuildAccelerationStructuresKHR.html>"]
cmd_build_acceleration_structures_khr( &self, command_buffer: CommandBuffer, info_count: u32, p_infos: *const AccelerationStructureBuildGeometryInfoKHR, pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR, )10962     pub unsafe fn cmd_build_acceleration_structures_khr(
10963         &self,
10964         command_buffer: CommandBuffer,
10965         info_count: u32,
10966         p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
10967         pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
10968     ) {
10969         (self.cmd_build_acceleration_structures_khr)(
10970             command_buffer,
10971             info_count,
10972             p_infos,
10973             pp_build_range_infos,
10974         )
10975     }
10976     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBuildAccelerationStructuresIndirectKHR.html>"]
cmd_build_acceleration_structures_indirect_khr( &self, command_buffer: CommandBuffer, info_count: u32, p_infos: *const AccelerationStructureBuildGeometryInfoKHR, p_indirect_device_addresses: *const DeviceAddress, p_indirect_strides: *const u32, pp_max_primitive_counts: *const *const u32, )10977     pub unsafe fn cmd_build_acceleration_structures_indirect_khr(
10978         &self,
10979         command_buffer: CommandBuffer,
10980         info_count: u32,
10981         p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
10982         p_indirect_device_addresses: *const DeviceAddress,
10983         p_indirect_strides: *const u32,
10984         pp_max_primitive_counts: *const *const u32,
10985     ) {
10986         (self.cmd_build_acceleration_structures_indirect_khr)(
10987             command_buffer,
10988             info_count,
10989             p_infos,
10990             p_indirect_device_addresses,
10991             p_indirect_strides,
10992             pp_max_primitive_counts,
10993         )
10994     }
10995     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkBuildAccelerationStructuresKHR.html>"]
build_acceleration_structures_khr( &self, device: Device, deferred_operation: DeferredOperationKHR, info_count: u32, p_infos: *const AccelerationStructureBuildGeometryInfoKHR, pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR, ) -> Result10996     pub unsafe fn build_acceleration_structures_khr(
10997         &self,
10998         device: Device,
10999         deferred_operation: DeferredOperationKHR,
11000         info_count: u32,
11001         p_infos: *const AccelerationStructureBuildGeometryInfoKHR,
11002         pp_build_range_infos: *const *const AccelerationStructureBuildRangeInfoKHR,
11003     ) -> Result {
11004         (self.build_acceleration_structures_khr)(
11005             device,
11006             deferred_operation,
11007             info_count,
11008             p_infos,
11009             pp_build_range_infos,
11010         )
11011     }
11012     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCopyAccelerationStructureKHR.html>"]
copy_acceleration_structure_khr( &self, device: Device, deferred_operation: DeferredOperationKHR, p_info: *const CopyAccelerationStructureInfoKHR, ) -> Result11013     pub unsafe fn copy_acceleration_structure_khr(
11014         &self,
11015         device: Device,
11016         deferred_operation: DeferredOperationKHR,
11017         p_info: *const CopyAccelerationStructureInfoKHR,
11018     ) -> Result {
11019         (self.copy_acceleration_structure_khr)(device, deferred_operation, p_info)
11020     }
11021     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCopyAccelerationStructureToMemoryKHR.html>"]
copy_acceleration_structure_to_memory_khr( &self, device: Device, deferred_operation: DeferredOperationKHR, p_info: *const CopyAccelerationStructureToMemoryInfoKHR, ) -> Result11022     pub unsafe fn copy_acceleration_structure_to_memory_khr(
11023         &self,
11024         device: Device,
11025         deferred_operation: DeferredOperationKHR,
11026         p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
11027     ) -> Result {
11028         (self.copy_acceleration_structure_to_memory_khr)(device, deferred_operation, p_info)
11029     }
11030     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCopyMemoryToAccelerationStructureKHR.html>"]
copy_memory_to_acceleration_structure_khr( &self, device: Device, deferred_operation: DeferredOperationKHR, p_info: *const CopyMemoryToAccelerationStructureInfoKHR, ) -> Result11031     pub unsafe fn copy_memory_to_acceleration_structure_khr(
11032         &self,
11033         device: Device,
11034         deferred_operation: DeferredOperationKHR,
11035         p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
11036     ) -> Result {
11037         (self.copy_memory_to_acceleration_structure_khr)(device, deferred_operation, p_info)
11038     }
11039     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkWriteAccelerationStructuresPropertiesKHR.html>"]
write_acceleration_structures_properties_khr( &self, device: Device, acceleration_structure_count: u32, p_acceleration_structures: *const AccelerationStructureKHR, query_type: QueryType, data_size: usize, p_data: *mut c_void, stride: usize, ) -> Result11040     pub unsafe fn write_acceleration_structures_properties_khr(
11041         &self,
11042         device: Device,
11043         acceleration_structure_count: u32,
11044         p_acceleration_structures: *const AccelerationStructureKHR,
11045         query_type: QueryType,
11046         data_size: usize,
11047         p_data: *mut c_void,
11048         stride: usize,
11049     ) -> Result {
11050         (self.write_acceleration_structures_properties_khr)(
11051             device,
11052             acceleration_structure_count,
11053             p_acceleration_structures,
11054             query_type,
11055             data_size,
11056             p_data,
11057             stride,
11058         )
11059     }
11060     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdCopyAccelerationStructureKHR.html>"]
cmd_copy_acceleration_structure_khr( &self, command_buffer: CommandBuffer, p_info: *const CopyAccelerationStructureInfoKHR, )11061     pub unsafe fn cmd_copy_acceleration_structure_khr(
11062         &self,
11063         command_buffer: CommandBuffer,
11064         p_info: *const CopyAccelerationStructureInfoKHR,
11065     ) {
11066         (self.cmd_copy_acceleration_structure_khr)(command_buffer, p_info)
11067     }
11068     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdCopyAccelerationStructureToMemoryKHR.html>"]
cmd_copy_acceleration_structure_to_memory_khr( &self, command_buffer: CommandBuffer, p_info: *const CopyAccelerationStructureToMemoryInfoKHR, )11069     pub unsafe fn cmd_copy_acceleration_structure_to_memory_khr(
11070         &self,
11071         command_buffer: CommandBuffer,
11072         p_info: *const CopyAccelerationStructureToMemoryInfoKHR,
11073     ) {
11074         (self.cmd_copy_acceleration_structure_to_memory_khr)(command_buffer, p_info)
11075     }
11076     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdCopyMemoryToAccelerationStructureKHR.html>"]
cmd_copy_memory_to_acceleration_structure_khr( &self, command_buffer: CommandBuffer, p_info: *const CopyMemoryToAccelerationStructureInfoKHR, )11077     pub unsafe fn cmd_copy_memory_to_acceleration_structure_khr(
11078         &self,
11079         command_buffer: CommandBuffer,
11080         p_info: *const CopyMemoryToAccelerationStructureInfoKHR,
11081     ) {
11082         (self.cmd_copy_memory_to_acceleration_structure_khr)(command_buffer, p_info)
11083     }
11084     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetAccelerationStructureDeviceAddressKHR.html>"]
get_acceleration_structure_device_address_khr( &self, device: Device, p_info: *const AccelerationStructureDeviceAddressInfoKHR, ) -> DeviceAddress11085     pub unsafe fn get_acceleration_structure_device_address_khr(
11086         &self,
11087         device: Device,
11088         p_info: *const AccelerationStructureDeviceAddressInfoKHR,
11089     ) -> DeviceAddress {
11090         (self.get_acceleration_structure_device_address_khr)(device, p_info)
11091     }
11092     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdWriteAccelerationStructuresPropertiesKHR.html>"]
cmd_write_acceleration_structures_properties_khr( &self, command_buffer: CommandBuffer, acceleration_structure_count: u32, p_acceleration_structures: *const AccelerationStructureKHR, query_type: QueryType, query_pool: QueryPool, first_query: u32, )11093     pub unsafe fn cmd_write_acceleration_structures_properties_khr(
11094         &self,
11095         command_buffer: CommandBuffer,
11096         acceleration_structure_count: u32,
11097         p_acceleration_structures: *const AccelerationStructureKHR,
11098         query_type: QueryType,
11099         query_pool: QueryPool,
11100         first_query: u32,
11101     ) {
11102         (self.cmd_write_acceleration_structures_properties_khr)(
11103             command_buffer,
11104             acceleration_structure_count,
11105             p_acceleration_structures,
11106             query_type,
11107             query_pool,
11108             first_query,
11109         )
11110     }
11111     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeviceAccelerationStructureCompatibilityKHR.html>"]
get_device_acceleration_structure_compatibility_khr( &self, device: Device, p_version_info: *const AccelerationStructureVersionInfoKHR, p_compatibility: *mut AccelerationStructureCompatibilityKHR, )11112     pub unsafe fn get_device_acceleration_structure_compatibility_khr(
11113         &self,
11114         device: Device,
11115         p_version_info: *const AccelerationStructureVersionInfoKHR,
11116         p_compatibility: *mut AccelerationStructureCompatibilityKHR,
11117     ) {
11118         (self.get_device_acceleration_structure_compatibility_khr)(
11119             device,
11120             p_version_info,
11121             p_compatibility,
11122         )
11123     }
11124     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetAccelerationStructureBuildSizesKHR.html>"]
get_acceleration_structure_build_sizes_khr( &self, device: Device, build_type: AccelerationStructureBuildTypeKHR, p_build_info: *const AccelerationStructureBuildGeometryInfoKHR, p_max_primitive_counts: *const u32, p_size_info: *mut AccelerationStructureBuildSizesInfoKHR, )11125     pub unsafe fn get_acceleration_structure_build_sizes_khr(
11126         &self,
11127         device: Device,
11128         build_type: AccelerationStructureBuildTypeKHR,
11129         p_build_info: *const AccelerationStructureBuildGeometryInfoKHR,
11130         p_max_primitive_counts: *const u32,
11131         p_size_info: *mut AccelerationStructureBuildSizesInfoKHR,
11132     ) {
11133         (self.get_acceleration_structure_build_sizes_khr)(
11134             device,
11135             build_type,
11136             p_build_info,
11137             p_max_primitive_counts,
11138             p_size_info,
11139         )
11140     }
11141 }
11142 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11143 impl AccessFlags {
11144     pub const ACCELERATION_STRUCTURE_READ_KHR: Self = Self(0b10_0000_0000_0000_0000_0000);
11145     pub const ACCELERATION_STRUCTURE_WRITE_KHR: Self = Self(0b100_0000_0000_0000_0000_0000);
11146 }
11147 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11148 impl BufferUsageFlags {
11149     pub const ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_KHR: Self =
11150         Self(0b1000_0000_0000_0000_0000);
11151     pub const ACCELERATION_STRUCTURE_STORAGE_KHR: Self = Self(0b1_0000_0000_0000_0000_0000);
11152 }
11153 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11154 impl DebugReportObjectTypeEXT {
11155     pub const ACCELERATION_STRUCTURE_KHR: Self = Self(1_000_150_000);
11156 }
11157 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11158 impl DescriptorType {
11159     pub const ACCELERATION_STRUCTURE_KHR: Self = Self(1_000_150_000);
11160 }
11161 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11162 impl FormatFeatureFlags {
11163     pub const ACCELERATION_STRUCTURE_VERTEX_BUFFER_KHR: Self =
11164         Self(0b10_0000_0000_0000_0000_0000_0000_0000);
11165 }
11166 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11167 impl FormatFeatureFlags2KHR {
11168     pub const ACCELERATION_STRUCTURE_VERTEX_BUFFER: Self =
11169         Self(0b10_0000_0000_0000_0000_0000_0000_0000);
11170 }
11171 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11172 impl IndexType {
11173     pub const NONE_KHR: Self = Self(1_000_165_000);
11174 }
11175 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11176 impl ObjectType {
11177     pub const ACCELERATION_STRUCTURE_KHR: Self = Self(1_000_150_000);
11178 }
11179 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11180 impl PipelineStageFlags {
11181     pub const ACCELERATION_STRUCTURE_BUILD_KHR: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
11182 }
11183 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11184 impl QueryType {
11185     pub const ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR: Self = Self(1_000_150_000);
11186     pub const ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR: Self = Self(1_000_150_001);
11187 }
11188 #[doc = "Generated from 'VK_KHR_acceleration_structure'"]
11189 impl StructureType {
11190     pub const WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: Self = Self(1_000_150_007);
11191     pub const ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR: Self = Self(1_000_150_000);
11192     pub const ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR: Self = Self(1_000_150_002);
11193     pub const ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR: Self = Self(1_000_150_003);
11194     pub const ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR: Self = Self(1_000_150_004);
11195     pub const ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR: Self = Self(1_000_150_005);
11196     pub const ACCELERATION_STRUCTURE_GEOMETRY_KHR: Self = Self(1_000_150_006);
11197     pub const ACCELERATION_STRUCTURE_VERSION_INFO_KHR: Self = Self(1_000_150_009);
11198     pub const COPY_ACCELERATION_STRUCTURE_INFO_KHR: Self = Self(1_000_150_010);
11199     pub const COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR: Self = Self(1_000_150_011);
11200     pub const COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR: Self = Self(1_000_150_012);
11201     pub const PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: Self = Self(1_000_150_013);
11202     pub const PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: Self = Self(1_000_150_014);
11203     pub const ACCELERATION_STRUCTURE_CREATE_INFO_KHR: Self = Self(1_000_150_017);
11204     pub const ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR: Self = Self(1_000_150_020);
11205 }
11206 impl KhrRayTracingPipelineFn {
name() -> &'static ::std::ffi::CStr11207     pub fn name() -> &'static ::std::ffi::CStr {
11208         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_ray_tracing_pipeline\0") }
11209     }
11210     pub const SPEC_VERSION: u32 = 1u32;
11211 }
11212 #[allow(non_camel_case_types)]
11213 pub type PFN_vkCmdTraceRaysKHR = unsafe extern "system" fn(
11214     command_buffer: CommandBuffer,
11215     p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11216     p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11217     p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11218     p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11219     width: u32,
11220     height: u32,
11221     depth: u32,
11222 );
11223 #[allow(non_camel_case_types)]
11224 pub type PFN_vkCreateRayTracingPipelinesKHR = unsafe extern "system" fn(
11225     device: Device,
11226     deferred_operation: DeferredOperationKHR,
11227     pipeline_cache: PipelineCache,
11228     create_info_count: u32,
11229     p_create_infos: *const RayTracingPipelineCreateInfoKHR,
11230     p_allocator: *const AllocationCallbacks,
11231     p_pipelines: *mut Pipeline,
11232 ) -> Result;
11233 #[allow(non_camel_case_types)]
11234 pub type PFN_vkGetRayTracingShaderGroupHandlesKHR = unsafe extern "system" fn(
11235     device: Device,
11236     pipeline: Pipeline,
11237     first_group: u32,
11238     group_count: u32,
11239     data_size: usize,
11240     p_data: *mut c_void,
11241 ) -> Result;
11242 #[allow(non_camel_case_types)]
11243 pub type PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
11244     unsafe extern "system" fn(
11245         device: Device,
11246         pipeline: Pipeline,
11247         first_group: u32,
11248         group_count: u32,
11249         data_size: usize,
11250         p_data: *mut c_void,
11251     ) -> Result;
11252 #[allow(non_camel_case_types)]
11253 pub type PFN_vkCmdTraceRaysIndirectKHR = unsafe extern "system" fn(
11254     command_buffer: CommandBuffer,
11255     p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11256     p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11257     p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11258     p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11259     indirect_device_address: DeviceAddress,
11260 );
11261 #[allow(non_camel_case_types)]
11262 pub type PFN_vkGetRayTracingShaderGroupStackSizeKHR = unsafe extern "system" fn(
11263     device: Device,
11264     pipeline: Pipeline,
11265     group: u32,
11266     group_shader: ShaderGroupShaderKHR,
11267 ) -> DeviceSize;
11268 #[allow(non_camel_case_types)]
11269 pub type PFN_vkCmdSetRayTracingPipelineStackSizeKHR =
11270     unsafe extern "system" fn(command_buffer: CommandBuffer, pipeline_stack_size: u32);
11271 #[derive(Clone)]
11272 pub struct KhrRayTracingPipelineFn {
11273     pub cmd_trace_rays_khr: PFN_vkCmdTraceRaysKHR,
11274     pub create_ray_tracing_pipelines_khr: PFN_vkCreateRayTracingPipelinesKHR,
11275     pub get_ray_tracing_shader_group_handles_khr: PFN_vkGetRayTracingShaderGroupHandlesKHR,
11276     pub get_ray_tracing_capture_replay_shader_group_handles_khr:
11277         PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR,
11278     pub cmd_trace_rays_indirect_khr: PFN_vkCmdTraceRaysIndirectKHR,
11279     pub get_ray_tracing_shader_group_stack_size_khr: PFN_vkGetRayTracingShaderGroupStackSizeKHR,
11280     pub cmd_set_ray_tracing_pipeline_stack_size_khr: PFN_vkCmdSetRayTracingPipelineStackSizeKHR,
11281 }
11282 unsafe impl Send for KhrRayTracingPipelineFn {}
11283 unsafe impl Sync for KhrRayTracingPipelineFn {}
11284 impl KhrRayTracingPipelineFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11285     pub fn load<F>(mut _f: F) -> Self
11286     where
11287         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11288     {
11289         Self {
11290             cmd_trace_rays_khr: unsafe {
11291                 unsafe extern "system" fn cmd_trace_rays_khr(
11292                     _command_buffer: CommandBuffer,
11293                     _p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11294                     _p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11295                     _p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11296                     _p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11297                     _width: u32,
11298                     _height: u32,
11299                     _depth: u32,
11300                 ) {
11301                     panic!(concat!("Unable to load ", stringify!(cmd_trace_rays_khr)))
11302                 }
11303                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysKHR\0");
11304                 let val = _f(cname);
11305                 if val.is_null() {
11306                     cmd_trace_rays_khr
11307                 } else {
11308                     ::std::mem::transmute(val)
11309                 }
11310             },
11311             create_ray_tracing_pipelines_khr: unsafe {
11312                 unsafe extern "system" fn create_ray_tracing_pipelines_khr(
11313                     _device: Device,
11314                     _deferred_operation: DeferredOperationKHR,
11315                     _pipeline_cache: PipelineCache,
11316                     _create_info_count: u32,
11317                     _p_create_infos: *const RayTracingPipelineCreateInfoKHR,
11318                     _p_allocator: *const AllocationCallbacks,
11319                     _p_pipelines: *mut Pipeline,
11320                 ) -> Result {
11321                     panic!(concat!(
11322                         "Unable to load ",
11323                         stringify!(create_ray_tracing_pipelines_khr)
11324                     ))
11325                 }
11326                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11327                     b"vkCreateRayTracingPipelinesKHR\0",
11328                 );
11329                 let val = _f(cname);
11330                 if val.is_null() {
11331                     create_ray_tracing_pipelines_khr
11332                 } else {
11333                     ::std::mem::transmute(val)
11334                 }
11335             },
11336             get_ray_tracing_shader_group_handles_khr: unsafe {
11337                 unsafe extern "system" fn get_ray_tracing_shader_group_handles_khr(
11338                     _device: Device,
11339                     _pipeline: Pipeline,
11340                     _first_group: u32,
11341                     _group_count: u32,
11342                     _data_size: usize,
11343                     _p_data: *mut c_void,
11344                 ) -> Result {
11345                     panic!(concat!(
11346                         "Unable to load ",
11347                         stringify!(get_ray_tracing_shader_group_handles_khr)
11348                     ))
11349                 }
11350                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11351                     b"vkGetRayTracingShaderGroupHandlesKHR\0",
11352                 );
11353                 let val = _f(cname);
11354                 if val.is_null() {
11355                     get_ray_tracing_shader_group_handles_khr
11356                 } else {
11357                     ::std::mem::transmute(val)
11358                 }
11359             },
11360             get_ray_tracing_capture_replay_shader_group_handles_khr: unsafe {
11361                 unsafe extern "system" fn get_ray_tracing_capture_replay_shader_group_handles_khr(
11362                     _device: Device,
11363                     _pipeline: Pipeline,
11364                     _first_group: u32,
11365                     _group_count: u32,
11366                     _data_size: usize,
11367                     _p_data: *mut c_void,
11368                 ) -> Result {
11369                     panic!(concat!(
11370                         "Unable to load ",
11371                         stringify!(get_ray_tracing_capture_replay_shader_group_handles_khr)
11372                     ))
11373                 }
11374                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11375                     b"vkGetRayTracingCaptureReplayShaderGroupHandlesKHR\0",
11376                 );
11377                 let val = _f(cname);
11378                 if val.is_null() {
11379                     get_ray_tracing_capture_replay_shader_group_handles_khr
11380                 } else {
11381                     ::std::mem::transmute(val)
11382                 }
11383             },
11384             cmd_trace_rays_indirect_khr: unsafe {
11385                 unsafe extern "system" fn cmd_trace_rays_indirect_khr(
11386                     _command_buffer: CommandBuffer,
11387                     _p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11388                     _p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11389                     _p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11390                     _p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11391                     _indirect_device_address: DeviceAddress,
11392                 ) {
11393                     panic!(concat!(
11394                         "Unable to load ",
11395                         stringify!(cmd_trace_rays_indirect_khr)
11396                     ))
11397                 }
11398                 let cname =
11399                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysIndirectKHR\0");
11400                 let val = _f(cname);
11401                 if val.is_null() {
11402                     cmd_trace_rays_indirect_khr
11403                 } else {
11404                     ::std::mem::transmute(val)
11405                 }
11406             },
11407             get_ray_tracing_shader_group_stack_size_khr: unsafe {
11408                 unsafe extern "system" fn get_ray_tracing_shader_group_stack_size_khr(
11409                     _device: Device,
11410                     _pipeline: Pipeline,
11411                     _group: u32,
11412                     _group_shader: ShaderGroupShaderKHR,
11413                 ) -> DeviceSize {
11414                     panic!(concat!(
11415                         "Unable to load ",
11416                         stringify!(get_ray_tracing_shader_group_stack_size_khr)
11417                     ))
11418                 }
11419                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11420                     b"vkGetRayTracingShaderGroupStackSizeKHR\0",
11421                 );
11422                 let val = _f(cname);
11423                 if val.is_null() {
11424                     get_ray_tracing_shader_group_stack_size_khr
11425                 } else {
11426                     ::std::mem::transmute(val)
11427                 }
11428             },
11429             cmd_set_ray_tracing_pipeline_stack_size_khr: unsafe {
11430                 unsafe extern "system" fn cmd_set_ray_tracing_pipeline_stack_size_khr(
11431                     _command_buffer: CommandBuffer,
11432                     _pipeline_stack_size: u32,
11433                 ) {
11434                     panic!(concat!(
11435                         "Unable to load ",
11436                         stringify!(cmd_set_ray_tracing_pipeline_stack_size_khr)
11437                     ))
11438                 }
11439                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11440                     b"vkCmdSetRayTracingPipelineStackSizeKHR\0",
11441                 );
11442                 let val = _f(cname);
11443                 if val.is_null() {
11444                     cmd_set_ray_tracing_pipeline_stack_size_khr
11445                 } else {
11446                     ::std::mem::transmute(val)
11447                 }
11448             },
11449         }
11450     }
11451     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdTraceRaysKHR.html>"]
cmd_trace_rays_khr( &self, command_buffer: CommandBuffer, p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR, p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR, p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR, p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR, width: u32, height: u32, depth: u32, )11452     pub unsafe fn cmd_trace_rays_khr(
11453         &self,
11454         command_buffer: CommandBuffer,
11455         p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11456         p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11457         p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11458         p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11459         width: u32,
11460         height: u32,
11461         depth: u32,
11462     ) {
11463         (self.cmd_trace_rays_khr)(
11464             command_buffer,
11465             p_raygen_shader_binding_table,
11466             p_miss_shader_binding_table,
11467             p_hit_shader_binding_table,
11468             p_callable_shader_binding_table,
11469             width,
11470             height,
11471             depth,
11472         )
11473     }
11474     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateRayTracingPipelinesKHR.html>"]
create_ray_tracing_pipelines_khr( &self, device: Device, deferred_operation: DeferredOperationKHR, pipeline_cache: PipelineCache, create_info_count: u32, p_create_infos: *const RayTracingPipelineCreateInfoKHR, p_allocator: *const AllocationCallbacks, p_pipelines: *mut Pipeline, ) -> Result11475     pub unsafe fn create_ray_tracing_pipelines_khr(
11476         &self,
11477         device: Device,
11478         deferred_operation: DeferredOperationKHR,
11479         pipeline_cache: PipelineCache,
11480         create_info_count: u32,
11481         p_create_infos: *const RayTracingPipelineCreateInfoKHR,
11482         p_allocator: *const AllocationCallbacks,
11483         p_pipelines: *mut Pipeline,
11484     ) -> Result {
11485         (self.create_ray_tracing_pipelines_khr)(
11486             device,
11487             deferred_operation,
11488             pipeline_cache,
11489             create_info_count,
11490             p_create_infos,
11491             p_allocator,
11492             p_pipelines,
11493         )
11494     }
11495     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetRayTracingShaderGroupHandlesKHR.html>"]
get_ray_tracing_shader_group_handles_khr( &self, device: Device, pipeline: Pipeline, first_group: u32, group_count: u32, data_size: usize, p_data: *mut c_void, ) -> Result11496     pub unsafe fn get_ray_tracing_shader_group_handles_khr(
11497         &self,
11498         device: Device,
11499         pipeline: Pipeline,
11500         first_group: u32,
11501         group_count: u32,
11502         data_size: usize,
11503         p_data: *mut c_void,
11504     ) -> Result {
11505         (self.get_ray_tracing_shader_group_handles_khr)(
11506             device,
11507             pipeline,
11508             first_group,
11509             group_count,
11510             data_size,
11511             p_data,
11512         )
11513     }
11514     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetRayTracingCaptureReplayShaderGroupHandlesKHR.html>"]
get_ray_tracing_capture_replay_shader_group_handles_khr( &self, device: Device, pipeline: Pipeline, first_group: u32, group_count: u32, data_size: usize, p_data: *mut c_void, ) -> Result11515     pub unsafe fn get_ray_tracing_capture_replay_shader_group_handles_khr(
11516         &self,
11517         device: Device,
11518         pipeline: Pipeline,
11519         first_group: u32,
11520         group_count: u32,
11521         data_size: usize,
11522         p_data: *mut c_void,
11523     ) -> Result {
11524         (self.get_ray_tracing_capture_replay_shader_group_handles_khr)(
11525             device,
11526             pipeline,
11527             first_group,
11528             group_count,
11529             data_size,
11530             p_data,
11531         )
11532     }
11533     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdTraceRaysIndirectKHR.html>"]
cmd_trace_rays_indirect_khr( &self, command_buffer: CommandBuffer, p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR, p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR, p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR, p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR, indirect_device_address: DeviceAddress, )11534     pub unsafe fn cmd_trace_rays_indirect_khr(
11535         &self,
11536         command_buffer: CommandBuffer,
11537         p_raygen_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11538         p_miss_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11539         p_hit_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11540         p_callable_shader_binding_table: *const StridedDeviceAddressRegionKHR,
11541         indirect_device_address: DeviceAddress,
11542     ) {
11543         (self.cmd_trace_rays_indirect_khr)(
11544             command_buffer,
11545             p_raygen_shader_binding_table,
11546             p_miss_shader_binding_table,
11547             p_hit_shader_binding_table,
11548             p_callable_shader_binding_table,
11549             indirect_device_address,
11550         )
11551     }
11552     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetRayTracingShaderGroupStackSizeKHR.html>"]
get_ray_tracing_shader_group_stack_size_khr( &self, device: Device, pipeline: Pipeline, group: u32, group_shader: ShaderGroupShaderKHR, ) -> DeviceSize11553     pub unsafe fn get_ray_tracing_shader_group_stack_size_khr(
11554         &self,
11555         device: Device,
11556         pipeline: Pipeline,
11557         group: u32,
11558         group_shader: ShaderGroupShaderKHR,
11559     ) -> DeviceSize {
11560         (self.get_ray_tracing_shader_group_stack_size_khr)(device, pipeline, group, group_shader)
11561     }
11562     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetRayTracingPipelineStackSizeKHR.html>"]
cmd_set_ray_tracing_pipeline_stack_size_khr( &self, command_buffer: CommandBuffer, pipeline_stack_size: u32, )11563     pub unsafe fn cmd_set_ray_tracing_pipeline_stack_size_khr(
11564         &self,
11565         command_buffer: CommandBuffer,
11566         pipeline_stack_size: u32,
11567     ) {
11568         (self.cmd_set_ray_tracing_pipeline_stack_size_khr)(command_buffer, pipeline_stack_size)
11569     }
11570 }
11571 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
11572 impl BufferUsageFlags {
11573     pub const SHADER_BINDING_TABLE_KHR: Self = Self(0b100_0000_0000);
11574 }
11575 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
11576 impl DynamicState {
11577     pub const RAY_TRACING_PIPELINE_STACK_SIZE_KHR: Self = Self(1_000_347_000);
11578 }
11579 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
11580 impl PipelineBindPoint {
11581     pub const RAY_TRACING_KHR: Self = Self(1_000_165_000);
11582 }
11583 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
11584 impl PipelineCreateFlags {
11585     pub const RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_KHR: Self = Self(0b100_0000_0000_0000);
11586     pub const RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_KHR: Self = Self(0b1000_0000_0000_0000);
11587     pub const RAY_TRACING_NO_NULL_MISS_SHADERS_KHR: Self = Self(0b1_0000_0000_0000_0000);
11588     pub const RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_KHR: Self = Self(0b10_0000_0000_0000_0000);
11589     pub const RAY_TRACING_SKIP_TRIANGLES_KHR: Self = Self(0b1_0000_0000_0000);
11590     pub const RAY_TRACING_SKIP_AABBS_KHR: Self = Self(0b10_0000_0000_0000);
11591     pub const RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_KHR: Self =
11592         Self(0b1000_0000_0000_0000_0000);
11593 }
11594 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
11595 impl PipelineStageFlags {
11596     pub const RAY_TRACING_SHADER_KHR: Self = Self(0b10_0000_0000_0000_0000_0000);
11597 }
11598 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
11599 impl ShaderStageFlags {
11600     pub const RAYGEN_KHR: Self = Self(0b1_0000_0000);
11601     pub const ANY_HIT_KHR: Self = Self(0b10_0000_0000);
11602     pub const CLOSEST_HIT_KHR: Self = Self(0b100_0000_0000);
11603     pub const MISS_KHR: Self = Self(0b1000_0000_0000);
11604     pub const INTERSECTION_KHR: Self = Self(0b1_0000_0000_0000);
11605     pub const CALLABLE_KHR: Self = Self(0b10_0000_0000_0000);
11606 }
11607 #[doc = "Generated from 'VK_KHR_ray_tracing_pipeline'"]
11608 impl StructureType {
11609     pub const PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: Self = Self(1_000_347_000);
11610     pub const PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: Self = Self(1_000_347_001);
11611     pub const RAY_TRACING_PIPELINE_CREATE_INFO_KHR: Self = Self(1_000_150_015);
11612     pub const RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR: Self = Self(1_000_150_016);
11613     pub const RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR: Self = Self(1_000_150_018);
11614 }
11615 impl KhrRayQueryFn {
name() -> &'static ::std::ffi::CStr11616     pub fn name() -> &'static ::std::ffi::CStr {
11617         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_ray_query\0") }
11618     }
11619     pub const SPEC_VERSION: u32 = 1u32;
11620 }
11621 #[derive(Clone)]
11622 pub struct KhrRayQueryFn {}
11623 unsafe impl Send for KhrRayQueryFn {}
11624 unsafe impl Sync for KhrRayQueryFn {}
11625 impl KhrRayQueryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11626     pub fn load<F>(mut _f: F) -> Self
11627     where
11628         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11629     {
11630         Self {}
11631     }
11632 }
11633 #[doc = "Generated from 'VK_KHR_ray_query'"]
11634 impl StructureType {
11635     pub const PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR: Self = Self(1_000_348_013);
11636 }
11637 impl NvExtension152Fn {
name() -> &'static ::std::ffi::CStr11638     pub fn name() -> &'static ::std::ffi::CStr {
11639         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_152\0") }
11640     }
11641     pub const SPEC_VERSION: u32 = 0u32;
11642 }
11643 #[derive(Clone)]
11644 pub struct NvExtension152Fn {}
11645 unsafe impl Send for NvExtension152Fn {}
11646 unsafe impl Sync for NvExtension152Fn {}
11647 impl NvExtension152Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11648     pub fn load<F>(mut _f: F) -> Self
11649     where
11650         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11651     {
11652         Self {}
11653     }
11654 }
11655 impl NvFramebufferMixedSamplesFn {
name() -> &'static ::std::ffi::CStr11656     pub fn name() -> &'static ::std::ffi::CStr {
11657         unsafe {
11658             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_framebuffer_mixed_samples\0")
11659         }
11660     }
11661     pub const SPEC_VERSION: u32 = 1u32;
11662 }
11663 #[derive(Clone)]
11664 pub struct NvFramebufferMixedSamplesFn {}
11665 unsafe impl Send for NvFramebufferMixedSamplesFn {}
11666 unsafe impl Sync for NvFramebufferMixedSamplesFn {}
11667 impl NvFramebufferMixedSamplesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11668     pub fn load<F>(mut _f: F) -> Self
11669     where
11670         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11671     {
11672         Self {}
11673     }
11674 }
11675 #[doc = "Generated from 'VK_NV_framebuffer_mixed_samples'"]
11676 impl StructureType {
11677     pub const PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: Self = Self(1_000_152_000);
11678 }
11679 impl NvFillRectangleFn {
name() -> &'static ::std::ffi::CStr11680     pub fn name() -> &'static ::std::ffi::CStr {
11681         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_fill_rectangle\0") }
11682     }
11683     pub const SPEC_VERSION: u32 = 1u32;
11684 }
11685 #[derive(Clone)]
11686 pub struct NvFillRectangleFn {}
11687 unsafe impl Send for NvFillRectangleFn {}
11688 unsafe impl Sync for NvFillRectangleFn {}
11689 impl NvFillRectangleFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11690     pub fn load<F>(mut _f: F) -> Self
11691     where
11692         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11693     {
11694         Self {}
11695     }
11696 }
11697 #[doc = "Generated from 'VK_NV_fill_rectangle'"]
11698 impl PolygonMode {
11699     pub const FILL_RECTANGLE_NV: Self = Self(1_000_153_000);
11700 }
11701 impl NvShaderSmBuiltinsFn {
name() -> &'static ::std::ffi::CStr11702     pub fn name() -> &'static ::std::ffi::CStr {
11703         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_shader_sm_builtins\0") }
11704     }
11705     pub const SPEC_VERSION: u32 = 1u32;
11706 }
11707 #[derive(Clone)]
11708 pub struct NvShaderSmBuiltinsFn {}
11709 unsafe impl Send for NvShaderSmBuiltinsFn {}
11710 unsafe impl Sync for NvShaderSmBuiltinsFn {}
11711 impl NvShaderSmBuiltinsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11712     pub fn load<F>(mut _f: F) -> Self
11713     where
11714         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11715     {
11716         Self {}
11717     }
11718 }
11719 #[doc = "Generated from 'VK_NV_shader_sm_builtins'"]
11720 impl StructureType {
11721     pub const PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: Self = Self(1_000_154_000);
11722     pub const PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: Self = Self(1_000_154_001);
11723 }
11724 impl ExtPostDepthCoverageFn {
name() -> &'static ::std::ffi::CStr11725     pub fn name() -> &'static ::std::ffi::CStr {
11726         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_post_depth_coverage\0") }
11727     }
11728     pub const SPEC_VERSION: u32 = 1u32;
11729 }
11730 #[derive(Clone)]
11731 pub struct ExtPostDepthCoverageFn {}
11732 unsafe impl Send for ExtPostDepthCoverageFn {}
11733 unsafe impl Sync for ExtPostDepthCoverageFn {}
11734 impl ExtPostDepthCoverageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11735     pub fn load<F>(mut _f: F) -> Self
11736     where
11737         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11738     {
11739         Self {}
11740     }
11741 }
11742 impl KhrSamplerYcbcrConversionFn {
name() -> &'static ::std::ffi::CStr11743     pub fn name() -> &'static ::std::ffi::CStr {
11744         unsafe {
11745             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_sampler_ycbcr_conversion\0")
11746         }
11747     }
11748     pub const SPEC_VERSION: u32 = 14u32;
11749 }
11750 #[allow(non_camel_case_types)]
11751 pub type PFN_vkCreateSamplerYcbcrConversion = unsafe extern "system" fn(
11752     device: Device,
11753     p_create_info: *const SamplerYcbcrConversionCreateInfo,
11754     p_allocator: *const AllocationCallbacks,
11755     p_ycbcr_conversion: *mut SamplerYcbcrConversion,
11756 ) -> Result;
11757 #[allow(non_camel_case_types)]
11758 pub type PFN_vkDestroySamplerYcbcrConversion = unsafe extern "system" fn(
11759     device: Device,
11760     ycbcr_conversion: SamplerYcbcrConversion,
11761     p_allocator: *const AllocationCallbacks,
11762 );
11763 #[derive(Clone)]
11764 pub struct KhrSamplerYcbcrConversionFn {
11765     pub create_sampler_ycbcr_conversion_khr: PFN_vkCreateSamplerYcbcrConversion,
11766     pub destroy_sampler_ycbcr_conversion_khr: PFN_vkDestroySamplerYcbcrConversion,
11767 }
11768 unsafe impl Send for KhrSamplerYcbcrConversionFn {}
11769 unsafe impl Sync for KhrSamplerYcbcrConversionFn {}
11770 impl KhrSamplerYcbcrConversionFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11771     pub fn load<F>(mut _f: F) -> Self
11772     where
11773         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11774     {
11775         Self {
11776             create_sampler_ycbcr_conversion_khr: unsafe {
11777                 unsafe extern "system" fn create_sampler_ycbcr_conversion_khr(
11778                     _device: Device,
11779                     _p_create_info: *const SamplerYcbcrConversionCreateInfo,
11780                     _p_allocator: *const AllocationCallbacks,
11781                     _p_ycbcr_conversion: *mut SamplerYcbcrConversion,
11782                 ) -> Result {
11783                     panic!(concat!(
11784                         "Unable to load ",
11785                         stringify!(create_sampler_ycbcr_conversion_khr)
11786                     ))
11787                 }
11788                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11789                     b"vkCreateSamplerYcbcrConversionKHR\0",
11790                 );
11791                 let val = _f(cname);
11792                 if val.is_null() {
11793                     create_sampler_ycbcr_conversion_khr
11794                 } else {
11795                     ::std::mem::transmute(val)
11796                 }
11797             },
11798             destroy_sampler_ycbcr_conversion_khr: unsafe {
11799                 unsafe extern "system" fn destroy_sampler_ycbcr_conversion_khr(
11800                     _device: Device,
11801                     _ycbcr_conversion: SamplerYcbcrConversion,
11802                     _p_allocator: *const AllocationCallbacks,
11803                 ) {
11804                     panic!(concat!(
11805                         "Unable to load ",
11806                         stringify!(destroy_sampler_ycbcr_conversion_khr)
11807                     ))
11808                 }
11809                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
11810                     b"vkDestroySamplerYcbcrConversionKHR\0",
11811                 );
11812                 let val = _f(cname);
11813                 if val.is_null() {
11814                     destroy_sampler_ycbcr_conversion_khr
11815                 } else {
11816                     ::std::mem::transmute(val)
11817                 }
11818             },
11819         }
11820     }
11821     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateSamplerYcbcrConversionKHR.html>"]
create_sampler_ycbcr_conversion_khr( &self, device: Device, p_create_info: *const SamplerYcbcrConversionCreateInfo, p_allocator: *const AllocationCallbacks, p_ycbcr_conversion: *mut SamplerYcbcrConversion, ) -> Result11822     pub unsafe fn create_sampler_ycbcr_conversion_khr(
11823         &self,
11824         device: Device,
11825         p_create_info: *const SamplerYcbcrConversionCreateInfo,
11826         p_allocator: *const AllocationCallbacks,
11827         p_ycbcr_conversion: *mut SamplerYcbcrConversion,
11828     ) -> Result {
11829         (self.create_sampler_ycbcr_conversion_khr)(
11830             device,
11831             p_create_info,
11832             p_allocator,
11833             p_ycbcr_conversion,
11834         )
11835     }
11836     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroySamplerYcbcrConversionKHR.html>"]
destroy_sampler_ycbcr_conversion_khr( &self, device: Device, ycbcr_conversion: SamplerYcbcrConversion, p_allocator: *const AllocationCallbacks, )11837     pub unsafe fn destroy_sampler_ycbcr_conversion_khr(
11838         &self,
11839         device: Device,
11840         ycbcr_conversion: SamplerYcbcrConversion,
11841         p_allocator: *const AllocationCallbacks,
11842     ) {
11843         (self.destroy_sampler_ycbcr_conversion_khr)(device, ycbcr_conversion, p_allocator)
11844     }
11845 }
11846 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
11847 impl ChromaLocation {
11848     pub const COSITED_EVEN_KHR: Self = Self::COSITED_EVEN;
11849     pub const MIDPOINT_KHR: Self = Self::MIDPOINT;
11850 }
11851 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
11852 impl DebugReportObjectTypeEXT {
11853     pub const SAMPLER_YCBCR_CONVERSION_KHR: Self = Self::SAMPLER_YCBCR_CONVERSION;
11854 }
11855 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
11856 impl Format {
11857     pub const G8B8G8R8_422_UNORM_KHR: Self = Self::G8B8G8R8_422_UNORM;
11858     pub const B8G8R8G8_422_UNORM_KHR: Self = Self::B8G8R8G8_422_UNORM;
11859     pub const G8_B8_R8_3PLANE_420_UNORM_KHR: Self = Self::G8_B8_R8_3PLANE_420_UNORM;
11860     pub const G8_B8R8_2PLANE_420_UNORM_KHR: Self = Self::G8_B8R8_2PLANE_420_UNORM;
11861     pub const G8_B8_R8_3PLANE_422_UNORM_KHR: Self = Self::G8_B8_R8_3PLANE_422_UNORM;
11862     pub const G8_B8R8_2PLANE_422_UNORM_KHR: Self = Self::G8_B8R8_2PLANE_422_UNORM;
11863     pub const G8_B8_R8_3PLANE_444_UNORM_KHR: Self = Self::G8_B8_R8_3PLANE_444_UNORM;
11864     pub const R10X6_UNORM_PACK16_KHR: Self = Self::R10X6_UNORM_PACK16;
11865     pub const R10X6G10X6_UNORM_2PACK16_KHR: Self = Self::R10X6G10X6_UNORM_2PACK16;
11866     pub const R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR: Self =
11867         Self::R10X6G10X6B10X6A10X6_UNORM_4PACK16;
11868     pub const G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR: Self =
11869         Self::G10X6B10X6G10X6R10X6_422_UNORM_4PACK16;
11870     pub const B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR: Self =
11871         Self::B10X6G10X6R10X6G10X6_422_UNORM_4PACK16;
11872     pub const G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR: Self =
11873         Self::G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16;
11874     pub const G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR: Self =
11875         Self::G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16;
11876     pub const G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR: Self =
11877         Self::G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16;
11878     pub const G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR: Self =
11879         Self::G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16;
11880     pub const G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR: Self =
11881         Self::G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16;
11882     pub const R12X4_UNORM_PACK16_KHR: Self = Self::R12X4_UNORM_PACK16;
11883     pub const R12X4G12X4_UNORM_2PACK16_KHR: Self = Self::R12X4G12X4_UNORM_2PACK16;
11884     pub const R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR: Self =
11885         Self::R12X4G12X4B12X4A12X4_UNORM_4PACK16;
11886     pub const G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR: Self =
11887         Self::G12X4B12X4G12X4R12X4_422_UNORM_4PACK16;
11888     pub const B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR: Self =
11889         Self::B12X4G12X4R12X4G12X4_422_UNORM_4PACK16;
11890     pub const G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR: Self =
11891         Self::G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16;
11892     pub const G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR: Self =
11893         Self::G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16;
11894     pub const G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR: Self =
11895         Self::G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16;
11896     pub const G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR: Self =
11897         Self::G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16;
11898     pub const G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR: Self =
11899         Self::G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16;
11900     pub const G16B16G16R16_422_UNORM_KHR: Self = Self::G16B16G16R16_422_UNORM;
11901     pub const B16G16R16G16_422_UNORM_KHR: Self = Self::B16G16R16G16_422_UNORM;
11902     pub const G16_B16_R16_3PLANE_420_UNORM_KHR: Self = Self::G16_B16_R16_3PLANE_420_UNORM;
11903     pub const G16_B16R16_2PLANE_420_UNORM_KHR: Self = Self::G16_B16R16_2PLANE_420_UNORM;
11904     pub const G16_B16_R16_3PLANE_422_UNORM_KHR: Self = Self::G16_B16_R16_3PLANE_422_UNORM;
11905     pub const G16_B16R16_2PLANE_422_UNORM_KHR: Self = Self::G16_B16R16_2PLANE_422_UNORM;
11906     pub const G16_B16_R16_3PLANE_444_UNORM_KHR: Self = Self::G16_B16_R16_3PLANE_444_UNORM;
11907 }
11908 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
11909 impl FormatFeatureFlags {
11910     pub const MIDPOINT_CHROMA_SAMPLES_KHR: Self = Self::MIDPOINT_CHROMA_SAMPLES;
11911     pub const SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_KHR: Self =
11912         Self::SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER;
11913     pub const SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_KHR: Self =
11914         Self::SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER;
11915     pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_KHR: Self =
11916         Self::SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT;
11917     pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_KHR: Self =
11918         Self::SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE;
11919     pub const DISJOINT_KHR: Self = Self::DISJOINT;
11920     pub const COSITED_CHROMA_SAMPLES_KHR: Self = Self::COSITED_CHROMA_SAMPLES;
11921 }
11922 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
11923 impl ImageAspectFlags {
11924     pub const PLANE_0_KHR: Self = Self::PLANE_0;
11925     pub const PLANE_1_KHR: Self = Self::PLANE_1;
11926     pub const PLANE_2_KHR: Self = Self::PLANE_2;
11927 }
11928 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
11929 impl ImageCreateFlags {
11930     pub const DISJOINT_KHR: Self = Self::DISJOINT;
11931 }
11932 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
11933 impl ObjectType {
11934     pub const SAMPLER_YCBCR_CONVERSION_KHR: Self = Self::SAMPLER_YCBCR_CONVERSION;
11935 }
11936 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
11937 impl SamplerYcbcrModelConversion {
11938     pub const RGB_IDENTITY_KHR: Self = Self::RGB_IDENTITY;
11939     pub const YCBCR_IDENTITY_KHR: Self = Self::YCBCR_IDENTITY;
11940     pub const YCBCR_709_KHR: Self = Self::YCBCR_709;
11941     pub const YCBCR_601_KHR: Self = Self::YCBCR_601;
11942     pub const YCBCR_2020_KHR: Self = Self::YCBCR_2020;
11943 }
11944 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
11945 impl SamplerYcbcrRange {
11946     pub const ITU_FULL_KHR: Self = Self::ITU_FULL;
11947     pub const ITU_NARROW_KHR: Self = Self::ITU_NARROW;
11948 }
11949 #[doc = "Generated from 'VK_KHR_sampler_ycbcr_conversion'"]
11950 impl StructureType {
11951     pub const SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR: Self =
11952         Self::SAMPLER_YCBCR_CONVERSION_CREATE_INFO;
11953     pub const SAMPLER_YCBCR_CONVERSION_INFO_KHR: Self = Self::SAMPLER_YCBCR_CONVERSION_INFO;
11954     pub const BIND_IMAGE_PLANE_MEMORY_INFO_KHR: Self = Self::BIND_IMAGE_PLANE_MEMORY_INFO;
11955     pub const IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR: Self =
11956         Self::IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO;
11957     pub const PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR: Self =
11958         Self::PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES;
11959     pub const SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR: Self =
11960         Self::SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES;
11961 }
11962 impl KhrBindMemory2Fn {
name() -> &'static ::std::ffi::CStr11963     pub fn name() -> &'static ::std::ffi::CStr {
11964         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_bind_memory2\0") }
11965     }
11966     pub const SPEC_VERSION: u32 = 1u32;
11967 }
11968 #[allow(non_camel_case_types)]
11969 pub type PFN_vkBindBufferMemory2 = unsafe extern "system" fn(
11970     device: Device,
11971     bind_info_count: u32,
11972     p_bind_infos: *const BindBufferMemoryInfo,
11973 ) -> Result;
11974 #[allow(non_camel_case_types)]
11975 pub type PFN_vkBindImageMemory2 = unsafe extern "system" fn(
11976     device: Device,
11977     bind_info_count: u32,
11978     p_bind_infos: *const BindImageMemoryInfo,
11979 ) -> Result;
11980 #[derive(Clone)]
11981 pub struct KhrBindMemory2Fn {
11982     pub bind_buffer_memory2_khr: PFN_vkBindBufferMemory2,
11983     pub bind_image_memory2_khr: PFN_vkBindImageMemory2,
11984 }
11985 unsafe impl Send for KhrBindMemory2Fn {}
11986 unsafe impl Sync for KhrBindMemory2Fn {}
11987 impl KhrBindMemory2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,11988     pub fn load<F>(mut _f: F) -> Self
11989     where
11990         F: FnMut(&::std::ffi::CStr) -> *const c_void,
11991     {
11992         Self {
11993             bind_buffer_memory2_khr: unsafe {
11994                 unsafe extern "system" fn bind_buffer_memory2_khr(
11995                     _device: Device,
11996                     _bind_info_count: u32,
11997                     _p_bind_infos: *const BindBufferMemoryInfo,
11998                 ) -> Result {
11999                     panic!(concat!(
12000                         "Unable to load ",
12001                         stringify!(bind_buffer_memory2_khr)
12002                     ))
12003                 }
12004                 let cname =
12005                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkBindBufferMemory2KHR\0");
12006                 let val = _f(cname);
12007                 if val.is_null() {
12008                     bind_buffer_memory2_khr
12009                 } else {
12010                     ::std::mem::transmute(val)
12011                 }
12012             },
12013             bind_image_memory2_khr: unsafe {
12014                 unsafe extern "system" fn bind_image_memory2_khr(
12015                     _device: Device,
12016                     _bind_info_count: u32,
12017                     _p_bind_infos: *const BindImageMemoryInfo,
12018                 ) -> Result {
12019                     panic!(concat!(
12020                         "Unable to load ",
12021                         stringify!(bind_image_memory2_khr)
12022                     ))
12023                 }
12024                 let cname =
12025                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkBindImageMemory2KHR\0");
12026                 let val = _f(cname);
12027                 if val.is_null() {
12028                     bind_image_memory2_khr
12029                 } else {
12030                     ::std::mem::transmute(val)
12031                 }
12032             },
12033         }
12034     }
12035     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkBindBufferMemory2KHR.html>"]
bind_buffer_memory2_khr( &self, device: Device, bind_info_count: u32, p_bind_infos: *const BindBufferMemoryInfo, ) -> Result12036     pub unsafe fn bind_buffer_memory2_khr(
12037         &self,
12038         device: Device,
12039         bind_info_count: u32,
12040         p_bind_infos: *const BindBufferMemoryInfo,
12041     ) -> Result {
12042         (self.bind_buffer_memory2_khr)(device, bind_info_count, p_bind_infos)
12043     }
12044     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkBindImageMemory2KHR.html>"]
bind_image_memory2_khr( &self, device: Device, bind_info_count: u32, p_bind_infos: *const BindImageMemoryInfo, ) -> Result12045     pub unsafe fn bind_image_memory2_khr(
12046         &self,
12047         device: Device,
12048         bind_info_count: u32,
12049         p_bind_infos: *const BindImageMemoryInfo,
12050     ) -> Result {
12051         (self.bind_image_memory2_khr)(device, bind_info_count, p_bind_infos)
12052     }
12053 }
12054 #[doc = "Generated from 'VK_KHR_bind_memory2'"]
12055 impl ImageCreateFlags {
12056     pub const ALIAS_KHR: Self = Self::ALIAS;
12057 }
12058 #[doc = "Generated from 'VK_KHR_bind_memory2'"]
12059 impl StructureType {
12060     pub const BIND_BUFFER_MEMORY_INFO_KHR: Self = Self::BIND_BUFFER_MEMORY_INFO;
12061     pub const BIND_IMAGE_MEMORY_INFO_KHR: Self = Self::BIND_IMAGE_MEMORY_INFO;
12062 }
12063 impl ExtImageDrmFormatModifierFn {
name() -> &'static ::std::ffi::CStr12064     pub fn name() -> &'static ::std::ffi::CStr {
12065         unsafe {
12066             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_drm_format_modifier\0")
12067         }
12068     }
12069     pub const SPEC_VERSION: u32 = 2u32;
12070 }
12071 #[allow(non_camel_case_types)]
12072 pub type PFN_vkGetImageDrmFormatModifierPropertiesEXT = unsafe extern "system" fn(
12073     device: Device,
12074     image: Image,
12075     p_properties: *mut ImageDrmFormatModifierPropertiesEXT,
12076 ) -> Result;
12077 #[derive(Clone)]
12078 pub struct ExtImageDrmFormatModifierFn {
12079     pub get_image_drm_format_modifier_properties_ext: PFN_vkGetImageDrmFormatModifierPropertiesEXT,
12080 }
12081 unsafe impl Send for ExtImageDrmFormatModifierFn {}
12082 unsafe impl Sync for ExtImageDrmFormatModifierFn {}
12083 impl ExtImageDrmFormatModifierFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12084     pub fn load<F>(mut _f: F) -> Self
12085     where
12086         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12087     {
12088         Self {
12089             get_image_drm_format_modifier_properties_ext: unsafe {
12090                 unsafe extern "system" fn get_image_drm_format_modifier_properties_ext(
12091                     _device: Device,
12092                     _image: Image,
12093                     _p_properties: *mut ImageDrmFormatModifierPropertiesEXT,
12094                 ) -> Result {
12095                     panic!(concat!(
12096                         "Unable to load ",
12097                         stringify!(get_image_drm_format_modifier_properties_ext)
12098                     ))
12099                 }
12100                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12101                     b"vkGetImageDrmFormatModifierPropertiesEXT\0",
12102                 );
12103                 let val = _f(cname);
12104                 if val.is_null() {
12105                     get_image_drm_format_modifier_properties_ext
12106                 } else {
12107                     ::std::mem::transmute(val)
12108                 }
12109             },
12110         }
12111     }
12112     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetImageDrmFormatModifierPropertiesEXT.html>"]
get_image_drm_format_modifier_properties_ext( &self, device: Device, image: Image, p_properties: *mut ImageDrmFormatModifierPropertiesEXT, ) -> Result12113     pub unsafe fn get_image_drm_format_modifier_properties_ext(
12114         &self,
12115         device: Device,
12116         image: Image,
12117         p_properties: *mut ImageDrmFormatModifierPropertiesEXT,
12118     ) -> Result {
12119         (self.get_image_drm_format_modifier_properties_ext)(device, image, p_properties)
12120     }
12121 }
12122 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
12123 impl ImageAspectFlags {
12124     pub const MEMORY_PLANE_0_EXT: Self = Self(0b1000_0000);
12125     pub const MEMORY_PLANE_1_EXT: Self = Self(0b1_0000_0000);
12126     pub const MEMORY_PLANE_2_EXT: Self = Self(0b10_0000_0000);
12127     pub const MEMORY_PLANE_3_EXT: Self = Self(0b100_0000_0000);
12128 }
12129 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
12130 impl ImageTiling {
12131     pub const DRM_FORMAT_MODIFIER_EXT: Self = Self(1_000_158_000);
12132 }
12133 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
12134 impl Result {
12135     pub const ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT: Self = Self(-1_000_158_000);
12136 }
12137 #[doc = "Generated from 'VK_EXT_image_drm_format_modifier'"]
12138 impl StructureType {
12139     pub const DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: Self = Self(1_000_158_000);
12140     pub const PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: Self = Self(1_000_158_002);
12141     pub const IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: Self = Self(1_000_158_003);
12142     pub const IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: Self = Self(1_000_158_004);
12143     pub const IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT: Self = Self(1_000_158_005);
12144     pub const DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: Self = Self(1_000_158_006);
12145 }
12146 impl ExtExtension160Fn {
name() -> &'static ::std::ffi::CStr12147     pub fn name() -> &'static ::std::ffi::CStr {
12148         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_160\0") }
12149     }
12150     pub const SPEC_VERSION: u32 = 0u32;
12151 }
12152 #[derive(Clone)]
12153 pub struct ExtExtension160Fn {}
12154 unsafe impl Send for ExtExtension160Fn {}
12155 unsafe impl Sync for ExtExtension160Fn {}
12156 impl ExtExtension160Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12157     pub fn load<F>(mut _f: F) -> Self
12158     where
12159         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12160     {
12161         Self {}
12162     }
12163 }
12164 impl ExtValidationCacheFn {
name() -> &'static ::std::ffi::CStr12165     pub fn name() -> &'static ::std::ffi::CStr {
12166         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_validation_cache\0") }
12167     }
12168     pub const SPEC_VERSION: u32 = 1u32;
12169 }
12170 #[allow(non_camel_case_types)]
12171 pub type PFN_vkCreateValidationCacheEXT = unsafe extern "system" fn(
12172     device: Device,
12173     p_create_info: *const ValidationCacheCreateInfoEXT,
12174     p_allocator: *const AllocationCallbacks,
12175     p_validation_cache: *mut ValidationCacheEXT,
12176 ) -> Result;
12177 #[allow(non_camel_case_types)]
12178 pub type PFN_vkDestroyValidationCacheEXT = unsafe extern "system" fn(
12179     device: Device,
12180     validation_cache: ValidationCacheEXT,
12181     p_allocator: *const AllocationCallbacks,
12182 );
12183 #[allow(non_camel_case_types)]
12184 pub type PFN_vkMergeValidationCachesEXT = unsafe extern "system" fn(
12185     device: Device,
12186     dst_cache: ValidationCacheEXT,
12187     src_cache_count: u32,
12188     p_src_caches: *const ValidationCacheEXT,
12189 ) -> Result;
12190 #[allow(non_camel_case_types)]
12191 pub type PFN_vkGetValidationCacheDataEXT = unsafe extern "system" fn(
12192     device: Device,
12193     validation_cache: ValidationCacheEXT,
12194     p_data_size: *mut usize,
12195     p_data: *mut c_void,
12196 ) -> Result;
12197 #[derive(Clone)]
12198 pub struct ExtValidationCacheFn {
12199     pub create_validation_cache_ext: PFN_vkCreateValidationCacheEXT,
12200     pub destroy_validation_cache_ext: PFN_vkDestroyValidationCacheEXT,
12201     pub merge_validation_caches_ext: PFN_vkMergeValidationCachesEXT,
12202     pub get_validation_cache_data_ext: PFN_vkGetValidationCacheDataEXT,
12203 }
12204 unsafe impl Send for ExtValidationCacheFn {}
12205 unsafe impl Sync for ExtValidationCacheFn {}
12206 impl ExtValidationCacheFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12207     pub fn load<F>(mut _f: F) -> Self
12208     where
12209         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12210     {
12211         Self {
12212             create_validation_cache_ext: unsafe {
12213                 unsafe extern "system" fn create_validation_cache_ext(
12214                     _device: Device,
12215                     _p_create_info: *const ValidationCacheCreateInfoEXT,
12216                     _p_allocator: *const AllocationCallbacks,
12217                     _p_validation_cache: *mut ValidationCacheEXT,
12218                 ) -> Result {
12219                     panic!(concat!(
12220                         "Unable to load ",
12221                         stringify!(create_validation_cache_ext)
12222                     ))
12223                 }
12224                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12225                     b"vkCreateValidationCacheEXT\0",
12226                 );
12227                 let val = _f(cname);
12228                 if val.is_null() {
12229                     create_validation_cache_ext
12230                 } else {
12231                     ::std::mem::transmute(val)
12232                 }
12233             },
12234             destroy_validation_cache_ext: unsafe {
12235                 unsafe extern "system" fn destroy_validation_cache_ext(
12236                     _device: Device,
12237                     _validation_cache: ValidationCacheEXT,
12238                     _p_allocator: *const AllocationCallbacks,
12239                 ) {
12240                     panic!(concat!(
12241                         "Unable to load ",
12242                         stringify!(destroy_validation_cache_ext)
12243                     ))
12244                 }
12245                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12246                     b"vkDestroyValidationCacheEXT\0",
12247                 );
12248                 let val = _f(cname);
12249                 if val.is_null() {
12250                     destroy_validation_cache_ext
12251                 } else {
12252                     ::std::mem::transmute(val)
12253                 }
12254             },
12255             merge_validation_caches_ext: unsafe {
12256                 unsafe extern "system" fn merge_validation_caches_ext(
12257                     _device: Device,
12258                     _dst_cache: ValidationCacheEXT,
12259                     _src_cache_count: u32,
12260                     _p_src_caches: *const ValidationCacheEXT,
12261                 ) -> Result {
12262                     panic!(concat!(
12263                         "Unable to load ",
12264                         stringify!(merge_validation_caches_ext)
12265                     ))
12266                 }
12267                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12268                     b"vkMergeValidationCachesEXT\0",
12269                 );
12270                 let val = _f(cname);
12271                 if val.is_null() {
12272                     merge_validation_caches_ext
12273                 } else {
12274                     ::std::mem::transmute(val)
12275                 }
12276             },
12277             get_validation_cache_data_ext: unsafe {
12278                 unsafe extern "system" fn get_validation_cache_data_ext(
12279                     _device: Device,
12280                     _validation_cache: ValidationCacheEXT,
12281                     _p_data_size: *mut usize,
12282                     _p_data: *mut c_void,
12283                 ) -> Result {
12284                     panic!(concat!(
12285                         "Unable to load ",
12286                         stringify!(get_validation_cache_data_ext)
12287                     ))
12288                 }
12289                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12290                     b"vkGetValidationCacheDataEXT\0",
12291                 );
12292                 let val = _f(cname);
12293                 if val.is_null() {
12294                     get_validation_cache_data_ext
12295                 } else {
12296                     ::std::mem::transmute(val)
12297                 }
12298             },
12299         }
12300     }
12301     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateValidationCacheEXT.html>"]
create_validation_cache_ext( &self, device: Device, p_create_info: *const ValidationCacheCreateInfoEXT, p_allocator: *const AllocationCallbacks, p_validation_cache: *mut ValidationCacheEXT, ) -> Result12302     pub unsafe fn create_validation_cache_ext(
12303         &self,
12304         device: Device,
12305         p_create_info: *const ValidationCacheCreateInfoEXT,
12306         p_allocator: *const AllocationCallbacks,
12307         p_validation_cache: *mut ValidationCacheEXT,
12308     ) -> Result {
12309         (self.create_validation_cache_ext)(device, p_create_info, p_allocator, p_validation_cache)
12310     }
12311     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroyValidationCacheEXT.html>"]
destroy_validation_cache_ext( &self, device: Device, validation_cache: ValidationCacheEXT, p_allocator: *const AllocationCallbacks, )12312     pub unsafe fn destroy_validation_cache_ext(
12313         &self,
12314         device: Device,
12315         validation_cache: ValidationCacheEXT,
12316         p_allocator: *const AllocationCallbacks,
12317     ) {
12318         (self.destroy_validation_cache_ext)(device, validation_cache, p_allocator)
12319     }
12320     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkMergeValidationCachesEXT.html>"]
merge_validation_caches_ext( &self, device: Device, dst_cache: ValidationCacheEXT, src_cache_count: u32, p_src_caches: *const ValidationCacheEXT, ) -> Result12321     pub unsafe fn merge_validation_caches_ext(
12322         &self,
12323         device: Device,
12324         dst_cache: ValidationCacheEXT,
12325         src_cache_count: u32,
12326         p_src_caches: *const ValidationCacheEXT,
12327     ) -> Result {
12328         (self.merge_validation_caches_ext)(device, dst_cache, src_cache_count, p_src_caches)
12329     }
12330     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetValidationCacheDataEXT.html>"]
get_validation_cache_data_ext( &self, device: Device, validation_cache: ValidationCacheEXT, p_data_size: *mut usize, p_data: *mut c_void, ) -> Result12331     pub unsafe fn get_validation_cache_data_ext(
12332         &self,
12333         device: Device,
12334         validation_cache: ValidationCacheEXT,
12335         p_data_size: *mut usize,
12336         p_data: *mut c_void,
12337     ) -> Result {
12338         (self.get_validation_cache_data_ext)(device, validation_cache, p_data_size, p_data)
12339     }
12340 }
12341 #[doc = "Generated from 'VK_EXT_validation_cache'"]
12342 impl ObjectType {
12343     pub const VALIDATION_CACHE_EXT: Self = Self(1_000_160_000);
12344 }
12345 #[doc = "Generated from 'VK_EXT_validation_cache'"]
12346 impl StructureType {
12347     pub const VALIDATION_CACHE_CREATE_INFO_EXT: Self = Self(1_000_160_000);
12348     pub const SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: Self = Self(1_000_160_001);
12349 }
12350 impl ExtDescriptorIndexingFn {
name() -> &'static ::std::ffi::CStr12351     pub fn name() -> &'static ::std::ffi::CStr {
12352         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_descriptor_indexing\0") }
12353     }
12354     pub const SPEC_VERSION: u32 = 2u32;
12355 }
12356 #[derive(Clone)]
12357 pub struct ExtDescriptorIndexingFn {}
12358 unsafe impl Send for ExtDescriptorIndexingFn {}
12359 unsafe impl Sync for ExtDescriptorIndexingFn {}
12360 impl ExtDescriptorIndexingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12361     pub fn load<F>(mut _f: F) -> Self
12362     where
12363         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12364     {
12365         Self {}
12366     }
12367 }
12368 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
12369 impl DescriptorBindingFlags {
12370     pub const UPDATE_AFTER_BIND_EXT: Self = Self::UPDATE_AFTER_BIND;
12371     pub const UPDATE_UNUSED_WHILE_PENDING_EXT: Self = Self::UPDATE_UNUSED_WHILE_PENDING;
12372     pub const PARTIALLY_BOUND_EXT: Self = Self::PARTIALLY_BOUND;
12373     pub const VARIABLE_DESCRIPTOR_COUNT_EXT: Self = Self::VARIABLE_DESCRIPTOR_COUNT;
12374 }
12375 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
12376 impl DescriptorPoolCreateFlags {
12377     pub const UPDATE_AFTER_BIND_EXT: Self = Self::UPDATE_AFTER_BIND;
12378 }
12379 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
12380 impl DescriptorSetLayoutCreateFlags {
12381     pub const UPDATE_AFTER_BIND_POOL_EXT: Self = Self::UPDATE_AFTER_BIND_POOL;
12382 }
12383 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
12384 impl Result {
12385     pub const ERROR_FRAGMENTATION_EXT: Self = Self::ERROR_FRAGMENTATION;
12386 }
12387 #[doc = "Generated from 'VK_EXT_descriptor_indexing'"]
12388 impl StructureType {
12389     pub const DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT: Self =
12390         Self::DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO;
12391     pub const PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT: Self =
12392         Self::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES;
12393     pub const PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT: Self =
12394         Self::PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES;
12395     pub const DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT: Self =
12396         Self::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO;
12397     pub const DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT: Self =
12398         Self::DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT;
12399 }
12400 impl ExtShaderViewportIndexLayerFn {
name() -> &'static ::std::ffi::CStr12401     pub fn name() -> &'static ::std::ffi::CStr {
12402         unsafe {
12403             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_viewport_index_layer\0")
12404         }
12405     }
12406     pub const SPEC_VERSION: u32 = 1u32;
12407 }
12408 #[derive(Clone)]
12409 pub struct ExtShaderViewportIndexLayerFn {}
12410 unsafe impl Send for ExtShaderViewportIndexLayerFn {}
12411 unsafe impl Sync for ExtShaderViewportIndexLayerFn {}
12412 impl ExtShaderViewportIndexLayerFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12413     pub fn load<F>(mut _f: F) -> Self
12414     where
12415         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12416     {
12417         Self {}
12418     }
12419 }
12420 impl KhrPortabilitySubsetFn {
name() -> &'static ::std::ffi::CStr12421     pub fn name() -> &'static ::std::ffi::CStr {
12422         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_portability_subset\0") }
12423     }
12424     pub const SPEC_VERSION: u32 = 1u32;
12425 }
12426 #[derive(Clone)]
12427 pub struct KhrPortabilitySubsetFn {}
12428 unsafe impl Send for KhrPortabilitySubsetFn {}
12429 unsafe impl Sync for KhrPortabilitySubsetFn {}
12430 impl KhrPortabilitySubsetFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12431     pub fn load<F>(mut _f: F) -> Self
12432     where
12433         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12434     {
12435         Self {}
12436     }
12437 }
12438 #[doc = "Generated from 'VK_KHR_portability_subset'"]
12439 impl StructureType {
12440     pub const PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR: Self = Self(1_000_163_000);
12441     pub const PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: Self = Self(1_000_163_001);
12442 }
12443 impl NvShadingRateImageFn {
name() -> &'static ::std::ffi::CStr12444     pub fn name() -> &'static ::std::ffi::CStr {
12445         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_shading_rate_image\0") }
12446     }
12447     pub const SPEC_VERSION: u32 = 3u32;
12448 }
12449 #[allow(non_camel_case_types)]
12450 pub type PFN_vkCmdBindShadingRateImageNV = unsafe extern "system" fn(
12451     command_buffer: CommandBuffer,
12452     image_view: ImageView,
12453     image_layout: ImageLayout,
12454 );
12455 #[allow(non_camel_case_types)]
12456 pub type PFN_vkCmdSetViewportShadingRatePaletteNV = unsafe extern "system" fn(
12457     command_buffer: CommandBuffer,
12458     first_viewport: u32,
12459     viewport_count: u32,
12460     p_shading_rate_palettes: *const ShadingRatePaletteNV,
12461 );
12462 #[allow(non_camel_case_types)]
12463 pub type PFN_vkCmdSetCoarseSampleOrderNV = unsafe extern "system" fn(
12464     command_buffer: CommandBuffer,
12465     sample_order_type: CoarseSampleOrderTypeNV,
12466     custom_sample_order_count: u32,
12467     p_custom_sample_orders: *const CoarseSampleOrderCustomNV,
12468 );
12469 #[derive(Clone)]
12470 pub struct NvShadingRateImageFn {
12471     pub cmd_bind_shading_rate_image_nv: PFN_vkCmdBindShadingRateImageNV,
12472     pub cmd_set_viewport_shading_rate_palette_nv: PFN_vkCmdSetViewportShadingRatePaletteNV,
12473     pub cmd_set_coarse_sample_order_nv: PFN_vkCmdSetCoarseSampleOrderNV,
12474 }
12475 unsafe impl Send for NvShadingRateImageFn {}
12476 unsafe impl Sync for NvShadingRateImageFn {}
12477 impl NvShadingRateImageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12478     pub fn load<F>(mut _f: F) -> Self
12479     where
12480         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12481     {
12482         Self {
12483             cmd_bind_shading_rate_image_nv: unsafe {
12484                 unsafe extern "system" fn cmd_bind_shading_rate_image_nv(
12485                     _command_buffer: CommandBuffer,
12486                     _image_view: ImageView,
12487                     _image_layout: ImageLayout,
12488                 ) {
12489                     panic!(concat!(
12490                         "Unable to load ",
12491                         stringify!(cmd_bind_shading_rate_image_nv)
12492                     ))
12493                 }
12494                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12495                     b"vkCmdBindShadingRateImageNV\0",
12496                 );
12497                 let val = _f(cname);
12498                 if val.is_null() {
12499                     cmd_bind_shading_rate_image_nv
12500                 } else {
12501                     ::std::mem::transmute(val)
12502                 }
12503             },
12504             cmd_set_viewport_shading_rate_palette_nv: unsafe {
12505                 unsafe extern "system" fn cmd_set_viewport_shading_rate_palette_nv(
12506                     _command_buffer: CommandBuffer,
12507                     _first_viewport: u32,
12508                     _viewport_count: u32,
12509                     _p_shading_rate_palettes: *const ShadingRatePaletteNV,
12510                 ) {
12511                     panic!(concat!(
12512                         "Unable to load ",
12513                         stringify!(cmd_set_viewport_shading_rate_palette_nv)
12514                     ))
12515                 }
12516                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12517                     b"vkCmdSetViewportShadingRatePaletteNV\0",
12518                 );
12519                 let val = _f(cname);
12520                 if val.is_null() {
12521                     cmd_set_viewport_shading_rate_palette_nv
12522                 } else {
12523                     ::std::mem::transmute(val)
12524                 }
12525             },
12526             cmd_set_coarse_sample_order_nv: unsafe {
12527                 unsafe extern "system" fn cmd_set_coarse_sample_order_nv(
12528                     _command_buffer: CommandBuffer,
12529                     _sample_order_type: CoarseSampleOrderTypeNV,
12530                     _custom_sample_order_count: u32,
12531                     _p_custom_sample_orders: *const CoarseSampleOrderCustomNV,
12532                 ) {
12533                     panic!(concat!(
12534                         "Unable to load ",
12535                         stringify!(cmd_set_coarse_sample_order_nv)
12536                     ))
12537                 }
12538                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12539                     b"vkCmdSetCoarseSampleOrderNV\0",
12540                 );
12541                 let val = _f(cname);
12542                 if val.is_null() {
12543                     cmd_set_coarse_sample_order_nv
12544                 } else {
12545                     ::std::mem::transmute(val)
12546                 }
12547             },
12548         }
12549     }
12550     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBindShadingRateImageNV.html>"]
cmd_bind_shading_rate_image_nv( &self, command_buffer: CommandBuffer, image_view: ImageView, image_layout: ImageLayout, )12551     pub unsafe fn cmd_bind_shading_rate_image_nv(
12552         &self,
12553         command_buffer: CommandBuffer,
12554         image_view: ImageView,
12555         image_layout: ImageLayout,
12556     ) {
12557         (self.cmd_bind_shading_rate_image_nv)(command_buffer, image_view, image_layout)
12558     }
12559     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetViewportShadingRatePaletteNV.html>"]
cmd_set_viewport_shading_rate_palette_nv( &self, command_buffer: CommandBuffer, first_viewport: u32, viewport_count: u32, p_shading_rate_palettes: *const ShadingRatePaletteNV, )12560     pub unsafe fn cmd_set_viewport_shading_rate_palette_nv(
12561         &self,
12562         command_buffer: CommandBuffer,
12563         first_viewport: u32,
12564         viewport_count: u32,
12565         p_shading_rate_palettes: *const ShadingRatePaletteNV,
12566     ) {
12567         (self.cmd_set_viewport_shading_rate_palette_nv)(
12568             command_buffer,
12569             first_viewport,
12570             viewport_count,
12571             p_shading_rate_palettes,
12572         )
12573     }
12574     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetCoarseSampleOrderNV.html>"]
cmd_set_coarse_sample_order_nv( &self, command_buffer: CommandBuffer, sample_order_type: CoarseSampleOrderTypeNV, custom_sample_order_count: u32, p_custom_sample_orders: *const CoarseSampleOrderCustomNV, )12575     pub unsafe fn cmd_set_coarse_sample_order_nv(
12576         &self,
12577         command_buffer: CommandBuffer,
12578         sample_order_type: CoarseSampleOrderTypeNV,
12579         custom_sample_order_count: u32,
12580         p_custom_sample_orders: *const CoarseSampleOrderCustomNV,
12581     ) {
12582         (self.cmd_set_coarse_sample_order_nv)(
12583             command_buffer,
12584             sample_order_type,
12585             custom_sample_order_count,
12586             p_custom_sample_orders,
12587         )
12588     }
12589 }
12590 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
12591 impl AccessFlags {
12592     pub const SHADING_RATE_IMAGE_READ_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR;
12593 }
12594 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
12595 impl DynamicState {
12596     pub const VIEWPORT_SHADING_RATE_PALETTE_NV: Self = Self(1_000_164_004);
12597     pub const VIEWPORT_COARSE_SAMPLE_ORDER_NV: Self = Self(1_000_164_006);
12598 }
12599 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
12600 impl ImageLayout {
12601     pub const SHADING_RATE_OPTIMAL_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR;
12602 }
12603 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
12604 impl ImageUsageFlags {
12605     pub const SHADING_RATE_IMAGE_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR;
12606 }
12607 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
12608 impl PipelineStageFlags {
12609     pub const SHADING_RATE_IMAGE_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_KHR;
12610 }
12611 #[doc = "Generated from 'VK_NV_shading_rate_image'"]
12612 impl StructureType {
12613     pub const PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: Self = Self(1_000_164_000);
12614     pub const PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: Self = Self(1_000_164_001);
12615     pub const PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: Self = Self(1_000_164_002);
12616     pub const PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: Self =
12617         Self(1_000_164_005);
12618 }
12619 impl NvRayTracingFn {
name() -> &'static ::std::ffi::CStr12620     pub fn name() -> &'static ::std::ffi::CStr {
12621         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_ray_tracing\0") }
12622     }
12623     pub const SPEC_VERSION: u32 = 3u32;
12624 }
12625 #[allow(non_camel_case_types)]
12626 pub type PFN_vkCreateAccelerationStructureNV = unsafe extern "system" fn(
12627     device: Device,
12628     p_create_info: *const AccelerationStructureCreateInfoNV,
12629     p_allocator: *const AllocationCallbacks,
12630     p_acceleration_structure: *mut AccelerationStructureNV,
12631 ) -> Result;
12632 #[allow(non_camel_case_types)]
12633 pub type PFN_vkDestroyAccelerationStructureNV = unsafe extern "system" fn(
12634     device: Device,
12635     acceleration_structure: AccelerationStructureNV,
12636     p_allocator: *const AllocationCallbacks,
12637 );
12638 #[allow(non_camel_case_types)]
12639 pub type PFN_vkGetAccelerationStructureMemoryRequirementsNV = unsafe extern "system" fn(
12640     device: Device,
12641     p_info: *const AccelerationStructureMemoryRequirementsInfoNV,
12642     p_memory_requirements: *mut MemoryRequirements2KHR,
12643 );
12644 #[allow(non_camel_case_types)]
12645 pub type PFN_vkBindAccelerationStructureMemoryNV = unsafe extern "system" fn(
12646     device: Device,
12647     bind_info_count: u32,
12648     p_bind_infos: *const BindAccelerationStructureMemoryInfoNV,
12649 ) -> Result;
12650 #[allow(non_camel_case_types)]
12651 pub type PFN_vkCmdBuildAccelerationStructureNV = unsafe extern "system" fn(
12652     command_buffer: CommandBuffer,
12653     p_info: *const AccelerationStructureInfoNV,
12654     instance_data: Buffer,
12655     instance_offset: DeviceSize,
12656     update: Bool32,
12657     dst: AccelerationStructureNV,
12658     src: AccelerationStructureNV,
12659     scratch: Buffer,
12660     scratch_offset: DeviceSize,
12661 );
12662 #[allow(non_camel_case_types)]
12663 pub type PFN_vkCmdCopyAccelerationStructureNV = unsafe extern "system" fn(
12664     command_buffer: CommandBuffer,
12665     dst: AccelerationStructureNV,
12666     src: AccelerationStructureNV,
12667     mode: CopyAccelerationStructureModeKHR,
12668 );
12669 #[allow(non_camel_case_types)]
12670 pub type PFN_vkCmdTraceRaysNV = unsafe extern "system" fn(
12671     command_buffer: CommandBuffer,
12672     raygen_shader_binding_table_buffer: Buffer,
12673     raygen_shader_binding_offset: DeviceSize,
12674     miss_shader_binding_table_buffer: Buffer,
12675     miss_shader_binding_offset: DeviceSize,
12676     miss_shader_binding_stride: DeviceSize,
12677     hit_shader_binding_table_buffer: Buffer,
12678     hit_shader_binding_offset: DeviceSize,
12679     hit_shader_binding_stride: DeviceSize,
12680     callable_shader_binding_table_buffer: Buffer,
12681     callable_shader_binding_offset: DeviceSize,
12682     callable_shader_binding_stride: DeviceSize,
12683     width: u32,
12684     height: u32,
12685     depth: u32,
12686 );
12687 #[allow(non_camel_case_types)]
12688 pub type PFN_vkCreateRayTracingPipelinesNV = unsafe extern "system" fn(
12689     device: Device,
12690     pipeline_cache: PipelineCache,
12691     create_info_count: u32,
12692     p_create_infos: *const RayTracingPipelineCreateInfoNV,
12693     p_allocator: *const AllocationCallbacks,
12694     p_pipelines: *mut Pipeline,
12695 ) -> Result;
12696 #[allow(non_camel_case_types)]
12697 pub type PFN_vkGetAccelerationStructureHandleNV = unsafe extern "system" fn(
12698     device: Device,
12699     acceleration_structure: AccelerationStructureNV,
12700     data_size: usize,
12701     p_data: *mut c_void,
12702 ) -> Result;
12703 #[allow(non_camel_case_types)]
12704 pub type PFN_vkCmdWriteAccelerationStructuresPropertiesNV = unsafe extern "system" fn(
12705     command_buffer: CommandBuffer,
12706     acceleration_structure_count: u32,
12707     p_acceleration_structures: *const AccelerationStructureNV,
12708     query_type: QueryType,
12709     query_pool: QueryPool,
12710     first_query: u32,
12711 );
12712 #[allow(non_camel_case_types)]
12713 pub type PFN_vkCompileDeferredNV =
12714     unsafe extern "system" fn(device: Device, pipeline: Pipeline, shader: u32) -> Result;
12715 #[derive(Clone)]
12716 pub struct NvRayTracingFn {
12717     pub create_acceleration_structure_nv: PFN_vkCreateAccelerationStructureNV,
12718     pub destroy_acceleration_structure_nv: PFN_vkDestroyAccelerationStructureNV,
12719     pub get_acceleration_structure_memory_requirements_nv:
12720         PFN_vkGetAccelerationStructureMemoryRequirementsNV,
12721     pub bind_acceleration_structure_memory_nv: PFN_vkBindAccelerationStructureMemoryNV,
12722     pub cmd_build_acceleration_structure_nv: PFN_vkCmdBuildAccelerationStructureNV,
12723     pub cmd_copy_acceleration_structure_nv: PFN_vkCmdCopyAccelerationStructureNV,
12724     pub cmd_trace_rays_nv: PFN_vkCmdTraceRaysNV,
12725     pub create_ray_tracing_pipelines_nv: PFN_vkCreateRayTracingPipelinesNV,
12726     pub get_ray_tracing_shader_group_handles_nv:
12727         crate::vk::PFN_vkGetRayTracingShaderGroupHandlesKHR,
12728     pub get_acceleration_structure_handle_nv: PFN_vkGetAccelerationStructureHandleNV,
12729     pub cmd_write_acceleration_structures_properties_nv:
12730         PFN_vkCmdWriteAccelerationStructuresPropertiesNV,
12731     pub compile_deferred_nv: PFN_vkCompileDeferredNV,
12732 }
12733 unsafe impl Send for NvRayTracingFn {}
12734 unsafe impl Sync for NvRayTracingFn {}
12735 impl NvRayTracingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,12736     pub fn load<F>(mut _f: F) -> Self
12737     where
12738         F: FnMut(&::std::ffi::CStr) -> *const c_void,
12739     {
12740         Self {
12741             create_acceleration_structure_nv: unsafe {
12742                 unsafe extern "system" fn create_acceleration_structure_nv(
12743                     _device: Device,
12744                     _p_create_info: *const AccelerationStructureCreateInfoNV,
12745                     _p_allocator: *const AllocationCallbacks,
12746                     _p_acceleration_structure: *mut AccelerationStructureNV,
12747                 ) -> Result {
12748                     panic!(concat!(
12749                         "Unable to load ",
12750                         stringify!(create_acceleration_structure_nv)
12751                     ))
12752                 }
12753                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12754                     b"vkCreateAccelerationStructureNV\0",
12755                 );
12756                 let val = _f(cname);
12757                 if val.is_null() {
12758                     create_acceleration_structure_nv
12759                 } else {
12760                     ::std::mem::transmute(val)
12761                 }
12762             },
12763             destroy_acceleration_structure_nv: unsafe {
12764                 unsafe extern "system" fn destroy_acceleration_structure_nv(
12765                     _device: Device,
12766                     _acceleration_structure: AccelerationStructureNV,
12767                     _p_allocator: *const AllocationCallbacks,
12768                 ) {
12769                     panic!(concat!(
12770                         "Unable to load ",
12771                         stringify!(destroy_acceleration_structure_nv)
12772                     ))
12773                 }
12774                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12775                     b"vkDestroyAccelerationStructureNV\0",
12776                 );
12777                 let val = _f(cname);
12778                 if val.is_null() {
12779                     destroy_acceleration_structure_nv
12780                 } else {
12781                     ::std::mem::transmute(val)
12782                 }
12783             },
12784             get_acceleration_structure_memory_requirements_nv: unsafe {
12785                 unsafe extern "system" fn get_acceleration_structure_memory_requirements_nv(
12786                     _device: Device,
12787                     _p_info: *const AccelerationStructureMemoryRequirementsInfoNV,
12788                     _p_memory_requirements: *mut MemoryRequirements2KHR,
12789                 ) {
12790                     panic!(concat!(
12791                         "Unable to load ",
12792                         stringify!(get_acceleration_structure_memory_requirements_nv)
12793                     ))
12794                 }
12795                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12796                     b"vkGetAccelerationStructureMemoryRequirementsNV\0",
12797                 );
12798                 let val = _f(cname);
12799                 if val.is_null() {
12800                     get_acceleration_structure_memory_requirements_nv
12801                 } else {
12802                     ::std::mem::transmute(val)
12803                 }
12804             },
12805             bind_acceleration_structure_memory_nv: unsafe {
12806                 unsafe extern "system" fn bind_acceleration_structure_memory_nv(
12807                     _device: Device,
12808                     _bind_info_count: u32,
12809                     _p_bind_infos: *const BindAccelerationStructureMemoryInfoNV,
12810                 ) -> Result {
12811                     panic!(concat!(
12812                         "Unable to load ",
12813                         stringify!(bind_acceleration_structure_memory_nv)
12814                     ))
12815                 }
12816                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12817                     b"vkBindAccelerationStructureMemoryNV\0",
12818                 );
12819                 let val = _f(cname);
12820                 if val.is_null() {
12821                     bind_acceleration_structure_memory_nv
12822                 } else {
12823                     ::std::mem::transmute(val)
12824                 }
12825             },
12826             cmd_build_acceleration_structure_nv: unsafe {
12827                 unsafe extern "system" fn cmd_build_acceleration_structure_nv(
12828                     _command_buffer: CommandBuffer,
12829                     _p_info: *const AccelerationStructureInfoNV,
12830                     _instance_data: Buffer,
12831                     _instance_offset: DeviceSize,
12832                     _update: Bool32,
12833                     _dst: AccelerationStructureNV,
12834                     _src: AccelerationStructureNV,
12835                     _scratch: Buffer,
12836                     _scratch_offset: DeviceSize,
12837                 ) {
12838                     panic!(concat!(
12839                         "Unable to load ",
12840                         stringify!(cmd_build_acceleration_structure_nv)
12841                     ))
12842                 }
12843                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12844                     b"vkCmdBuildAccelerationStructureNV\0",
12845                 );
12846                 let val = _f(cname);
12847                 if val.is_null() {
12848                     cmd_build_acceleration_structure_nv
12849                 } else {
12850                     ::std::mem::transmute(val)
12851                 }
12852             },
12853             cmd_copy_acceleration_structure_nv: unsafe {
12854                 unsafe extern "system" fn cmd_copy_acceleration_structure_nv(
12855                     _command_buffer: CommandBuffer,
12856                     _dst: AccelerationStructureNV,
12857                     _src: AccelerationStructureNV,
12858                     _mode: CopyAccelerationStructureModeKHR,
12859                 ) {
12860                     panic!(concat!(
12861                         "Unable to load ",
12862                         stringify!(cmd_copy_acceleration_structure_nv)
12863                     ))
12864                 }
12865                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12866                     b"vkCmdCopyAccelerationStructureNV\0",
12867                 );
12868                 let val = _f(cname);
12869                 if val.is_null() {
12870                     cmd_copy_acceleration_structure_nv
12871                 } else {
12872                     ::std::mem::transmute(val)
12873                 }
12874             },
12875             cmd_trace_rays_nv: unsafe {
12876                 unsafe extern "system" fn cmd_trace_rays_nv(
12877                     _command_buffer: CommandBuffer,
12878                     _raygen_shader_binding_table_buffer: Buffer,
12879                     _raygen_shader_binding_offset: DeviceSize,
12880                     _miss_shader_binding_table_buffer: Buffer,
12881                     _miss_shader_binding_offset: DeviceSize,
12882                     _miss_shader_binding_stride: DeviceSize,
12883                     _hit_shader_binding_table_buffer: Buffer,
12884                     _hit_shader_binding_offset: DeviceSize,
12885                     _hit_shader_binding_stride: DeviceSize,
12886                     _callable_shader_binding_table_buffer: Buffer,
12887                     _callable_shader_binding_offset: DeviceSize,
12888                     _callable_shader_binding_stride: DeviceSize,
12889                     _width: u32,
12890                     _height: u32,
12891                     _depth: u32,
12892                 ) {
12893                     panic!(concat!("Unable to load ", stringify!(cmd_trace_rays_nv)))
12894                 }
12895                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdTraceRaysNV\0");
12896                 let val = _f(cname);
12897                 if val.is_null() {
12898                     cmd_trace_rays_nv
12899                 } else {
12900                     ::std::mem::transmute(val)
12901                 }
12902             },
12903             create_ray_tracing_pipelines_nv: unsafe {
12904                 unsafe extern "system" fn create_ray_tracing_pipelines_nv(
12905                     _device: Device,
12906                     _pipeline_cache: PipelineCache,
12907                     _create_info_count: u32,
12908                     _p_create_infos: *const RayTracingPipelineCreateInfoNV,
12909                     _p_allocator: *const AllocationCallbacks,
12910                     _p_pipelines: *mut Pipeline,
12911                 ) -> Result {
12912                     panic!(concat!(
12913                         "Unable to load ",
12914                         stringify!(create_ray_tracing_pipelines_nv)
12915                     ))
12916                 }
12917                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12918                     b"vkCreateRayTracingPipelinesNV\0",
12919                 );
12920                 let val = _f(cname);
12921                 if val.is_null() {
12922                     create_ray_tracing_pipelines_nv
12923                 } else {
12924                     ::std::mem::transmute(val)
12925                 }
12926             },
12927             get_ray_tracing_shader_group_handles_nv: unsafe {
12928                 unsafe extern "system" fn get_ray_tracing_shader_group_handles_nv(
12929                     _device: Device,
12930                     _pipeline: Pipeline,
12931                     _first_group: u32,
12932                     _group_count: u32,
12933                     _data_size: usize,
12934                     _p_data: *mut c_void,
12935                 ) -> Result {
12936                     panic!(concat!(
12937                         "Unable to load ",
12938                         stringify!(get_ray_tracing_shader_group_handles_nv)
12939                     ))
12940                 }
12941                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12942                     b"vkGetRayTracingShaderGroupHandlesNV\0",
12943                 );
12944                 let val = _f(cname);
12945                 if val.is_null() {
12946                     get_ray_tracing_shader_group_handles_nv
12947                 } else {
12948                     ::std::mem::transmute(val)
12949                 }
12950             },
12951             get_acceleration_structure_handle_nv: unsafe {
12952                 unsafe extern "system" fn get_acceleration_structure_handle_nv(
12953                     _device: Device,
12954                     _acceleration_structure: AccelerationStructureNV,
12955                     _data_size: usize,
12956                     _p_data: *mut c_void,
12957                 ) -> Result {
12958                     panic!(concat!(
12959                         "Unable to load ",
12960                         stringify!(get_acceleration_structure_handle_nv)
12961                     ))
12962                 }
12963                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12964                     b"vkGetAccelerationStructureHandleNV\0",
12965                 );
12966                 let val = _f(cname);
12967                 if val.is_null() {
12968                     get_acceleration_structure_handle_nv
12969                 } else {
12970                     ::std::mem::transmute(val)
12971                 }
12972             },
12973             cmd_write_acceleration_structures_properties_nv: unsafe {
12974                 unsafe extern "system" fn cmd_write_acceleration_structures_properties_nv(
12975                     _command_buffer: CommandBuffer,
12976                     _acceleration_structure_count: u32,
12977                     _p_acceleration_structures: *const AccelerationStructureNV,
12978                     _query_type: QueryType,
12979                     _query_pool: QueryPool,
12980                     _first_query: u32,
12981                 ) {
12982                     panic!(concat!(
12983                         "Unable to load ",
12984                         stringify!(cmd_write_acceleration_structures_properties_nv)
12985                     ))
12986                 }
12987                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
12988                     b"vkCmdWriteAccelerationStructuresPropertiesNV\0",
12989                 );
12990                 let val = _f(cname);
12991                 if val.is_null() {
12992                     cmd_write_acceleration_structures_properties_nv
12993                 } else {
12994                     ::std::mem::transmute(val)
12995                 }
12996             },
12997             compile_deferred_nv: unsafe {
12998                 unsafe extern "system" fn compile_deferred_nv(
12999                     _device: Device,
13000                     _pipeline: Pipeline,
13001                     _shader: u32,
13002                 ) -> Result {
13003                     panic!(concat!("Unable to load ", stringify!(compile_deferred_nv)))
13004                 }
13005                 let cname =
13006                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCompileDeferredNV\0");
13007                 let val = _f(cname);
13008                 if val.is_null() {
13009                     compile_deferred_nv
13010                 } else {
13011                     ::std::mem::transmute(val)
13012                 }
13013             },
13014         }
13015     }
13016     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateAccelerationStructureNV.html>"]
create_acceleration_structure_nv( &self, device: Device, p_create_info: *const AccelerationStructureCreateInfoNV, p_allocator: *const AllocationCallbacks, p_acceleration_structure: *mut AccelerationStructureNV, ) -> Result13017     pub unsafe fn create_acceleration_structure_nv(
13018         &self,
13019         device: Device,
13020         p_create_info: *const AccelerationStructureCreateInfoNV,
13021         p_allocator: *const AllocationCallbacks,
13022         p_acceleration_structure: *mut AccelerationStructureNV,
13023     ) -> Result {
13024         (self.create_acceleration_structure_nv)(
13025             device,
13026             p_create_info,
13027             p_allocator,
13028             p_acceleration_structure,
13029         )
13030     }
13031     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroyAccelerationStructureNV.html>"]
destroy_acceleration_structure_nv( &self, device: Device, acceleration_structure: AccelerationStructureNV, p_allocator: *const AllocationCallbacks, )13032     pub unsafe fn destroy_acceleration_structure_nv(
13033         &self,
13034         device: Device,
13035         acceleration_structure: AccelerationStructureNV,
13036         p_allocator: *const AllocationCallbacks,
13037     ) {
13038         (self.destroy_acceleration_structure_nv)(device, acceleration_structure, p_allocator)
13039     }
13040     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetAccelerationStructureMemoryRequirementsNV.html>"]
get_acceleration_structure_memory_requirements_nv( &self, device: Device, p_info: *const AccelerationStructureMemoryRequirementsInfoNV, p_memory_requirements: *mut MemoryRequirements2KHR, )13041     pub unsafe fn get_acceleration_structure_memory_requirements_nv(
13042         &self,
13043         device: Device,
13044         p_info: *const AccelerationStructureMemoryRequirementsInfoNV,
13045         p_memory_requirements: *mut MemoryRequirements2KHR,
13046     ) {
13047         (self.get_acceleration_structure_memory_requirements_nv)(
13048             device,
13049             p_info,
13050             p_memory_requirements,
13051         )
13052     }
13053     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkBindAccelerationStructureMemoryNV.html>"]
bind_acceleration_structure_memory_nv( &self, device: Device, bind_info_count: u32, p_bind_infos: *const BindAccelerationStructureMemoryInfoNV, ) -> Result13054     pub unsafe fn bind_acceleration_structure_memory_nv(
13055         &self,
13056         device: Device,
13057         bind_info_count: u32,
13058         p_bind_infos: *const BindAccelerationStructureMemoryInfoNV,
13059     ) -> Result {
13060         (self.bind_acceleration_structure_memory_nv)(device, bind_info_count, p_bind_infos)
13061     }
13062     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBuildAccelerationStructureNV.html>"]
cmd_build_acceleration_structure_nv( &self, command_buffer: CommandBuffer, p_info: *const AccelerationStructureInfoNV, instance_data: Buffer, instance_offset: DeviceSize, update: Bool32, dst: AccelerationStructureNV, src: AccelerationStructureNV, scratch: Buffer, scratch_offset: DeviceSize, )13063     pub unsafe fn cmd_build_acceleration_structure_nv(
13064         &self,
13065         command_buffer: CommandBuffer,
13066         p_info: *const AccelerationStructureInfoNV,
13067         instance_data: Buffer,
13068         instance_offset: DeviceSize,
13069         update: Bool32,
13070         dst: AccelerationStructureNV,
13071         src: AccelerationStructureNV,
13072         scratch: Buffer,
13073         scratch_offset: DeviceSize,
13074     ) {
13075         (self.cmd_build_acceleration_structure_nv)(
13076             command_buffer,
13077             p_info,
13078             instance_data,
13079             instance_offset,
13080             update,
13081             dst,
13082             src,
13083             scratch,
13084             scratch_offset,
13085         )
13086     }
13087     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdCopyAccelerationStructureNV.html>"]
cmd_copy_acceleration_structure_nv( &self, command_buffer: CommandBuffer, dst: AccelerationStructureNV, src: AccelerationStructureNV, mode: CopyAccelerationStructureModeKHR, )13088     pub unsafe fn cmd_copy_acceleration_structure_nv(
13089         &self,
13090         command_buffer: CommandBuffer,
13091         dst: AccelerationStructureNV,
13092         src: AccelerationStructureNV,
13093         mode: CopyAccelerationStructureModeKHR,
13094     ) {
13095         (self.cmd_copy_acceleration_structure_nv)(command_buffer, dst, src, mode)
13096     }
13097     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdTraceRaysNV.html>"]
cmd_trace_rays_nv( &self, command_buffer: CommandBuffer, raygen_shader_binding_table_buffer: Buffer, raygen_shader_binding_offset: DeviceSize, miss_shader_binding_table_buffer: Buffer, miss_shader_binding_offset: DeviceSize, miss_shader_binding_stride: DeviceSize, hit_shader_binding_table_buffer: Buffer, hit_shader_binding_offset: DeviceSize, hit_shader_binding_stride: DeviceSize, callable_shader_binding_table_buffer: Buffer, callable_shader_binding_offset: DeviceSize, callable_shader_binding_stride: DeviceSize, width: u32, height: u32, depth: u32, )13098     pub unsafe fn cmd_trace_rays_nv(
13099         &self,
13100         command_buffer: CommandBuffer,
13101         raygen_shader_binding_table_buffer: Buffer,
13102         raygen_shader_binding_offset: DeviceSize,
13103         miss_shader_binding_table_buffer: Buffer,
13104         miss_shader_binding_offset: DeviceSize,
13105         miss_shader_binding_stride: DeviceSize,
13106         hit_shader_binding_table_buffer: Buffer,
13107         hit_shader_binding_offset: DeviceSize,
13108         hit_shader_binding_stride: DeviceSize,
13109         callable_shader_binding_table_buffer: Buffer,
13110         callable_shader_binding_offset: DeviceSize,
13111         callable_shader_binding_stride: DeviceSize,
13112         width: u32,
13113         height: u32,
13114         depth: u32,
13115     ) {
13116         (self.cmd_trace_rays_nv)(
13117             command_buffer,
13118             raygen_shader_binding_table_buffer,
13119             raygen_shader_binding_offset,
13120             miss_shader_binding_table_buffer,
13121             miss_shader_binding_offset,
13122             miss_shader_binding_stride,
13123             hit_shader_binding_table_buffer,
13124             hit_shader_binding_offset,
13125             hit_shader_binding_stride,
13126             callable_shader_binding_table_buffer,
13127             callable_shader_binding_offset,
13128             callable_shader_binding_stride,
13129             width,
13130             height,
13131             depth,
13132         )
13133     }
13134     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateRayTracingPipelinesNV.html>"]
create_ray_tracing_pipelines_nv( &self, device: Device, pipeline_cache: PipelineCache, create_info_count: u32, p_create_infos: *const RayTracingPipelineCreateInfoNV, p_allocator: *const AllocationCallbacks, p_pipelines: *mut Pipeline, ) -> Result13135     pub unsafe fn create_ray_tracing_pipelines_nv(
13136         &self,
13137         device: Device,
13138         pipeline_cache: PipelineCache,
13139         create_info_count: u32,
13140         p_create_infos: *const RayTracingPipelineCreateInfoNV,
13141         p_allocator: *const AllocationCallbacks,
13142         p_pipelines: *mut Pipeline,
13143     ) -> Result {
13144         (self.create_ray_tracing_pipelines_nv)(
13145             device,
13146             pipeline_cache,
13147             create_info_count,
13148             p_create_infos,
13149             p_allocator,
13150             p_pipelines,
13151         )
13152     }
13153     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetRayTracingShaderGroupHandlesNV.html>"]
get_ray_tracing_shader_group_handles_nv( &self, device: Device, pipeline: Pipeline, first_group: u32, group_count: u32, data_size: usize, p_data: *mut c_void, ) -> Result13154     pub unsafe fn get_ray_tracing_shader_group_handles_nv(
13155         &self,
13156         device: Device,
13157         pipeline: Pipeline,
13158         first_group: u32,
13159         group_count: u32,
13160         data_size: usize,
13161         p_data: *mut c_void,
13162     ) -> Result {
13163         (self.get_ray_tracing_shader_group_handles_nv)(
13164             device,
13165             pipeline,
13166             first_group,
13167             group_count,
13168             data_size,
13169             p_data,
13170         )
13171     }
13172     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetAccelerationStructureHandleNV.html>"]
get_acceleration_structure_handle_nv( &self, device: Device, acceleration_structure: AccelerationStructureNV, data_size: usize, p_data: *mut c_void, ) -> Result13173     pub unsafe fn get_acceleration_structure_handle_nv(
13174         &self,
13175         device: Device,
13176         acceleration_structure: AccelerationStructureNV,
13177         data_size: usize,
13178         p_data: *mut c_void,
13179     ) -> Result {
13180         (self.get_acceleration_structure_handle_nv)(
13181             device,
13182             acceleration_structure,
13183             data_size,
13184             p_data,
13185         )
13186     }
13187     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdWriteAccelerationStructuresPropertiesNV.html>"]
cmd_write_acceleration_structures_properties_nv( &self, command_buffer: CommandBuffer, acceleration_structure_count: u32, p_acceleration_structures: *const AccelerationStructureNV, query_type: QueryType, query_pool: QueryPool, first_query: u32, )13188     pub unsafe fn cmd_write_acceleration_structures_properties_nv(
13189         &self,
13190         command_buffer: CommandBuffer,
13191         acceleration_structure_count: u32,
13192         p_acceleration_structures: *const AccelerationStructureNV,
13193         query_type: QueryType,
13194         query_pool: QueryPool,
13195         first_query: u32,
13196     ) {
13197         (self.cmd_write_acceleration_structures_properties_nv)(
13198             command_buffer,
13199             acceleration_structure_count,
13200             p_acceleration_structures,
13201             query_type,
13202             query_pool,
13203             first_query,
13204         )
13205     }
13206     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCompileDeferredNV.html>"]
compile_deferred_nv( &self, device: Device, pipeline: Pipeline, shader: u32, ) -> Result13207     pub unsafe fn compile_deferred_nv(
13208         &self,
13209         device: Device,
13210         pipeline: Pipeline,
13211         shader: u32,
13212     ) -> Result {
13213         (self.compile_deferred_nv)(device, pipeline, shader)
13214     }
13215 }
13216 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13217 impl AccelerationStructureTypeKHR {
13218     pub const TOP_LEVEL_NV: Self = Self::TOP_LEVEL;
13219     pub const BOTTOM_LEVEL_NV: Self = Self::BOTTOM_LEVEL;
13220 }
13221 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13222 impl AccessFlags {
13223     pub const ACCELERATION_STRUCTURE_READ_NV: Self = Self::ACCELERATION_STRUCTURE_READ_KHR;
13224     pub const ACCELERATION_STRUCTURE_WRITE_NV: Self = Self::ACCELERATION_STRUCTURE_WRITE_KHR;
13225 }
13226 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13227 impl BufferUsageFlags {
13228     pub const RAY_TRACING_NV: Self = Self::SHADER_BINDING_TABLE_KHR;
13229 }
13230 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13231 impl BuildAccelerationStructureFlagsKHR {
13232     pub const ALLOW_UPDATE_NV: Self = Self::ALLOW_UPDATE;
13233     pub const ALLOW_COMPACTION_NV: Self = Self::ALLOW_COMPACTION;
13234     pub const PREFER_FAST_TRACE_NV: Self = Self::PREFER_FAST_TRACE;
13235     pub const PREFER_FAST_BUILD_NV: Self = Self::PREFER_FAST_BUILD;
13236     pub const LOW_MEMORY_NV: Self = Self::LOW_MEMORY;
13237 }
13238 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13239 impl CopyAccelerationStructureModeKHR {
13240     pub const CLONE_NV: Self = Self::CLONE;
13241     pub const COMPACT_NV: Self = Self::COMPACT;
13242 }
13243 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13244 impl DebugReportObjectTypeEXT {
13245     pub const ACCELERATION_STRUCTURE_NV: Self = Self(1_000_165_000);
13246 }
13247 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13248 impl DescriptorType {
13249     pub const ACCELERATION_STRUCTURE_NV: Self = Self(1_000_165_000);
13250 }
13251 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13252 impl GeometryFlagsKHR {
13253     pub const OPAQUE_NV: Self = Self::OPAQUE;
13254     pub const NO_DUPLICATE_ANY_HIT_INVOCATION_NV: Self = Self::NO_DUPLICATE_ANY_HIT_INVOCATION;
13255 }
13256 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13257 impl GeometryInstanceFlagsKHR {
13258     pub const TRIANGLE_CULL_DISABLE_NV: Self = Self::TRIANGLE_FACING_CULL_DISABLE;
13259     pub const TRIANGLE_FRONT_COUNTERCLOCKWISE_NV: Self = Self::TRIANGLE_FRONT_COUNTERCLOCKWISE;
13260     pub const FORCE_OPAQUE_NV: Self = Self::FORCE_OPAQUE;
13261     pub const FORCE_NO_OPAQUE_NV: Self = Self::FORCE_NO_OPAQUE;
13262 }
13263 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13264 impl GeometryTypeKHR {
13265     pub const TRIANGLES_NV: Self = Self::TRIANGLES;
13266     pub const AABBS_NV: Self = Self::AABBS;
13267 }
13268 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13269 impl IndexType {
13270     pub const NONE_NV: Self = Self::NONE_KHR;
13271 }
13272 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13273 impl ObjectType {
13274     pub const ACCELERATION_STRUCTURE_NV: Self = Self(1_000_165_000);
13275 }
13276 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13277 impl PipelineBindPoint {
13278     pub const RAY_TRACING_NV: Self = Self::RAY_TRACING_KHR;
13279 }
13280 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13281 impl PipelineCreateFlags {
13282     pub const DEFER_COMPILE_NV: Self = Self(0b10_0000);
13283 }
13284 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13285 impl PipelineStageFlags {
13286     pub const RAY_TRACING_SHADER_NV: Self = Self::RAY_TRACING_SHADER_KHR;
13287     pub const ACCELERATION_STRUCTURE_BUILD_NV: Self = Self::ACCELERATION_STRUCTURE_BUILD_KHR;
13288 }
13289 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13290 impl QueryType {
13291     pub const ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV: Self = Self(1_000_165_000);
13292 }
13293 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13294 impl RayTracingShaderGroupTypeKHR {
13295     pub const GENERAL_NV: Self = Self::GENERAL;
13296     pub const TRIANGLES_HIT_GROUP_NV: Self = Self::TRIANGLES_HIT_GROUP;
13297     pub const PROCEDURAL_HIT_GROUP_NV: Self = Self::PROCEDURAL_HIT_GROUP;
13298 }
13299 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13300 impl ShaderStageFlags {
13301     pub const RAYGEN_NV: Self = Self::RAYGEN_KHR;
13302     pub const ANY_HIT_NV: Self = Self::ANY_HIT_KHR;
13303     pub const CLOSEST_HIT_NV: Self = Self::CLOSEST_HIT_KHR;
13304     pub const MISS_NV: Self = Self::MISS_KHR;
13305     pub const INTERSECTION_NV: Self = Self::INTERSECTION_KHR;
13306     pub const CALLABLE_NV: Self = Self::CALLABLE_KHR;
13307 }
13308 #[doc = "Generated from 'VK_NV_ray_tracing'"]
13309 impl StructureType {
13310     pub const RAY_TRACING_PIPELINE_CREATE_INFO_NV: Self = Self(1_000_165_000);
13311     pub const ACCELERATION_STRUCTURE_CREATE_INFO_NV: Self = Self(1_000_165_001);
13312     pub const GEOMETRY_NV: Self = Self(1_000_165_003);
13313     pub const GEOMETRY_TRIANGLES_NV: Self = Self(1_000_165_004);
13314     pub const GEOMETRY_AABB_NV: Self = Self(1_000_165_005);
13315     pub const BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV: Self = Self(1_000_165_006);
13316     pub const WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: Self = Self(1_000_165_007);
13317     pub const ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV: Self = Self(1_000_165_008);
13318     pub const PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: Self = Self(1_000_165_009);
13319     pub const RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV: Self = Self(1_000_165_011);
13320     pub const ACCELERATION_STRUCTURE_INFO_NV: Self = Self(1_000_165_012);
13321 }
13322 impl NvRepresentativeFragmentTestFn {
name() -> &'static ::std::ffi::CStr13323     pub fn name() -> &'static ::std::ffi::CStr {
13324         unsafe {
13325             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_representative_fragment_test\0")
13326         }
13327     }
13328     pub const SPEC_VERSION: u32 = 2u32;
13329 }
13330 #[derive(Clone)]
13331 pub struct NvRepresentativeFragmentTestFn {}
13332 unsafe impl Send for NvRepresentativeFragmentTestFn {}
13333 unsafe impl Sync for NvRepresentativeFragmentTestFn {}
13334 impl NvRepresentativeFragmentTestFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13335     pub fn load<F>(mut _f: F) -> Self
13336     where
13337         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13338     {
13339         Self {}
13340     }
13341 }
13342 #[doc = "Generated from 'VK_NV_representative_fragment_test'"]
13343 impl StructureType {
13344     pub const PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: Self = Self(1_000_166_000);
13345     pub const PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: Self =
13346         Self(1_000_166_001);
13347 }
13348 impl NvExtension168Fn {
name() -> &'static ::std::ffi::CStr13349     pub fn name() -> &'static ::std::ffi::CStr {
13350         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_168\0") }
13351     }
13352     pub const SPEC_VERSION: u32 = 0u32;
13353 }
13354 #[derive(Clone)]
13355 pub struct NvExtension168Fn {}
13356 unsafe impl Send for NvExtension168Fn {}
13357 unsafe impl Sync for NvExtension168Fn {}
13358 impl NvExtension168Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13359     pub fn load<F>(mut _f: F) -> Self
13360     where
13361         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13362     {
13363         Self {}
13364     }
13365 }
13366 impl KhrMaintenance3Fn {
name() -> &'static ::std::ffi::CStr13367     pub fn name() -> &'static ::std::ffi::CStr {
13368         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance3\0") }
13369     }
13370     pub const SPEC_VERSION: u32 = 1u32;
13371 }
13372 #[allow(non_camel_case_types)]
13373 pub type PFN_vkGetDescriptorSetLayoutSupport = unsafe extern "system" fn(
13374     device: Device,
13375     p_create_info: *const DescriptorSetLayoutCreateInfo,
13376     p_support: *mut DescriptorSetLayoutSupport,
13377 );
13378 #[derive(Clone)]
13379 pub struct KhrMaintenance3Fn {
13380     pub get_descriptor_set_layout_support_khr: PFN_vkGetDescriptorSetLayoutSupport,
13381 }
13382 unsafe impl Send for KhrMaintenance3Fn {}
13383 unsafe impl Sync for KhrMaintenance3Fn {}
13384 impl KhrMaintenance3Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13385     pub fn load<F>(mut _f: F) -> Self
13386     where
13387         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13388     {
13389         Self {
13390             get_descriptor_set_layout_support_khr: unsafe {
13391                 unsafe extern "system" fn get_descriptor_set_layout_support_khr(
13392                     _device: Device,
13393                     _p_create_info: *const DescriptorSetLayoutCreateInfo,
13394                     _p_support: *mut DescriptorSetLayoutSupport,
13395                 ) {
13396                     panic!(concat!(
13397                         "Unable to load ",
13398                         stringify!(get_descriptor_set_layout_support_khr)
13399                     ))
13400                 }
13401                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13402                     b"vkGetDescriptorSetLayoutSupportKHR\0",
13403                 );
13404                 let val = _f(cname);
13405                 if val.is_null() {
13406                     get_descriptor_set_layout_support_khr
13407                 } else {
13408                     ::std::mem::transmute(val)
13409                 }
13410             },
13411         }
13412     }
13413     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDescriptorSetLayoutSupportKHR.html>"]
get_descriptor_set_layout_support_khr( &self, device: Device, p_create_info: *const DescriptorSetLayoutCreateInfo, p_support: *mut DescriptorSetLayoutSupport, )13414     pub unsafe fn get_descriptor_set_layout_support_khr(
13415         &self,
13416         device: Device,
13417         p_create_info: *const DescriptorSetLayoutCreateInfo,
13418         p_support: *mut DescriptorSetLayoutSupport,
13419     ) {
13420         (self.get_descriptor_set_layout_support_khr)(device, p_create_info, p_support)
13421     }
13422 }
13423 #[doc = "Generated from 'VK_KHR_maintenance3'"]
13424 impl StructureType {
13425     pub const PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR: Self =
13426         Self::PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES;
13427     pub const DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR: Self = Self::DESCRIPTOR_SET_LAYOUT_SUPPORT;
13428 }
13429 impl KhrDrawIndirectCountFn {
name() -> &'static ::std::ffi::CStr13430     pub fn name() -> &'static ::std::ffi::CStr {
13431         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_draw_indirect_count\0") }
13432     }
13433     pub const SPEC_VERSION: u32 = 1u32;
13434 }
13435 #[derive(Clone)]
13436 pub struct KhrDrawIndirectCountFn {
13437     pub cmd_draw_indirect_count_khr: crate::vk::PFN_vkCmdDrawIndirectCount,
13438     pub cmd_draw_indexed_indirect_count_khr: crate::vk::PFN_vkCmdDrawIndexedIndirectCount,
13439 }
13440 unsafe impl Send for KhrDrawIndirectCountFn {}
13441 unsafe impl Sync for KhrDrawIndirectCountFn {}
13442 impl KhrDrawIndirectCountFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13443     pub fn load<F>(mut _f: F) -> Self
13444     where
13445         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13446     {
13447         Self {
13448             cmd_draw_indirect_count_khr: unsafe {
13449                 unsafe extern "system" fn cmd_draw_indirect_count_khr(
13450                     _command_buffer: CommandBuffer,
13451                     _buffer: Buffer,
13452                     _offset: DeviceSize,
13453                     _count_buffer: Buffer,
13454                     _count_buffer_offset: DeviceSize,
13455                     _max_draw_count: u32,
13456                     _stride: u32,
13457                 ) {
13458                     panic!(concat!(
13459                         "Unable to load ",
13460                         stringify!(cmd_draw_indirect_count_khr)
13461                     ))
13462                 }
13463                 let cname =
13464                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawIndirectCountKHR\0");
13465                 let val = _f(cname);
13466                 if val.is_null() {
13467                     cmd_draw_indirect_count_khr
13468                 } else {
13469                     ::std::mem::transmute(val)
13470                 }
13471             },
13472             cmd_draw_indexed_indirect_count_khr: unsafe {
13473                 unsafe extern "system" fn cmd_draw_indexed_indirect_count_khr(
13474                     _command_buffer: CommandBuffer,
13475                     _buffer: Buffer,
13476                     _offset: DeviceSize,
13477                     _count_buffer: Buffer,
13478                     _count_buffer_offset: DeviceSize,
13479                     _max_draw_count: u32,
13480                     _stride: u32,
13481                 ) {
13482                     panic!(concat!(
13483                         "Unable to load ",
13484                         stringify!(cmd_draw_indexed_indirect_count_khr)
13485                     ))
13486                 }
13487                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13488                     b"vkCmdDrawIndexedIndirectCountKHR\0",
13489                 );
13490                 let val = _f(cname);
13491                 if val.is_null() {
13492                     cmd_draw_indexed_indirect_count_khr
13493                 } else {
13494                     ::std::mem::transmute(val)
13495                 }
13496             },
13497         }
13498     }
13499     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDrawIndirectCountKHR.html>"]
cmd_draw_indirect_count_khr( &self, command_buffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, count_buffer: Buffer, count_buffer_offset: DeviceSize, max_draw_count: u32, stride: u32, )13500     pub unsafe fn cmd_draw_indirect_count_khr(
13501         &self,
13502         command_buffer: CommandBuffer,
13503         buffer: Buffer,
13504         offset: DeviceSize,
13505         count_buffer: Buffer,
13506         count_buffer_offset: DeviceSize,
13507         max_draw_count: u32,
13508         stride: u32,
13509     ) {
13510         (self.cmd_draw_indirect_count_khr)(
13511             command_buffer,
13512             buffer,
13513             offset,
13514             count_buffer,
13515             count_buffer_offset,
13516             max_draw_count,
13517             stride,
13518         )
13519     }
13520     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDrawIndexedIndirectCountKHR.html>"]
cmd_draw_indexed_indirect_count_khr( &self, command_buffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, count_buffer: Buffer, count_buffer_offset: DeviceSize, max_draw_count: u32, stride: u32, )13521     pub unsafe fn cmd_draw_indexed_indirect_count_khr(
13522         &self,
13523         command_buffer: CommandBuffer,
13524         buffer: Buffer,
13525         offset: DeviceSize,
13526         count_buffer: Buffer,
13527         count_buffer_offset: DeviceSize,
13528         max_draw_count: u32,
13529         stride: u32,
13530     ) {
13531         (self.cmd_draw_indexed_indirect_count_khr)(
13532             command_buffer,
13533             buffer,
13534             offset,
13535             count_buffer,
13536             count_buffer_offset,
13537             max_draw_count,
13538             stride,
13539         )
13540     }
13541 }
13542 impl ExtFilterCubicFn {
name() -> &'static ::std::ffi::CStr13543     pub fn name() -> &'static ::std::ffi::CStr {
13544         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_filter_cubic\0") }
13545     }
13546     pub const SPEC_VERSION: u32 = 3u32;
13547 }
13548 #[derive(Clone)]
13549 pub struct ExtFilterCubicFn {}
13550 unsafe impl Send for ExtFilterCubicFn {}
13551 unsafe impl Sync for ExtFilterCubicFn {}
13552 impl ExtFilterCubicFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13553     pub fn load<F>(mut _f: F) -> Self
13554     where
13555         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13556     {
13557         Self {}
13558     }
13559 }
13560 #[doc = "Generated from 'VK_EXT_filter_cubic'"]
13561 impl Filter {
13562     pub const CUBIC_EXT: Self = Self::CUBIC_IMG;
13563 }
13564 #[doc = "Generated from 'VK_EXT_filter_cubic'"]
13565 impl FormatFeatureFlags {
13566     pub const SAMPLED_IMAGE_FILTER_CUBIC_EXT: Self = Self::SAMPLED_IMAGE_FILTER_CUBIC_IMG;
13567 }
13568 #[doc = "Generated from 'VK_EXT_filter_cubic'"]
13569 impl StructureType {
13570     pub const PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: Self = Self(1_000_170_000);
13571     pub const FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: Self = Self(1_000_170_001);
13572 }
13573 impl QcomRenderPassShaderResolveFn {
name() -> &'static ::std::ffi::CStr13574     pub fn name() -> &'static ::std::ffi::CStr {
13575         unsafe {
13576             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_render_pass_shader_resolve\0")
13577         }
13578     }
13579     pub const SPEC_VERSION: u32 = 4u32;
13580 }
13581 #[derive(Clone)]
13582 pub struct QcomRenderPassShaderResolveFn {}
13583 unsafe impl Send for QcomRenderPassShaderResolveFn {}
13584 unsafe impl Sync for QcomRenderPassShaderResolveFn {}
13585 impl QcomRenderPassShaderResolveFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13586     pub fn load<F>(mut _f: F) -> Self
13587     where
13588         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13589     {
13590         Self {}
13591     }
13592 }
13593 #[doc = "Generated from 'VK_QCOM_render_pass_shader_resolve'"]
13594 impl SubpassDescriptionFlags {
13595     pub const FRAGMENT_REGION_QCOM: Self = Self(0b100);
13596     pub const SHADER_RESOLVE_QCOM: Self = Self(0b1000);
13597 }
13598 impl QcomExtension173Fn {
name() -> &'static ::std::ffi::CStr13599     pub fn name() -> &'static ::std::ffi::CStr {
13600         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_173\0") }
13601     }
13602     pub const SPEC_VERSION: u32 = 0u32;
13603 }
13604 #[derive(Clone)]
13605 pub struct QcomExtension173Fn {}
13606 unsafe impl Send for QcomExtension173Fn {}
13607 unsafe impl Sync for QcomExtension173Fn {}
13608 impl QcomExtension173Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13609     pub fn load<F>(mut _f: F) -> Self
13610     where
13611         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13612     {
13613         Self {}
13614     }
13615 }
13616 #[doc = "Generated from 'VK_QCOM_extension_173'"]
13617 impl BufferUsageFlags {
13618     pub const RESERVED_18_QCOM: Self = Self(0b100_0000_0000_0000_0000);
13619 }
13620 #[doc = "Generated from 'VK_QCOM_extension_173'"]
13621 impl ImageUsageFlags {
13622     pub const RESERVED_16_QCOM: Self = Self(0b1_0000_0000_0000_0000);
13623     pub const RESERVED_17_QCOM: Self = Self(0b10_0000_0000_0000_0000);
13624 }
13625 impl QcomExtension174Fn {
name() -> &'static ::std::ffi::CStr13626     pub fn name() -> &'static ::std::ffi::CStr {
13627         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_174\0") }
13628     }
13629     pub const SPEC_VERSION: u32 = 0u32;
13630 }
13631 #[derive(Clone)]
13632 pub struct QcomExtension174Fn {}
13633 unsafe impl Send for QcomExtension174Fn {}
13634 unsafe impl Sync for QcomExtension174Fn {}
13635 impl QcomExtension174Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13636     pub fn load<F>(mut _f: F) -> Self
13637     where
13638         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13639     {
13640         Self {}
13641     }
13642 }
13643 impl ExtGlobalPriorityFn {
name() -> &'static ::std::ffi::CStr13644     pub fn name() -> &'static ::std::ffi::CStr {
13645         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_global_priority\0") }
13646     }
13647     pub const SPEC_VERSION: u32 = 2u32;
13648 }
13649 #[derive(Clone)]
13650 pub struct ExtGlobalPriorityFn {}
13651 unsafe impl Send for ExtGlobalPriorityFn {}
13652 unsafe impl Sync for ExtGlobalPriorityFn {}
13653 impl ExtGlobalPriorityFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13654     pub fn load<F>(mut _f: F) -> Self
13655     where
13656         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13657     {
13658         Self {}
13659     }
13660 }
13661 #[doc = "Generated from 'VK_EXT_global_priority'"]
13662 impl Result {
13663     pub const ERROR_NOT_PERMITTED_EXT: Self = Self(-1_000_174_001);
13664 }
13665 #[doc = "Generated from 'VK_EXT_global_priority'"]
13666 impl StructureType {
13667     pub const DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT: Self = Self(1_000_174_000);
13668 }
13669 impl KhrShaderSubgroupExtendedTypesFn {
name() -> &'static ::std::ffi::CStr13670     pub fn name() -> &'static ::std::ffi::CStr {
13671         unsafe {
13672             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13673                 b"VK_KHR_shader_subgroup_extended_types\0",
13674             )
13675         }
13676     }
13677     pub const SPEC_VERSION: u32 = 1u32;
13678 }
13679 #[derive(Clone)]
13680 pub struct KhrShaderSubgroupExtendedTypesFn {}
13681 unsafe impl Send for KhrShaderSubgroupExtendedTypesFn {}
13682 unsafe impl Sync for KhrShaderSubgroupExtendedTypesFn {}
13683 impl KhrShaderSubgroupExtendedTypesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13684     pub fn load<F>(mut _f: F) -> Self
13685     where
13686         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13687     {
13688         Self {}
13689     }
13690 }
13691 #[doc = "Generated from 'VK_KHR_shader_subgroup_extended_types'"]
13692 impl StructureType {
13693     pub const PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR: Self =
13694         Self::PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES;
13695 }
13696 impl ExtExtension177Fn {
name() -> &'static ::std::ffi::CStr13697     pub fn name() -> &'static ::std::ffi::CStr {
13698         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_177\0") }
13699     }
13700     pub const SPEC_VERSION: u32 = 0u32;
13701 }
13702 #[derive(Clone)]
13703 pub struct ExtExtension177Fn {}
13704 unsafe impl Send for ExtExtension177Fn {}
13705 unsafe impl Sync for ExtExtension177Fn {}
13706 impl ExtExtension177Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13707     pub fn load<F>(mut _f: F) -> Self
13708     where
13709         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13710     {
13711         Self {}
13712     }
13713 }
13714 impl Khr8bitStorageFn {
name() -> &'static ::std::ffi::CStr13715     pub fn name() -> &'static ::std::ffi::CStr {
13716         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_8bit_storage\0") }
13717     }
13718     pub const SPEC_VERSION: u32 = 1u32;
13719 }
13720 #[derive(Clone)]
13721 pub struct Khr8bitStorageFn {}
13722 unsafe impl Send for Khr8bitStorageFn {}
13723 unsafe impl Sync for Khr8bitStorageFn {}
13724 impl Khr8bitStorageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13725     pub fn load<F>(mut _f: F) -> Self
13726     where
13727         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13728     {
13729         Self {}
13730     }
13731 }
13732 #[doc = "Generated from 'VK_KHR_8bit_storage'"]
13733 impl StructureType {
13734     pub const PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR: Self =
13735         Self::PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES;
13736 }
13737 impl ExtExternalMemoryHostFn {
name() -> &'static ::std::ffi::CStr13738     pub fn name() -> &'static ::std::ffi::CStr {
13739         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_external_memory_host\0") }
13740     }
13741     pub const SPEC_VERSION: u32 = 1u32;
13742 }
13743 #[allow(non_camel_case_types)]
13744 pub type PFN_vkGetMemoryHostPointerPropertiesEXT = unsafe extern "system" fn(
13745     device: Device,
13746     handle_type: ExternalMemoryHandleTypeFlags,
13747     p_host_pointer: *const c_void,
13748     p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT,
13749 ) -> Result;
13750 #[derive(Clone)]
13751 pub struct ExtExternalMemoryHostFn {
13752     pub get_memory_host_pointer_properties_ext: PFN_vkGetMemoryHostPointerPropertiesEXT,
13753 }
13754 unsafe impl Send for ExtExternalMemoryHostFn {}
13755 unsafe impl Sync for ExtExternalMemoryHostFn {}
13756 impl ExtExternalMemoryHostFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13757     pub fn load<F>(mut _f: F) -> Self
13758     where
13759         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13760     {
13761         Self {
13762             get_memory_host_pointer_properties_ext: unsafe {
13763                 unsafe extern "system" fn get_memory_host_pointer_properties_ext(
13764                     _device: Device,
13765                     _handle_type: ExternalMemoryHandleTypeFlags,
13766                     _p_host_pointer: *const c_void,
13767                     _p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT,
13768                 ) -> Result {
13769                     panic!(concat!(
13770                         "Unable to load ",
13771                         stringify!(get_memory_host_pointer_properties_ext)
13772                     ))
13773                 }
13774                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
13775                     b"vkGetMemoryHostPointerPropertiesEXT\0",
13776                 );
13777                 let val = _f(cname);
13778                 if val.is_null() {
13779                     get_memory_host_pointer_properties_ext
13780                 } else {
13781                     ::std::mem::transmute(val)
13782                 }
13783             },
13784         }
13785     }
13786     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetMemoryHostPointerPropertiesEXT.html>"]
get_memory_host_pointer_properties_ext( &self, device: Device, handle_type: ExternalMemoryHandleTypeFlags, p_host_pointer: *const c_void, p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT, ) -> Result13787     pub unsafe fn get_memory_host_pointer_properties_ext(
13788         &self,
13789         device: Device,
13790         handle_type: ExternalMemoryHandleTypeFlags,
13791         p_host_pointer: *const c_void,
13792         p_memory_host_pointer_properties: *mut MemoryHostPointerPropertiesEXT,
13793     ) -> Result {
13794         (self.get_memory_host_pointer_properties_ext)(
13795             device,
13796             handle_type,
13797             p_host_pointer,
13798             p_memory_host_pointer_properties,
13799         )
13800     }
13801 }
13802 #[doc = "Generated from 'VK_EXT_external_memory_host'"]
13803 impl ExternalMemoryHandleTypeFlags {
13804     pub const HOST_ALLOCATION_EXT: Self = Self(0b1000_0000);
13805     pub const HOST_MAPPED_FOREIGN_MEMORY_EXT: Self = Self(0b1_0000_0000);
13806 }
13807 #[doc = "Generated from 'VK_EXT_external_memory_host'"]
13808 impl StructureType {
13809     pub const IMPORT_MEMORY_HOST_POINTER_INFO_EXT: Self = Self(1_000_178_000);
13810     pub const MEMORY_HOST_POINTER_PROPERTIES_EXT: Self = Self(1_000_178_001);
13811     pub const PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: Self = Self(1_000_178_002);
13812 }
13813 impl AmdBufferMarkerFn {
name() -> &'static ::std::ffi::CStr13814     pub fn name() -> &'static ::std::ffi::CStr {
13815         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_buffer_marker\0") }
13816     }
13817     pub const SPEC_VERSION: u32 = 1u32;
13818 }
13819 #[allow(non_camel_case_types)]
13820 pub type PFN_vkCmdWriteBufferMarkerAMD = unsafe extern "system" fn(
13821     command_buffer: CommandBuffer,
13822     pipeline_stage: PipelineStageFlags,
13823     dst_buffer: Buffer,
13824     dst_offset: DeviceSize,
13825     marker: u32,
13826 );
13827 #[derive(Clone)]
13828 pub struct AmdBufferMarkerFn {
13829     pub cmd_write_buffer_marker_amd: PFN_vkCmdWriteBufferMarkerAMD,
13830 }
13831 unsafe impl Send for AmdBufferMarkerFn {}
13832 unsafe impl Sync for AmdBufferMarkerFn {}
13833 impl AmdBufferMarkerFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13834     pub fn load<F>(mut _f: F) -> Self
13835     where
13836         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13837     {
13838         Self {
13839             cmd_write_buffer_marker_amd: unsafe {
13840                 unsafe extern "system" fn cmd_write_buffer_marker_amd(
13841                     _command_buffer: CommandBuffer,
13842                     _pipeline_stage: PipelineStageFlags,
13843                     _dst_buffer: Buffer,
13844                     _dst_offset: DeviceSize,
13845                     _marker: u32,
13846                 ) {
13847                     panic!(concat!(
13848                         "Unable to load ",
13849                         stringify!(cmd_write_buffer_marker_amd)
13850                     ))
13851                 }
13852                 let cname =
13853                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteBufferMarkerAMD\0");
13854                 let val = _f(cname);
13855                 if val.is_null() {
13856                     cmd_write_buffer_marker_amd
13857                 } else {
13858                     ::std::mem::transmute(val)
13859                 }
13860             },
13861         }
13862     }
13863     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdWriteBufferMarkerAMD.html>"]
cmd_write_buffer_marker_amd( &self, command_buffer: CommandBuffer, pipeline_stage: PipelineStageFlags, dst_buffer: Buffer, dst_offset: DeviceSize, marker: u32, )13864     pub unsafe fn cmd_write_buffer_marker_amd(
13865         &self,
13866         command_buffer: CommandBuffer,
13867         pipeline_stage: PipelineStageFlags,
13868         dst_buffer: Buffer,
13869         dst_offset: DeviceSize,
13870         marker: u32,
13871     ) {
13872         (self.cmd_write_buffer_marker_amd)(
13873             command_buffer,
13874             pipeline_stage,
13875             dst_buffer,
13876             dst_offset,
13877             marker,
13878         )
13879     }
13880 }
13881 impl KhrShaderAtomicInt64Fn {
name() -> &'static ::std::ffi::CStr13882     pub fn name() -> &'static ::std::ffi::CStr {
13883         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_atomic_int64\0") }
13884     }
13885     pub const SPEC_VERSION: u32 = 1u32;
13886 }
13887 #[derive(Clone)]
13888 pub struct KhrShaderAtomicInt64Fn {}
13889 unsafe impl Send for KhrShaderAtomicInt64Fn {}
13890 unsafe impl Sync for KhrShaderAtomicInt64Fn {}
13891 impl KhrShaderAtomicInt64Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13892     pub fn load<F>(mut _f: F) -> Self
13893     where
13894         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13895     {
13896         Self {}
13897     }
13898 }
13899 #[doc = "Generated from 'VK_KHR_shader_atomic_int64'"]
13900 impl StructureType {
13901     pub const PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR: Self =
13902         Self::PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES;
13903 }
13904 impl KhrShaderClockFn {
name() -> &'static ::std::ffi::CStr13905     pub fn name() -> &'static ::std::ffi::CStr {
13906         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_clock\0") }
13907     }
13908     pub const SPEC_VERSION: u32 = 1u32;
13909 }
13910 #[derive(Clone)]
13911 pub struct KhrShaderClockFn {}
13912 unsafe impl Send for KhrShaderClockFn {}
13913 unsafe impl Sync for KhrShaderClockFn {}
13914 impl KhrShaderClockFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13915     pub fn load<F>(mut _f: F) -> Self
13916     where
13917         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13918     {
13919         Self {}
13920     }
13921 }
13922 #[doc = "Generated from 'VK_KHR_shader_clock'"]
13923 impl StructureType {
13924     pub const PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: Self = Self(1_000_181_000);
13925 }
13926 impl AmdExtension183Fn {
name() -> &'static ::std::ffi::CStr13927     pub fn name() -> &'static ::std::ffi::CStr {
13928         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_183\0") }
13929     }
13930     pub const SPEC_VERSION: u32 = 0u32;
13931 }
13932 #[derive(Clone)]
13933 pub struct AmdExtension183Fn {}
13934 unsafe impl Send for AmdExtension183Fn {}
13935 unsafe impl Sync for AmdExtension183Fn {}
13936 impl AmdExtension183Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13937     pub fn load<F>(mut _f: F) -> Self
13938     where
13939         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13940     {
13941         Self {}
13942     }
13943 }
13944 impl AmdPipelineCompilerControlFn {
name() -> &'static ::std::ffi::CStr13945     pub fn name() -> &'static ::std::ffi::CStr {
13946         unsafe {
13947             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_pipeline_compiler_control\0")
13948         }
13949     }
13950     pub const SPEC_VERSION: u32 = 1u32;
13951 }
13952 #[derive(Clone)]
13953 pub struct AmdPipelineCompilerControlFn {}
13954 unsafe impl Send for AmdPipelineCompilerControlFn {}
13955 unsafe impl Sync for AmdPipelineCompilerControlFn {}
13956 impl AmdPipelineCompilerControlFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13957     pub fn load<F>(mut _f: F) -> Self
13958     where
13959         F: FnMut(&::std::ffi::CStr) -> *const c_void,
13960     {
13961         Self {}
13962     }
13963 }
13964 #[doc = "Generated from 'VK_AMD_pipeline_compiler_control'"]
13965 impl StructureType {
13966     pub const PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: Self = Self(1_000_183_000);
13967 }
13968 impl ExtCalibratedTimestampsFn {
name() -> &'static ::std::ffi::CStr13969     pub fn name() -> &'static ::std::ffi::CStr {
13970         unsafe {
13971             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_calibrated_timestamps\0")
13972         }
13973     }
13974     pub const SPEC_VERSION: u32 = 2u32;
13975 }
13976 #[allow(non_camel_case_types)]
13977 pub type PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = unsafe extern "system" fn(
13978     physical_device: PhysicalDevice,
13979     p_time_domain_count: *mut u32,
13980     p_time_domains: *mut TimeDomainEXT,
13981 ) -> Result;
13982 #[allow(non_camel_case_types)]
13983 pub type PFN_vkGetCalibratedTimestampsEXT = unsafe extern "system" fn(
13984     device: Device,
13985     timestamp_count: u32,
13986     p_timestamp_infos: *const CalibratedTimestampInfoEXT,
13987     p_timestamps: *mut u64,
13988     p_max_deviation: *mut u64,
13989 ) -> Result;
13990 #[derive(Clone)]
13991 pub struct ExtCalibratedTimestampsFn {
13992     pub get_physical_device_calibrateable_time_domains_ext:
13993         PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT,
13994     pub get_calibrated_timestamps_ext: PFN_vkGetCalibratedTimestampsEXT,
13995 }
13996 unsafe impl Send for ExtCalibratedTimestampsFn {}
13997 unsafe impl Sync for ExtCalibratedTimestampsFn {}
13998 impl ExtCalibratedTimestampsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,13999     pub fn load<F>(mut _f: F) -> Self
14000     where
14001         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14002     {
14003         Self {
14004             get_physical_device_calibrateable_time_domains_ext: unsafe {
14005                 unsafe extern "system" fn get_physical_device_calibrateable_time_domains_ext(
14006                     _physical_device: PhysicalDevice,
14007                     _p_time_domain_count: *mut u32,
14008                     _p_time_domains: *mut TimeDomainEXT,
14009                 ) -> Result {
14010                     panic!(concat!(
14011                         "Unable to load ",
14012                         stringify!(get_physical_device_calibrateable_time_domains_ext)
14013                     ))
14014                 }
14015                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14016                     b"vkGetPhysicalDeviceCalibrateableTimeDomainsEXT\0",
14017                 );
14018                 let val = _f(cname);
14019                 if val.is_null() {
14020                     get_physical_device_calibrateable_time_domains_ext
14021                 } else {
14022                     ::std::mem::transmute(val)
14023                 }
14024             },
14025             get_calibrated_timestamps_ext: unsafe {
14026                 unsafe extern "system" fn get_calibrated_timestamps_ext(
14027                     _device: Device,
14028                     _timestamp_count: u32,
14029                     _p_timestamp_infos: *const CalibratedTimestampInfoEXT,
14030                     _p_timestamps: *mut u64,
14031                     _p_max_deviation: *mut u64,
14032                 ) -> Result {
14033                     panic!(concat!(
14034                         "Unable to load ",
14035                         stringify!(get_calibrated_timestamps_ext)
14036                     ))
14037                 }
14038                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14039                     b"vkGetCalibratedTimestampsEXT\0",
14040                 );
14041                 let val = _f(cname);
14042                 if val.is_null() {
14043                     get_calibrated_timestamps_ext
14044                 } else {
14045                     ::std::mem::transmute(val)
14046                 }
14047             },
14048         }
14049     }
14050     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceCalibrateableTimeDomainsEXT.html>"]
get_physical_device_calibrateable_time_domains_ext( &self, physical_device: PhysicalDevice, p_time_domain_count: *mut u32, p_time_domains: *mut TimeDomainEXT, ) -> Result14051     pub unsafe fn get_physical_device_calibrateable_time_domains_ext(
14052         &self,
14053         physical_device: PhysicalDevice,
14054         p_time_domain_count: *mut u32,
14055         p_time_domains: *mut TimeDomainEXT,
14056     ) -> Result {
14057         (self.get_physical_device_calibrateable_time_domains_ext)(
14058             physical_device,
14059             p_time_domain_count,
14060             p_time_domains,
14061         )
14062     }
14063     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetCalibratedTimestampsEXT.html>"]
get_calibrated_timestamps_ext( &self, device: Device, timestamp_count: u32, p_timestamp_infos: *const CalibratedTimestampInfoEXT, p_timestamps: *mut u64, p_max_deviation: *mut u64, ) -> Result14064     pub unsafe fn get_calibrated_timestamps_ext(
14065         &self,
14066         device: Device,
14067         timestamp_count: u32,
14068         p_timestamp_infos: *const CalibratedTimestampInfoEXT,
14069         p_timestamps: *mut u64,
14070         p_max_deviation: *mut u64,
14071     ) -> Result {
14072         (self.get_calibrated_timestamps_ext)(
14073             device,
14074             timestamp_count,
14075             p_timestamp_infos,
14076             p_timestamps,
14077             p_max_deviation,
14078         )
14079     }
14080 }
14081 #[doc = "Generated from 'VK_EXT_calibrated_timestamps'"]
14082 impl StructureType {
14083     pub const CALIBRATED_TIMESTAMP_INFO_EXT: Self = Self(1_000_184_000);
14084 }
14085 impl AmdShaderCorePropertiesFn {
name() -> &'static ::std::ffi::CStr14086     pub fn name() -> &'static ::std::ffi::CStr {
14087         unsafe {
14088             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_core_properties\0")
14089         }
14090     }
14091     pub const SPEC_VERSION: u32 = 2u32;
14092 }
14093 #[derive(Clone)]
14094 pub struct AmdShaderCorePropertiesFn {}
14095 unsafe impl Send for AmdShaderCorePropertiesFn {}
14096 unsafe impl Sync for AmdShaderCorePropertiesFn {}
14097 impl AmdShaderCorePropertiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14098     pub fn load<F>(mut _f: F) -> Self
14099     where
14100         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14101     {
14102         Self {}
14103     }
14104 }
14105 #[doc = "Generated from 'VK_AMD_shader_core_properties'"]
14106 impl StructureType {
14107     pub const PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: Self = Self(1_000_185_000);
14108 }
14109 impl AmdExtension187Fn {
name() -> &'static ::std::ffi::CStr14110     pub fn name() -> &'static ::std::ffi::CStr {
14111         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_187\0") }
14112     }
14113     pub const SPEC_VERSION: u32 = 0u32;
14114 }
14115 #[derive(Clone)]
14116 pub struct AmdExtension187Fn {}
14117 unsafe impl Send for AmdExtension187Fn {}
14118 unsafe impl Sync for AmdExtension187Fn {}
14119 impl AmdExtension187Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14120     pub fn load<F>(mut _f: F) -> Self
14121     where
14122         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14123     {
14124         Self {}
14125     }
14126 }
14127 impl ExtVideoDecodeH265Fn {
name() -> &'static ::std::ffi::CStr14128     pub fn name() -> &'static ::std::ffi::CStr {
14129         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_video_decode_h265\0") }
14130     }
14131     pub const SPEC_VERSION: u32 = 1u32;
14132 }
14133 #[derive(Clone)]
14134 pub struct ExtVideoDecodeH265Fn {}
14135 unsafe impl Send for ExtVideoDecodeH265Fn {}
14136 unsafe impl Sync for ExtVideoDecodeH265Fn {}
14137 impl ExtVideoDecodeH265Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14138     pub fn load<F>(mut _f: F) -> Self
14139     where
14140         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14141     {
14142         Self {}
14143     }
14144 }
14145 #[doc = "Generated from 'VK_EXT_video_decode_h265'"]
14146 impl StructureType {
14147     pub const VIDEO_DECODE_H265_CAPABILITIES_EXT: Self = Self(1_000_187_000);
14148     pub const VIDEO_DECODE_H265_SESSION_CREATE_INFO_EXT: Self = Self(1_000_187_001);
14149     pub const VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: Self = Self(1_000_187_002);
14150     pub const VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: Self = Self(1_000_187_003);
14151     pub const VIDEO_DECODE_H265_PROFILE_EXT: Self = Self(1_000_187_004);
14152     pub const VIDEO_DECODE_H265_PICTURE_INFO_EXT: Self = Self(1_000_187_005);
14153     pub const VIDEO_DECODE_H265_DPB_SLOT_INFO_EXT: Self = Self(1_000_187_006);
14154 }
14155 #[doc = "Generated from 'VK_EXT_video_decode_h265'"]
14156 impl VideoCodecOperationFlagsKHR {
14157     pub const DECODE_H265_EXT: Self = Self(0b10);
14158 }
14159 impl AmdExtension189Fn {
name() -> &'static ::std::ffi::CStr14160     pub fn name() -> &'static ::std::ffi::CStr {
14161         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_189\0") }
14162     }
14163     pub const SPEC_VERSION: u32 = 0u32;
14164 }
14165 #[derive(Clone)]
14166 pub struct AmdExtension189Fn {}
14167 unsafe impl Send for AmdExtension189Fn {}
14168 unsafe impl Sync for AmdExtension189Fn {}
14169 impl AmdExtension189Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14170     pub fn load<F>(mut _f: F) -> Self
14171     where
14172         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14173     {
14174         Self {}
14175     }
14176 }
14177 impl AmdMemoryOverallocationBehaviorFn {
name() -> &'static ::std::ffi::CStr14178     pub fn name() -> &'static ::std::ffi::CStr {
14179         unsafe {
14180             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14181                 b"VK_AMD_memory_overallocation_behavior\0",
14182             )
14183         }
14184     }
14185     pub const SPEC_VERSION: u32 = 1u32;
14186 }
14187 #[derive(Clone)]
14188 pub struct AmdMemoryOverallocationBehaviorFn {}
14189 unsafe impl Send for AmdMemoryOverallocationBehaviorFn {}
14190 unsafe impl Sync for AmdMemoryOverallocationBehaviorFn {}
14191 impl AmdMemoryOverallocationBehaviorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14192     pub fn load<F>(mut _f: F) -> Self
14193     where
14194         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14195     {
14196         Self {}
14197     }
14198 }
14199 #[doc = "Generated from 'VK_AMD_memory_overallocation_behavior'"]
14200 impl StructureType {
14201     pub const DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: Self = Self(1_000_189_000);
14202 }
14203 impl ExtVertexAttributeDivisorFn {
name() -> &'static ::std::ffi::CStr14204     pub fn name() -> &'static ::std::ffi::CStr {
14205         unsafe {
14206             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_vertex_attribute_divisor\0")
14207         }
14208     }
14209     pub const SPEC_VERSION: u32 = 3u32;
14210 }
14211 #[derive(Clone)]
14212 pub struct ExtVertexAttributeDivisorFn {}
14213 unsafe impl Send for ExtVertexAttributeDivisorFn {}
14214 unsafe impl Sync for ExtVertexAttributeDivisorFn {}
14215 impl ExtVertexAttributeDivisorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14216     pub fn load<F>(mut _f: F) -> Self
14217     where
14218         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14219     {
14220         Self {}
14221     }
14222 }
14223 #[doc = "Generated from 'VK_EXT_vertex_attribute_divisor'"]
14224 impl StructureType {
14225     pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: Self = Self(1_000_190_000);
14226     pub const PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: Self = Self(1_000_190_001);
14227     pub const PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: Self = Self(1_000_190_002);
14228 }
14229 impl GgpFrameTokenFn {
name() -> &'static ::std::ffi::CStr14230     pub fn name() -> &'static ::std::ffi::CStr {
14231         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GGP_frame_token\0") }
14232     }
14233     pub const SPEC_VERSION: u32 = 1u32;
14234 }
14235 #[derive(Clone)]
14236 pub struct GgpFrameTokenFn {}
14237 unsafe impl Send for GgpFrameTokenFn {}
14238 unsafe impl Sync for GgpFrameTokenFn {}
14239 impl GgpFrameTokenFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14240     pub fn load<F>(mut _f: F) -> Self
14241     where
14242         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14243     {
14244         Self {}
14245     }
14246 }
14247 #[doc = "Generated from 'VK_GGP_frame_token'"]
14248 impl StructureType {
14249     pub const PRESENT_FRAME_TOKEN_GGP: Self = Self(1_000_191_000);
14250 }
14251 impl ExtPipelineCreationFeedbackFn {
name() -> &'static ::std::ffi::CStr14252     pub fn name() -> &'static ::std::ffi::CStr {
14253         unsafe {
14254             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pipeline_creation_feedback\0")
14255         }
14256     }
14257     pub const SPEC_VERSION: u32 = 1u32;
14258 }
14259 #[derive(Clone)]
14260 pub struct ExtPipelineCreationFeedbackFn {}
14261 unsafe impl Send for ExtPipelineCreationFeedbackFn {}
14262 unsafe impl Sync for ExtPipelineCreationFeedbackFn {}
14263 impl ExtPipelineCreationFeedbackFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14264     pub fn load<F>(mut _f: F) -> Self
14265     where
14266         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14267     {
14268         Self {}
14269     }
14270 }
14271 #[doc = "Generated from 'VK_EXT_pipeline_creation_feedback'"]
14272 impl StructureType {
14273     pub const PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT: Self = Self(1_000_192_000);
14274 }
14275 impl GoogleExtension194Fn {
name() -> &'static ::std::ffi::CStr14276     pub fn name() -> &'static ::std::ffi::CStr {
14277         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_extension_194\0") }
14278     }
14279     pub const SPEC_VERSION: u32 = 0u32;
14280 }
14281 #[derive(Clone)]
14282 pub struct GoogleExtension194Fn {}
14283 unsafe impl Send for GoogleExtension194Fn {}
14284 unsafe impl Sync for GoogleExtension194Fn {}
14285 impl GoogleExtension194Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14286     pub fn load<F>(mut _f: F) -> Self
14287     where
14288         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14289     {
14290         Self {}
14291     }
14292 }
14293 impl GoogleExtension195Fn {
name() -> &'static ::std::ffi::CStr14294     pub fn name() -> &'static ::std::ffi::CStr {
14295         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_extension_195\0") }
14296     }
14297     pub const SPEC_VERSION: u32 = 0u32;
14298 }
14299 #[derive(Clone)]
14300 pub struct GoogleExtension195Fn {}
14301 unsafe impl Send for GoogleExtension195Fn {}
14302 unsafe impl Sync for GoogleExtension195Fn {}
14303 impl GoogleExtension195Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14304     pub fn load<F>(mut _f: F) -> Self
14305     where
14306         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14307     {
14308         Self {}
14309     }
14310 }
14311 impl GoogleExtension196Fn {
name() -> &'static ::std::ffi::CStr14312     pub fn name() -> &'static ::std::ffi::CStr {
14313         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_extension_196\0") }
14314     }
14315     pub const SPEC_VERSION: u32 = 0u32;
14316 }
14317 #[derive(Clone)]
14318 pub struct GoogleExtension196Fn {}
14319 unsafe impl Send for GoogleExtension196Fn {}
14320 unsafe impl Sync for GoogleExtension196Fn {}
14321 impl GoogleExtension196Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14322     pub fn load<F>(mut _f: F) -> Self
14323     where
14324         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14325     {
14326         Self {}
14327     }
14328 }
14329 #[doc = "Generated from 'VK_GOOGLE_extension_196'"]
14330 impl PipelineCacheCreateFlags {
14331     pub const RESERVED_1_EXT: Self = Self(0b10);
14332 }
14333 impl KhrDriverPropertiesFn {
name() -> &'static ::std::ffi::CStr14334     pub fn name() -> &'static ::std::ffi::CStr {
14335         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_driver_properties\0") }
14336     }
14337     pub const SPEC_VERSION: u32 = 1u32;
14338 }
14339 #[derive(Clone)]
14340 pub struct KhrDriverPropertiesFn {}
14341 unsafe impl Send for KhrDriverPropertiesFn {}
14342 unsafe impl Sync for KhrDriverPropertiesFn {}
14343 impl KhrDriverPropertiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14344     pub fn load<F>(mut _f: F) -> Self
14345     where
14346         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14347     {
14348         Self {}
14349     }
14350 }
14351 #[doc = "Generated from 'VK_KHR_driver_properties'"]
14352 impl DriverId {
14353     pub const AMD_PROPRIETARY_KHR: Self = Self::AMD_PROPRIETARY;
14354     pub const AMD_OPEN_SOURCE_KHR: Self = Self::AMD_OPEN_SOURCE;
14355     pub const MESA_RADV_KHR: Self = Self::MESA_RADV;
14356     pub const NVIDIA_PROPRIETARY_KHR: Self = Self::NVIDIA_PROPRIETARY;
14357     pub const INTEL_PROPRIETARY_WINDOWS_KHR: Self = Self::INTEL_PROPRIETARY_WINDOWS;
14358     pub const INTEL_OPEN_SOURCE_MESA_KHR: Self = Self::INTEL_OPEN_SOURCE_MESA;
14359     pub const IMAGINATION_PROPRIETARY_KHR: Self = Self::IMAGINATION_PROPRIETARY;
14360     pub const QUALCOMM_PROPRIETARY_KHR: Self = Self::QUALCOMM_PROPRIETARY;
14361     pub const ARM_PROPRIETARY_KHR: Self = Self::ARM_PROPRIETARY;
14362     pub const GOOGLE_SWIFTSHADER_KHR: Self = Self::GOOGLE_SWIFTSHADER;
14363     pub const GGP_PROPRIETARY_KHR: Self = Self::GGP_PROPRIETARY;
14364     pub const BROADCOM_PROPRIETARY_KHR: Self = Self::BROADCOM_PROPRIETARY;
14365 }
14366 #[doc = "Generated from 'VK_KHR_driver_properties'"]
14367 impl StructureType {
14368     pub const PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR: Self = Self::PHYSICAL_DEVICE_DRIVER_PROPERTIES;
14369 }
14370 impl KhrShaderFloatControlsFn {
name() -> &'static ::std::ffi::CStr14371     pub fn name() -> &'static ::std::ffi::CStr {
14372         unsafe {
14373             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_float_controls\0")
14374         }
14375     }
14376     pub const SPEC_VERSION: u32 = 4u32;
14377 }
14378 #[derive(Clone)]
14379 pub struct KhrShaderFloatControlsFn {}
14380 unsafe impl Send for KhrShaderFloatControlsFn {}
14381 unsafe impl Sync for KhrShaderFloatControlsFn {}
14382 impl KhrShaderFloatControlsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14383     pub fn load<F>(mut _f: F) -> Self
14384     where
14385         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14386     {
14387         Self {}
14388     }
14389 }
14390 #[doc = "Generated from 'VK_KHR_shader_float_controls'"]
14391 impl ShaderFloatControlsIndependence {
14392     pub const TYPE_32_ONLY_KHR: Self = Self::TYPE_32_ONLY;
14393     pub const ALL_KHR: Self = Self::ALL;
14394     pub const NONE_KHR: Self = Self::NONE;
14395 }
14396 #[doc = "Generated from 'VK_KHR_shader_float_controls'"]
14397 impl StructureType {
14398     pub const PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR: Self =
14399         Self::PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES;
14400 }
14401 impl NvShaderSubgroupPartitionedFn {
name() -> &'static ::std::ffi::CStr14402     pub fn name() -> &'static ::std::ffi::CStr {
14403         unsafe {
14404             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_shader_subgroup_partitioned\0")
14405         }
14406     }
14407     pub const SPEC_VERSION: u32 = 1u32;
14408 }
14409 #[derive(Clone)]
14410 pub struct NvShaderSubgroupPartitionedFn {}
14411 unsafe impl Send for NvShaderSubgroupPartitionedFn {}
14412 unsafe impl Sync for NvShaderSubgroupPartitionedFn {}
14413 impl NvShaderSubgroupPartitionedFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14414     pub fn load<F>(mut _f: F) -> Self
14415     where
14416         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14417     {
14418         Self {}
14419     }
14420 }
14421 #[doc = "Generated from 'VK_NV_shader_subgroup_partitioned'"]
14422 impl SubgroupFeatureFlags {
14423     pub const PARTITIONED_NV: Self = Self(0b1_0000_0000);
14424 }
14425 impl KhrDepthStencilResolveFn {
name() -> &'static ::std::ffi::CStr14426     pub fn name() -> &'static ::std::ffi::CStr {
14427         unsafe {
14428             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_depth_stencil_resolve\0")
14429         }
14430     }
14431     pub const SPEC_VERSION: u32 = 1u32;
14432 }
14433 #[derive(Clone)]
14434 pub struct KhrDepthStencilResolveFn {}
14435 unsafe impl Send for KhrDepthStencilResolveFn {}
14436 unsafe impl Sync for KhrDepthStencilResolveFn {}
14437 impl KhrDepthStencilResolveFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14438     pub fn load<F>(mut _f: F) -> Self
14439     where
14440         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14441     {
14442         Self {}
14443     }
14444 }
14445 #[doc = "Generated from 'VK_KHR_depth_stencil_resolve'"]
14446 impl ResolveModeFlags {
14447     pub const NONE_KHR: Self = Self::NONE;
14448     pub const SAMPLE_ZERO_KHR: Self = Self::SAMPLE_ZERO;
14449     pub const AVERAGE_KHR: Self = Self::AVERAGE;
14450     pub const MIN_KHR: Self = Self::MIN;
14451     pub const MAX_KHR: Self = Self::MAX;
14452 }
14453 #[doc = "Generated from 'VK_KHR_depth_stencil_resolve'"]
14454 impl StructureType {
14455     pub const PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR: Self =
14456         Self::PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES;
14457     pub const SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR: Self =
14458         Self::SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE;
14459 }
14460 impl KhrSwapchainMutableFormatFn {
name() -> &'static ::std::ffi::CStr14461     pub fn name() -> &'static ::std::ffi::CStr {
14462         unsafe {
14463             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_swapchain_mutable_format\0")
14464         }
14465     }
14466     pub const SPEC_VERSION: u32 = 1u32;
14467 }
14468 #[derive(Clone)]
14469 pub struct KhrSwapchainMutableFormatFn {}
14470 unsafe impl Send for KhrSwapchainMutableFormatFn {}
14471 unsafe impl Sync for KhrSwapchainMutableFormatFn {}
14472 impl KhrSwapchainMutableFormatFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14473     pub fn load<F>(mut _f: F) -> Self
14474     where
14475         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14476     {
14477         Self {}
14478     }
14479 }
14480 #[doc = "Generated from 'VK_KHR_swapchain_mutable_format'"]
14481 impl SwapchainCreateFlagsKHR {
14482     pub const MUTABLE_FORMAT: Self = Self(0b100);
14483 }
14484 impl NvComputeShaderDerivativesFn {
name() -> &'static ::std::ffi::CStr14485     pub fn name() -> &'static ::std::ffi::CStr {
14486         unsafe {
14487             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_compute_shader_derivatives\0")
14488         }
14489     }
14490     pub const SPEC_VERSION: u32 = 1u32;
14491 }
14492 #[derive(Clone)]
14493 pub struct NvComputeShaderDerivativesFn {}
14494 unsafe impl Send for NvComputeShaderDerivativesFn {}
14495 unsafe impl Sync for NvComputeShaderDerivativesFn {}
14496 impl NvComputeShaderDerivativesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14497     pub fn load<F>(mut _f: F) -> Self
14498     where
14499         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14500     {
14501         Self {}
14502     }
14503 }
14504 #[doc = "Generated from 'VK_NV_compute_shader_derivatives'"]
14505 impl StructureType {
14506     pub const PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: Self = Self(1_000_201_000);
14507 }
14508 impl NvMeshShaderFn {
name() -> &'static ::std::ffi::CStr14509     pub fn name() -> &'static ::std::ffi::CStr {
14510         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_mesh_shader\0") }
14511     }
14512     pub const SPEC_VERSION: u32 = 1u32;
14513 }
14514 #[allow(non_camel_case_types)]
14515 pub type PFN_vkCmdDrawMeshTasksNV =
14516     unsafe extern "system" fn(command_buffer: CommandBuffer, task_count: u32, first_task: u32);
14517 #[allow(non_camel_case_types)]
14518 pub type PFN_vkCmdDrawMeshTasksIndirectNV = unsafe extern "system" fn(
14519     command_buffer: CommandBuffer,
14520     buffer: Buffer,
14521     offset: DeviceSize,
14522     draw_count: u32,
14523     stride: u32,
14524 );
14525 #[allow(non_camel_case_types)]
14526 pub type PFN_vkCmdDrawMeshTasksIndirectCountNV = unsafe extern "system" fn(
14527     command_buffer: CommandBuffer,
14528     buffer: Buffer,
14529     offset: DeviceSize,
14530     count_buffer: Buffer,
14531     count_buffer_offset: DeviceSize,
14532     max_draw_count: u32,
14533     stride: u32,
14534 );
14535 #[derive(Clone)]
14536 pub struct NvMeshShaderFn {
14537     pub cmd_draw_mesh_tasks_nv: PFN_vkCmdDrawMeshTasksNV,
14538     pub cmd_draw_mesh_tasks_indirect_nv: PFN_vkCmdDrawMeshTasksIndirectNV,
14539     pub cmd_draw_mesh_tasks_indirect_count_nv: PFN_vkCmdDrawMeshTasksIndirectCountNV,
14540 }
14541 unsafe impl Send for NvMeshShaderFn {}
14542 unsafe impl Sync for NvMeshShaderFn {}
14543 impl NvMeshShaderFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14544     pub fn load<F>(mut _f: F) -> Self
14545     where
14546         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14547     {
14548         Self {
14549             cmd_draw_mesh_tasks_nv: unsafe {
14550                 unsafe extern "system" fn cmd_draw_mesh_tasks_nv(
14551                     _command_buffer: CommandBuffer,
14552                     _task_count: u32,
14553                     _first_task: u32,
14554                 ) {
14555                     panic!(concat!(
14556                         "Unable to load ",
14557                         stringify!(cmd_draw_mesh_tasks_nv)
14558                     ))
14559                 }
14560                 let cname =
14561                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMeshTasksNV\0");
14562                 let val = _f(cname);
14563                 if val.is_null() {
14564                     cmd_draw_mesh_tasks_nv
14565                 } else {
14566                     ::std::mem::transmute(val)
14567                 }
14568             },
14569             cmd_draw_mesh_tasks_indirect_nv: unsafe {
14570                 unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_nv(
14571                     _command_buffer: CommandBuffer,
14572                     _buffer: Buffer,
14573                     _offset: DeviceSize,
14574                     _draw_count: u32,
14575                     _stride: u32,
14576                 ) {
14577                     panic!(concat!(
14578                         "Unable to load ",
14579                         stringify!(cmd_draw_mesh_tasks_indirect_nv)
14580                     ))
14581                 }
14582                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14583                     b"vkCmdDrawMeshTasksIndirectNV\0",
14584                 );
14585                 let val = _f(cname);
14586                 if val.is_null() {
14587                     cmd_draw_mesh_tasks_indirect_nv
14588                 } else {
14589                     ::std::mem::transmute(val)
14590                 }
14591             },
14592             cmd_draw_mesh_tasks_indirect_count_nv: unsafe {
14593                 unsafe extern "system" fn cmd_draw_mesh_tasks_indirect_count_nv(
14594                     _command_buffer: CommandBuffer,
14595                     _buffer: Buffer,
14596                     _offset: DeviceSize,
14597                     _count_buffer: Buffer,
14598                     _count_buffer_offset: DeviceSize,
14599                     _max_draw_count: u32,
14600                     _stride: u32,
14601                 ) {
14602                     panic!(concat!(
14603                         "Unable to load ",
14604                         stringify!(cmd_draw_mesh_tasks_indirect_count_nv)
14605                     ))
14606                 }
14607                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14608                     b"vkCmdDrawMeshTasksIndirectCountNV\0",
14609                 );
14610                 let val = _f(cname);
14611                 if val.is_null() {
14612                     cmd_draw_mesh_tasks_indirect_count_nv
14613                 } else {
14614                     ::std::mem::transmute(val)
14615                 }
14616             },
14617         }
14618     }
14619     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDrawMeshTasksNV.html>"]
cmd_draw_mesh_tasks_nv( &self, command_buffer: CommandBuffer, task_count: u32, first_task: u32, )14620     pub unsafe fn cmd_draw_mesh_tasks_nv(
14621         &self,
14622         command_buffer: CommandBuffer,
14623         task_count: u32,
14624         first_task: u32,
14625     ) {
14626         (self.cmd_draw_mesh_tasks_nv)(command_buffer, task_count, first_task)
14627     }
14628     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDrawMeshTasksIndirectNV.html>"]
cmd_draw_mesh_tasks_indirect_nv( &self, command_buffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, draw_count: u32, stride: u32, )14629     pub unsafe fn cmd_draw_mesh_tasks_indirect_nv(
14630         &self,
14631         command_buffer: CommandBuffer,
14632         buffer: Buffer,
14633         offset: DeviceSize,
14634         draw_count: u32,
14635         stride: u32,
14636     ) {
14637         (self.cmd_draw_mesh_tasks_indirect_nv)(command_buffer, buffer, offset, draw_count, stride)
14638     }
14639     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDrawMeshTasksIndirectCountNV.html>"]
cmd_draw_mesh_tasks_indirect_count_nv( &self, command_buffer: CommandBuffer, buffer: Buffer, offset: DeviceSize, count_buffer: Buffer, count_buffer_offset: DeviceSize, max_draw_count: u32, stride: u32, )14640     pub unsafe fn cmd_draw_mesh_tasks_indirect_count_nv(
14641         &self,
14642         command_buffer: CommandBuffer,
14643         buffer: Buffer,
14644         offset: DeviceSize,
14645         count_buffer: Buffer,
14646         count_buffer_offset: DeviceSize,
14647         max_draw_count: u32,
14648         stride: u32,
14649     ) {
14650         (self.cmd_draw_mesh_tasks_indirect_count_nv)(
14651             command_buffer,
14652             buffer,
14653             offset,
14654             count_buffer,
14655             count_buffer_offset,
14656             max_draw_count,
14657             stride,
14658         )
14659     }
14660 }
14661 #[doc = "Generated from 'VK_NV_mesh_shader'"]
14662 impl PipelineStageFlags {
14663     pub const TASK_SHADER_NV: Self = Self(0b1000_0000_0000_0000_0000);
14664     pub const MESH_SHADER_NV: Self = Self(0b1_0000_0000_0000_0000_0000);
14665 }
14666 #[doc = "Generated from 'VK_NV_mesh_shader'"]
14667 impl ShaderStageFlags {
14668     pub const TASK_NV: Self = Self(0b100_0000);
14669     pub const MESH_NV: Self = Self(0b1000_0000);
14670 }
14671 #[doc = "Generated from 'VK_NV_mesh_shader'"]
14672 impl StructureType {
14673     pub const PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: Self = Self(1_000_202_000);
14674     pub const PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: Self = Self(1_000_202_001);
14675 }
14676 impl NvFragmentShaderBarycentricFn {
name() -> &'static ::std::ffi::CStr14677     pub fn name() -> &'static ::std::ffi::CStr {
14678         unsafe {
14679             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_fragment_shader_barycentric\0")
14680         }
14681     }
14682     pub const SPEC_VERSION: u32 = 1u32;
14683 }
14684 #[derive(Clone)]
14685 pub struct NvFragmentShaderBarycentricFn {}
14686 unsafe impl Send for NvFragmentShaderBarycentricFn {}
14687 unsafe impl Sync for NvFragmentShaderBarycentricFn {}
14688 impl NvFragmentShaderBarycentricFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14689     pub fn load<F>(mut _f: F) -> Self
14690     where
14691         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14692     {
14693         Self {}
14694     }
14695 }
14696 #[doc = "Generated from 'VK_NV_fragment_shader_barycentric'"]
14697 impl StructureType {
14698     pub const PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV: Self = Self(1_000_203_000);
14699 }
14700 impl NvShaderImageFootprintFn {
name() -> &'static ::std::ffi::CStr14701     pub fn name() -> &'static ::std::ffi::CStr {
14702         unsafe {
14703             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_shader_image_footprint\0")
14704         }
14705     }
14706     pub const SPEC_VERSION: u32 = 2u32;
14707 }
14708 #[derive(Clone)]
14709 pub struct NvShaderImageFootprintFn {}
14710 unsafe impl Send for NvShaderImageFootprintFn {}
14711 unsafe impl Sync for NvShaderImageFootprintFn {}
14712 impl NvShaderImageFootprintFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14713     pub fn load<F>(mut _f: F) -> Self
14714     where
14715         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14716     {
14717         Self {}
14718     }
14719 }
14720 #[doc = "Generated from 'VK_NV_shader_image_footprint'"]
14721 impl StructureType {
14722     pub const PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: Self = Self(1_000_204_000);
14723 }
14724 impl NvScissorExclusiveFn {
name() -> &'static ::std::ffi::CStr14725     pub fn name() -> &'static ::std::ffi::CStr {
14726         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_scissor_exclusive\0") }
14727     }
14728     pub const SPEC_VERSION: u32 = 1u32;
14729 }
14730 #[allow(non_camel_case_types)]
14731 pub type PFN_vkCmdSetExclusiveScissorNV = unsafe extern "system" fn(
14732     command_buffer: CommandBuffer,
14733     first_exclusive_scissor: u32,
14734     exclusive_scissor_count: u32,
14735     p_exclusive_scissors: *const Rect2D,
14736 );
14737 #[derive(Clone)]
14738 pub struct NvScissorExclusiveFn {
14739     pub cmd_set_exclusive_scissor_nv: PFN_vkCmdSetExclusiveScissorNV,
14740 }
14741 unsafe impl Send for NvScissorExclusiveFn {}
14742 unsafe impl Sync for NvScissorExclusiveFn {}
14743 impl NvScissorExclusiveFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14744     pub fn load<F>(mut _f: F) -> Self
14745     where
14746         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14747     {
14748         Self {
14749             cmd_set_exclusive_scissor_nv: unsafe {
14750                 unsafe extern "system" fn cmd_set_exclusive_scissor_nv(
14751                     _command_buffer: CommandBuffer,
14752                     _first_exclusive_scissor: u32,
14753                     _exclusive_scissor_count: u32,
14754                     _p_exclusive_scissors: *const Rect2D,
14755                 ) {
14756                     panic!(concat!(
14757                         "Unable to load ",
14758                         stringify!(cmd_set_exclusive_scissor_nv)
14759                     ))
14760                 }
14761                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14762                     b"vkCmdSetExclusiveScissorNV\0",
14763                 );
14764                 let val = _f(cname);
14765                 if val.is_null() {
14766                     cmd_set_exclusive_scissor_nv
14767                 } else {
14768                     ::std::mem::transmute(val)
14769                 }
14770             },
14771         }
14772     }
14773     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetExclusiveScissorNV.html>"]
cmd_set_exclusive_scissor_nv( &self, command_buffer: CommandBuffer, first_exclusive_scissor: u32, exclusive_scissor_count: u32, p_exclusive_scissors: *const Rect2D, )14774     pub unsafe fn cmd_set_exclusive_scissor_nv(
14775         &self,
14776         command_buffer: CommandBuffer,
14777         first_exclusive_scissor: u32,
14778         exclusive_scissor_count: u32,
14779         p_exclusive_scissors: *const Rect2D,
14780     ) {
14781         (self.cmd_set_exclusive_scissor_nv)(
14782             command_buffer,
14783             first_exclusive_scissor,
14784             exclusive_scissor_count,
14785             p_exclusive_scissors,
14786         )
14787     }
14788 }
14789 #[doc = "Generated from 'VK_NV_scissor_exclusive'"]
14790 impl DynamicState {
14791     pub const EXCLUSIVE_SCISSOR_NV: Self = Self(1_000_205_001);
14792 }
14793 #[doc = "Generated from 'VK_NV_scissor_exclusive'"]
14794 impl StructureType {
14795     pub const PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: Self = Self(1_000_205_000);
14796     pub const PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: Self = Self(1_000_205_002);
14797 }
14798 impl NvDeviceDiagnosticCheckpointsFn {
name() -> &'static ::std::ffi::CStr14799     pub fn name() -> &'static ::std::ffi::CStr {
14800         unsafe {
14801             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14802                 b"VK_NV_device_diagnostic_checkpoints\0",
14803             )
14804         }
14805     }
14806     pub const SPEC_VERSION: u32 = 2u32;
14807 }
14808 #[allow(non_camel_case_types)]
14809 pub type PFN_vkCmdSetCheckpointNV =
14810     unsafe extern "system" fn(command_buffer: CommandBuffer, p_checkpoint_marker: *const c_void);
14811 #[allow(non_camel_case_types)]
14812 pub type PFN_vkGetQueueCheckpointDataNV = unsafe extern "system" fn(
14813     queue: Queue,
14814     p_checkpoint_data_count: *mut u32,
14815     p_checkpoint_data: *mut CheckpointDataNV,
14816 );
14817 #[derive(Clone)]
14818 pub struct NvDeviceDiagnosticCheckpointsFn {
14819     pub cmd_set_checkpoint_nv: PFN_vkCmdSetCheckpointNV,
14820     pub get_queue_checkpoint_data_nv: PFN_vkGetQueueCheckpointDataNV,
14821 }
14822 unsafe impl Send for NvDeviceDiagnosticCheckpointsFn {}
14823 unsafe impl Sync for NvDeviceDiagnosticCheckpointsFn {}
14824 impl NvDeviceDiagnosticCheckpointsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14825     pub fn load<F>(mut _f: F) -> Self
14826     where
14827         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14828     {
14829         Self {
14830             cmd_set_checkpoint_nv: unsafe {
14831                 unsafe extern "system" fn cmd_set_checkpoint_nv(
14832                     _command_buffer: CommandBuffer,
14833                     _p_checkpoint_marker: *const c_void,
14834                 ) {
14835                     panic!(concat!(
14836                         "Unable to load ",
14837                         stringify!(cmd_set_checkpoint_nv)
14838                     ))
14839                 }
14840                 let cname =
14841                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCheckpointNV\0");
14842                 let val = _f(cname);
14843                 if val.is_null() {
14844                     cmd_set_checkpoint_nv
14845                 } else {
14846                     ::std::mem::transmute(val)
14847                 }
14848             },
14849             get_queue_checkpoint_data_nv: unsafe {
14850                 unsafe extern "system" fn get_queue_checkpoint_data_nv(
14851                     _queue: Queue,
14852                     _p_checkpoint_data_count: *mut u32,
14853                     _p_checkpoint_data: *mut CheckpointDataNV,
14854                 ) {
14855                     panic!(concat!(
14856                         "Unable to load ",
14857                         stringify!(get_queue_checkpoint_data_nv)
14858                     ))
14859                 }
14860                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14861                     b"vkGetQueueCheckpointDataNV\0",
14862                 );
14863                 let val = _f(cname);
14864                 if val.is_null() {
14865                     get_queue_checkpoint_data_nv
14866                 } else {
14867                     ::std::mem::transmute(val)
14868                 }
14869             },
14870         }
14871     }
14872     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetCheckpointNV.html>"]
cmd_set_checkpoint_nv( &self, command_buffer: CommandBuffer, p_checkpoint_marker: *const c_void, )14873     pub unsafe fn cmd_set_checkpoint_nv(
14874         &self,
14875         command_buffer: CommandBuffer,
14876         p_checkpoint_marker: *const c_void,
14877     ) {
14878         (self.cmd_set_checkpoint_nv)(command_buffer, p_checkpoint_marker)
14879     }
14880     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetQueueCheckpointDataNV.html>"]
get_queue_checkpoint_data_nv( &self, queue: Queue, p_checkpoint_data_count: *mut u32, p_checkpoint_data: *mut CheckpointDataNV, )14881     pub unsafe fn get_queue_checkpoint_data_nv(
14882         &self,
14883         queue: Queue,
14884         p_checkpoint_data_count: *mut u32,
14885         p_checkpoint_data: *mut CheckpointDataNV,
14886     ) {
14887         (self.get_queue_checkpoint_data_nv)(queue, p_checkpoint_data_count, p_checkpoint_data)
14888     }
14889 }
14890 #[doc = "Generated from 'VK_NV_device_diagnostic_checkpoints'"]
14891 impl StructureType {
14892     pub const CHECKPOINT_DATA_NV: Self = Self(1_000_206_000);
14893     pub const QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV: Self = Self(1_000_206_001);
14894 }
14895 impl KhrTimelineSemaphoreFn {
name() -> &'static ::std::ffi::CStr14896     pub fn name() -> &'static ::std::ffi::CStr {
14897         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_timeline_semaphore\0") }
14898     }
14899     pub const SPEC_VERSION: u32 = 2u32;
14900 }
14901 #[allow(non_camel_case_types)]
14902 pub type PFN_vkGetSemaphoreCounterValue =
14903     unsafe extern "system" fn(device: Device, semaphore: Semaphore, p_value: *mut u64) -> Result;
14904 #[allow(non_camel_case_types)]
14905 pub type PFN_vkWaitSemaphores = unsafe extern "system" fn(
14906     device: Device,
14907     p_wait_info: *const SemaphoreWaitInfo,
14908     timeout: u64,
14909 ) -> Result;
14910 #[allow(non_camel_case_types)]
14911 pub type PFN_vkSignalSemaphore =
14912     unsafe extern "system" fn(device: Device, p_signal_info: *const SemaphoreSignalInfo) -> Result;
14913 #[derive(Clone)]
14914 pub struct KhrTimelineSemaphoreFn {
14915     pub get_semaphore_counter_value_khr: PFN_vkGetSemaphoreCounterValue,
14916     pub wait_semaphores_khr: PFN_vkWaitSemaphores,
14917     pub signal_semaphore_khr: PFN_vkSignalSemaphore,
14918 }
14919 unsafe impl Send for KhrTimelineSemaphoreFn {}
14920 unsafe impl Sync for KhrTimelineSemaphoreFn {}
14921 impl KhrTimelineSemaphoreFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,14922     pub fn load<F>(mut _f: F) -> Self
14923     where
14924         F: FnMut(&::std::ffi::CStr) -> *const c_void,
14925     {
14926         Self {
14927             get_semaphore_counter_value_khr: unsafe {
14928                 unsafe extern "system" fn get_semaphore_counter_value_khr(
14929                     _device: Device,
14930                     _semaphore: Semaphore,
14931                     _p_value: *mut u64,
14932                 ) -> Result {
14933                     panic!(concat!(
14934                         "Unable to load ",
14935                         stringify!(get_semaphore_counter_value_khr)
14936                     ))
14937                 }
14938                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
14939                     b"vkGetSemaphoreCounterValueKHR\0",
14940                 );
14941                 let val = _f(cname);
14942                 if val.is_null() {
14943                     get_semaphore_counter_value_khr
14944                 } else {
14945                     ::std::mem::transmute(val)
14946                 }
14947             },
14948             wait_semaphores_khr: unsafe {
14949                 unsafe extern "system" fn wait_semaphores_khr(
14950                     _device: Device,
14951                     _p_wait_info: *const SemaphoreWaitInfo,
14952                     _timeout: u64,
14953                 ) -> Result {
14954                     panic!(concat!("Unable to load ", stringify!(wait_semaphores_khr)))
14955                 }
14956                 let cname =
14957                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkWaitSemaphoresKHR\0");
14958                 let val = _f(cname);
14959                 if val.is_null() {
14960                     wait_semaphores_khr
14961                 } else {
14962                     ::std::mem::transmute(val)
14963                 }
14964             },
14965             signal_semaphore_khr: unsafe {
14966                 unsafe extern "system" fn signal_semaphore_khr(
14967                     _device: Device,
14968                     _p_signal_info: *const SemaphoreSignalInfo,
14969                 ) -> Result {
14970                     panic!(concat!("Unable to load ", stringify!(signal_semaphore_khr)))
14971                 }
14972                 let cname =
14973                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkSignalSemaphoreKHR\0");
14974                 let val = _f(cname);
14975                 if val.is_null() {
14976                     signal_semaphore_khr
14977                 } else {
14978                     ::std::mem::transmute(val)
14979                 }
14980             },
14981         }
14982     }
14983     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetSemaphoreCounterValueKHR.html>"]
get_semaphore_counter_value_khr( &self, device: Device, semaphore: Semaphore, p_value: *mut u64, ) -> Result14984     pub unsafe fn get_semaphore_counter_value_khr(
14985         &self,
14986         device: Device,
14987         semaphore: Semaphore,
14988         p_value: *mut u64,
14989     ) -> Result {
14990         (self.get_semaphore_counter_value_khr)(device, semaphore, p_value)
14991     }
14992     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkWaitSemaphoresKHR.html>"]
wait_semaphores_khr( &self, device: Device, p_wait_info: *const SemaphoreWaitInfo, timeout: u64, ) -> Result14993     pub unsafe fn wait_semaphores_khr(
14994         &self,
14995         device: Device,
14996         p_wait_info: *const SemaphoreWaitInfo,
14997         timeout: u64,
14998     ) -> Result {
14999         (self.wait_semaphores_khr)(device, p_wait_info, timeout)
15000     }
15001     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkSignalSemaphoreKHR.html>"]
signal_semaphore_khr( &self, device: Device, p_signal_info: *const SemaphoreSignalInfo, ) -> Result15002     pub unsafe fn signal_semaphore_khr(
15003         &self,
15004         device: Device,
15005         p_signal_info: *const SemaphoreSignalInfo,
15006     ) -> Result {
15007         (self.signal_semaphore_khr)(device, p_signal_info)
15008     }
15009 }
15010 #[doc = "Generated from 'VK_KHR_timeline_semaphore'"]
15011 impl SemaphoreType {
15012     pub const BINARY_KHR: Self = Self::BINARY;
15013     pub const TIMELINE_KHR: Self = Self::TIMELINE;
15014 }
15015 #[doc = "Generated from 'VK_KHR_timeline_semaphore'"]
15016 impl SemaphoreWaitFlags {
15017     pub const ANY_KHR: Self = Self::ANY;
15018 }
15019 #[doc = "Generated from 'VK_KHR_timeline_semaphore'"]
15020 impl StructureType {
15021     pub const PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR: Self =
15022         Self::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES;
15023     pub const PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR: Self =
15024         Self::PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES;
15025     pub const SEMAPHORE_TYPE_CREATE_INFO_KHR: Self = Self::SEMAPHORE_TYPE_CREATE_INFO;
15026     pub const TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR: Self = Self::TIMELINE_SEMAPHORE_SUBMIT_INFO;
15027     pub const SEMAPHORE_WAIT_INFO_KHR: Self = Self::SEMAPHORE_WAIT_INFO;
15028     pub const SEMAPHORE_SIGNAL_INFO_KHR: Self = Self::SEMAPHORE_SIGNAL_INFO;
15029 }
15030 impl KhrExtension209Fn {
name() -> &'static ::std::ffi::CStr15031     pub fn name() -> &'static ::std::ffi::CStr {
15032         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_209\0") }
15033     }
15034     pub const SPEC_VERSION: u32 = 0u32;
15035 }
15036 #[derive(Clone)]
15037 pub struct KhrExtension209Fn {}
15038 unsafe impl Send for KhrExtension209Fn {}
15039 unsafe impl Sync for KhrExtension209Fn {}
15040 impl KhrExtension209Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15041     pub fn load<F>(mut _f: F) -> Self
15042     where
15043         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15044     {
15045         Self {}
15046     }
15047 }
15048 impl IntelShaderIntegerFunctions2Fn {
name() -> &'static ::std::ffi::CStr15049     pub fn name() -> &'static ::std::ffi::CStr {
15050         unsafe {
15051             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_INTEL_shader_integer_functions2\0")
15052         }
15053     }
15054     pub const SPEC_VERSION: u32 = 1u32;
15055 }
15056 #[derive(Clone)]
15057 pub struct IntelShaderIntegerFunctions2Fn {}
15058 unsafe impl Send for IntelShaderIntegerFunctions2Fn {}
15059 unsafe impl Sync for IntelShaderIntegerFunctions2Fn {}
15060 impl IntelShaderIntegerFunctions2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15061     pub fn load<F>(mut _f: F) -> Self
15062     where
15063         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15064     {
15065         Self {}
15066     }
15067 }
15068 #[doc = "Generated from 'VK_INTEL_shader_integer_functions2'"]
15069 impl StructureType {
15070     pub const PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: Self = Self(1_000_209_000);
15071 }
15072 impl IntelPerformanceQueryFn {
name() -> &'static ::std::ffi::CStr15073     pub fn name() -> &'static ::std::ffi::CStr {
15074         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_INTEL_performance_query\0") }
15075     }
15076     pub const SPEC_VERSION: u32 = 2u32;
15077 }
15078 #[allow(non_camel_case_types)]
15079 pub type PFN_vkInitializePerformanceApiINTEL = unsafe extern "system" fn(
15080     device: Device,
15081     p_initialize_info: *const InitializePerformanceApiInfoINTEL,
15082 ) -> Result;
15083 #[allow(non_camel_case_types)]
15084 pub type PFN_vkUninitializePerformanceApiINTEL = unsafe extern "system" fn(device: Device);
15085 #[allow(non_camel_case_types)]
15086 pub type PFN_vkCmdSetPerformanceMarkerINTEL = unsafe extern "system" fn(
15087     command_buffer: CommandBuffer,
15088     p_marker_info: *const PerformanceMarkerInfoINTEL,
15089 ) -> Result;
15090 #[allow(non_camel_case_types)]
15091 pub type PFN_vkCmdSetPerformanceStreamMarkerINTEL = unsafe extern "system" fn(
15092     command_buffer: CommandBuffer,
15093     p_marker_info: *const PerformanceStreamMarkerInfoINTEL,
15094 ) -> Result;
15095 #[allow(non_camel_case_types)]
15096 pub type PFN_vkCmdSetPerformanceOverrideINTEL = unsafe extern "system" fn(
15097     command_buffer: CommandBuffer,
15098     p_override_info: *const PerformanceOverrideInfoINTEL,
15099 ) -> Result;
15100 #[allow(non_camel_case_types)]
15101 pub type PFN_vkAcquirePerformanceConfigurationINTEL = unsafe extern "system" fn(
15102     device: Device,
15103     p_acquire_info: *const PerformanceConfigurationAcquireInfoINTEL,
15104     p_configuration: *mut PerformanceConfigurationINTEL,
15105 ) -> Result;
15106 #[allow(non_camel_case_types)]
15107 pub type PFN_vkReleasePerformanceConfigurationINTEL = unsafe extern "system" fn(
15108     device: Device,
15109     configuration: PerformanceConfigurationINTEL,
15110 ) -> Result;
15111 #[allow(non_camel_case_types)]
15112 pub type PFN_vkQueueSetPerformanceConfigurationINTEL =
15113     unsafe extern "system" fn(queue: Queue, configuration: PerformanceConfigurationINTEL) -> Result;
15114 #[allow(non_camel_case_types)]
15115 pub type PFN_vkGetPerformanceParameterINTEL = unsafe extern "system" fn(
15116     device: Device,
15117     parameter: PerformanceParameterTypeINTEL,
15118     p_value: *mut PerformanceValueINTEL,
15119 ) -> Result;
15120 #[derive(Clone)]
15121 pub struct IntelPerformanceQueryFn {
15122     pub initialize_performance_api_intel: PFN_vkInitializePerformanceApiINTEL,
15123     pub uninitialize_performance_api_intel: PFN_vkUninitializePerformanceApiINTEL,
15124     pub cmd_set_performance_marker_intel: PFN_vkCmdSetPerformanceMarkerINTEL,
15125     pub cmd_set_performance_stream_marker_intel: PFN_vkCmdSetPerformanceStreamMarkerINTEL,
15126     pub cmd_set_performance_override_intel: PFN_vkCmdSetPerformanceOverrideINTEL,
15127     pub acquire_performance_configuration_intel: PFN_vkAcquirePerformanceConfigurationINTEL,
15128     pub release_performance_configuration_intel: PFN_vkReleasePerformanceConfigurationINTEL,
15129     pub queue_set_performance_configuration_intel: PFN_vkQueueSetPerformanceConfigurationINTEL,
15130     pub get_performance_parameter_intel: PFN_vkGetPerformanceParameterINTEL,
15131 }
15132 unsafe impl Send for IntelPerformanceQueryFn {}
15133 unsafe impl Sync for IntelPerformanceQueryFn {}
15134 impl IntelPerformanceQueryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15135     pub fn load<F>(mut _f: F) -> Self
15136     where
15137         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15138     {
15139         Self {
15140             initialize_performance_api_intel: unsafe {
15141                 unsafe extern "system" fn initialize_performance_api_intel(
15142                     _device: Device,
15143                     _p_initialize_info: *const InitializePerformanceApiInfoINTEL,
15144                 ) -> Result {
15145                     panic!(concat!(
15146                         "Unable to load ",
15147                         stringify!(initialize_performance_api_intel)
15148                     ))
15149                 }
15150                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15151                     b"vkInitializePerformanceApiINTEL\0",
15152                 );
15153                 let val = _f(cname);
15154                 if val.is_null() {
15155                     initialize_performance_api_intel
15156                 } else {
15157                     ::std::mem::transmute(val)
15158                 }
15159             },
15160             uninitialize_performance_api_intel: unsafe {
15161                 unsafe extern "system" fn uninitialize_performance_api_intel(_device: Device) {
15162                     panic!(concat!(
15163                         "Unable to load ",
15164                         stringify!(uninitialize_performance_api_intel)
15165                     ))
15166                 }
15167                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15168                     b"vkUninitializePerformanceApiINTEL\0",
15169                 );
15170                 let val = _f(cname);
15171                 if val.is_null() {
15172                     uninitialize_performance_api_intel
15173                 } else {
15174                     ::std::mem::transmute(val)
15175                 }
15176             },
15177             cmd_set_performance_marker_intel: unsafe {
15178                 unsafe extern "system" fn cmd_set_performance_marker_intel(
15179                     _command_buffer: CommandBuffer,
15180                     _p_marker_info: *const PerformanceMarkerInfoINTEL,
15181                 ) -> Result {
15182                     panic!(concat!(
15183                         "Unable to load ",
15184                         stringify!(cmd_set_performance_marker_intel)
15185                     ))
15186                 }
15187                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15188                     b"vkCmdSetPerformanceMarkerINTEL\0",
15189                 );
15190                 let val = _f(cname);
15191                 if val.is_null() {
15192                     cmd_set_performance_marker_intel
15193                 } else {
15194                     ::std::mem::transmute(val)
15195                 }
15196             },
15197             cmd_set_performance_stream_marker_intel: unsafe {
15198                 unsafe extern "system" fn cmd_set_performance_stream_marker_intel(
15199                     _command_buffer: CommandBuffer,
15200                     _p_marker_info: *const PerformanceStreamMarkerInfoINTEL,
15201                 ) -> Result {
15202                     panic!(concat!(
15203                         "Unable to load ",
15204                         stringify!(cmd_set_performance_stream_marker_intel)
15205                     ))
15206                 }
15207                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15208                     b"vkCmdSetPerformanceStreamMarkerINTEL\0",
15209                 );
15210                 let val = _f(cname);
15211                 if val.is_null() {
15212                     cmd_set_performance_stream_marker_intel
15213                 } else {
15214                     ::std::mem::transmute(val)
15215                 }
15216             },
15217             cmd_set_performance_override_intel: unsafe {
15218                 unsafe extern "system" fn cmd_set_performance_override_intel(
15219                     _command_buffer: CommandBuffer,
15220                     _p_override_info: *const PerformanceOverrideInfoINTEL,
15221                 ) -> Result {
15222                     panic!(concat!(
15223                         "Unable to load ",
15224                         stringify!(cmd_set_performance_override_intel)
15225                     ))
15226                 }
15227                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15228                     b"vkCmdSetPerformanceOverrideINTEL\0",
15229                 );
15230                 let val = _f(cname);
15231                 if val.is_null() {
15232                     cmd_set_performance_override_intel
15233                 } else {
15234                     ::std::mem::transmute(val)
15235                 }
15236             },
15237             acquire_performance_configuration_intel: unsafe {
15238                 unsafe extern "system" fn acquire_performance_configuration_intel(
15239                     _device: Device,
15240                     _p_acquire_info: *const PerformanceConfigurationAcquireInfoINTEL,
15241                     _p_configuration: *mut PerformanceConfigurationINTEL,
15242                 ) -> Result {
15243                     panic!(concat!(
15244                         "Unable to load ",
15245                         stringify!(acquire_performance_configuration_intel)
15246                     ))
15247                 }
15248                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15249                     b"vkAcquirePerformanceConfigurationINTEL\0",
15250                 );
15251                 let val = _f(cname);
15252                 if val.is_null() {
15253                     acquire_performance_configuration_intel
15254                 } else {
15255                     ::std::mem::transmute(val)
15256                 }
15257             },
15258             release_performance_configuration_intel: unsafe {
15259                 unsafe extern "system" fn release_performance_configuration_intel(
15260                     _device: Device,
15261                     _configuration: PerformanceConfigurationINTEL,
15262                 ) -> Result {
15263                     panic!(concat!(
15264                         "Unable to load ",
15265                         stringify!(release_performance_configuration_intel)
15266                     ))
15267                 }
15268                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15269                     b"vkReleasePerformanceConfigurationINTEL\0",
15270                 );
15271                 let val = _f(cname);
15272                 if val.is_null() {
15273                     release_performance_configuration_intel
15274                 } else {
15275                     ::std::mem::transmute(val)
15276                 }
15277             },
15278             queue_set_performance_configuration_intel: unsafe {
15279                 unsafe extern "system" fn queue_set_performance_configuration_intel(
15280                     _queue: Queue,
15281                     _configuration: PerformanceConfigurationINTEL,
15282                 ) -> Result {
15283                     panic!(concat!(
15284                         "Unable to load ",
15285                         stringify!(queue_set_performance_configuration_intel)
15286                     ))
15287                 }
15288                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15289                     b"vkQueueSetPerformanceConfigurationINTEL\0",
15290                 );
15291                 let val = _f(cname);
15292                 if val.is_null() {
15293                     queue_set_performance_configuration_intel
15294                 } else {
15295                     ::std::mem::transmute(val)
15296                 }
15297             },
15298             get_performance_parameter_intel: unsafe {
15299                 unsafe extern "system" fn get_performance_parameter_intel(
15300                     _device: Device,
15301                     _parameter: PerformanceParameterTypeINTEL,
15302                     _p_value: *mut PerformanceValueINTEL,
15303                 ) -> Result {
15304                     panic!(concat!(
15305                         "Unable to load ",
15306                         stringify!(get_performance_parameter_intel)
15307                     ))
15308                 }
15309                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15310                     b"vkGetPerformanceParameterINTEL\0",
15311                 );
15312                 let val = _f(cname);
15313                 if val.is_null() {
15314                     get_performance_parameter_intel
15315                 } else {
15316                     ::std::mem::transmute(val)
15317                 }
15318             },
15319         }
15320     }
15321     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkInitializePerformanceApiINTEL.html>"]
initialize_performance_api_intel( &self, device: Device, p_initialize_info: *const InitializePerformanceApiInfoINTEL, ) -> Result15322     pub unsafe fn initialize_performance_api_intel(
15323         &self,
15324         device: Device,
15325         p_initialize_info: *const InitializePerformanceApiInfoINTEL,
15326     ) -> Result {
15327         (self.initialize_performance_api_intel)(device, p_initialize_info)
15328     }
15329     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkUninitializePerformanceApiINTEL.html>"]
uninitialize_performance_api_intel(&self, device: Device)15330     pub unsafe fn uninitialize_performance_api_intel(&self, device: Device) {
15331         (self.uninitialize_performance_api_intel)(device)
15332     }
15333     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetPerformanceMarkerINTEL.html>"]
cmd_set_performance_marker_intel( &self, command_buffer: CommandBuffer, p_marker_info: *const PerformanceMarkerInfoINTEL, ) -> Result15334     pub unsafe fn cmd_set_performance_marker_intel(
15335         &self,
15336         command_buffer: CommandBuffer,
15337         p_marker_info: *const PerformanceMarkerInfoINTEL,
15338     ) -> Result {
15339         (self.cmd_set_performance_marker_intel)(command_buffer, p_marker_info)
15340     }
15341     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetPerformanceStreamMarkerINTEL.html>"]
cmd_set_performance_stream_marker_intel( &self, command_buffer: CommandBuffer, p_marker_info: *const PerformanceStreamMarkerInfoINTEL, ) -> Result15342     pub unsafe fn cmd_set_performance_stream_marker_intel(
15343         &self,
15344         command_buffer: CommandBuffer,
15345         p_marker_info: *const PerformanceStreamMarkerInfoINTEL,
15346     ) -> Result {
15347         (self.cmd_set_performance_stream_marker_intel)(command_buffer, p_marker_info)
15348     }
15349     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetPerformanceOverrideINTEL.html>"]
cmd_set_performance_override_intel( &self, command_buffer: CommandBuffer, p_override_info: *const PerformanceOverrideInfoINTEL, ) -> Result15350     pub unsafe fn cmd_set_performance_override_intel(
15351         &self,
15352         command_buffer: CommandBuffer,
15353         p_override_info: *const PerformanceOverrideInfoINTEL,
15354     ) -> Result {
15355         (self.cmd_set_performance_override_intel)(command_buffer, p_override_info)
15356     }
15357     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkAcquirePerformanceConfigurationINTEL.html>"]
acquire_performance_configuration_intel( &self, device: Device, p_acquire_info: *const PerformanceConfigurationAcquireInfoINTEL, p_configuration: *mut PerformanceConfigurationINTEL, ) -> Result15358     pub unsafe fn acquire_performance_configuration_intel(
15359         &self,
15360         device: Device,
15361         p_acquire_info: *const PerformanceConfigurationAcquireInfoINTEL,
15362         p_configuration: *mut PerformanceConfigurationINTEL,
15363     ) -> Result {
15364         (self.acquire_performance_configuration_intel)(device, p_acquire_info, p_configuration)
15365     }
15366     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkReleasePerformanceConfigurationINTEL.html>"]
release_performance_configuration_intel( &self, device: Device, configuration: PerformanceConfigurationINTEL, ) -> Result15367     pub unsafe fn release_performance_configuration_intel(
15368         &self,
15369         device: Device,
15370         configuration: PerformanceConfigurationINTEL,
15371     ) -> Result {
15372         (self.release_performance_configuration_intel)(device, configuration)
15373     }
15374     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkQueueSetPerformanceConfigurationINTEL.html>"]
queue_set_performance_configuration_intel( &self, queue: Queue, configuration: PerformanceConfigurationINTEL, ) -> Result15375     pub unsafe fn queue_set_performance_configuration_intel(
15376         &self,
15377         queue: Queue,
15378         configuration: PerformanceConfigurationINTEL,
15379     ) -> Result {
15380         (self.queue_set_performance_configuration_intel)(queue, configuration)
15381     }
15382     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPerformanceParameterINTEL.html>"]
get_performance_parameter_intel( &self, device: Device, parameter: PerformanceParameterTypeINTEL, p_value: *mut PerformanceValueINTEL, ) -> Result15383     pub unsafe fn get_performance_parameter_intel(
15384         &self,
15385         device: Device,
15386         parameter: PerformanceParameterTypeINTEL,
15387         p_value: *mut PerformanceValueINTEL,
15388     ) -> Result {
15389         (self.get_performance_parameter_intel)(device, parameter, p_value)
15390     }
15391 }
15392 #[doc = "Generated from 'VK_INTEL_performance_query'"]
15393 impl ObjectType {
15394     pub const PERFORMANCE_CONFIGURATION_INTEL: Self = Self(1_000_210_000);
15395 }
15396 #[doc = "Generated from 'VK_INTEL_performance_query'"]
15397 impl QueryType {
15398     pub const PERFORMANCE_QUERY_INTEL: Self = Self(1_000_210_000);
15399 }
15400 #[doc = "Generated from 'VK_INTEL_performance_query'"]
15401 impl StructureType {
15402     pub const QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: Self = Self(1_000_210_000);
15403     pub const INITIALIZE_PERFORMANCE_API_INFO_INTEL: Self = Self(1_000_210_001);
15404     pub const PERFORMANCE_MARKER_INFO_INTEL: Self = Self(1_000_210_002);
15405     pub const PERFORMANCE_STREAM_MARKER_INFO_INTEL: Self = Self(1_000_210_003);
15406     pub const PERFORMANCE_OVERRIDE_INFO_INTEL: Self = Self(1_000_210_004);
15407     pub const PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL: Self = Self(1_000_210_005);
15408 }
15409 impl KhrVulkanMemoryModelFn {
name() -> &'static ::std::ffi::CStr15410     pub fn name() -> &'static ::std::ffi::CStr {
15411         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_vulkan_memory_model\0") }
15412     }
15413     pub const SPEC_VERSION: u32 = 3u32;
15414 }
15415 #[derive(Clone)]
15416 pub struct KhrVulkanMemoryModelFn {}
15417 unsafe impl Send for KhrVulkanMemoryModelFn {}
15418 unsafe impl Sync for KhrVulkanMemoryModelFn {}
15419 impl KhrVulkanMemoryModelFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15420     pub fn load<F>(mut _f: F) -> Self
15421     where
15422         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15423     {
15424         Self {}
15425     }
15426 }
15427 #[doc = "Generated from 'VK_KHR_vulkan_memory_model'"]
15428 impl StructureType {
15429     pub const PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR: Self =
15430         Self::PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES;
15431 }
15432 impl ExtPciBusInfoFn {
name() -> &'static ::std::ffi::CStr15433     pub fn name() -> &'static ::std::ffi::CStr {
15434         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_pci_bus_info\0") }
15435     }
15436     pub const SPEC_VERSION: u32 = 2u32;
15437 }
15438 #[derive(Clone)]
15439 pub struct ExtPciBusInfoFn {}
15440 unsafe impl Send for ExtPciBusInfoFn {}
15441 unsafe impl Sync for ExtPciBusInfoFn {}
15442 impl ExtPciBusInfoFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15443     pub fn load<F>(mut _f: F) -> Self
15444     where
15445         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15446     {
15447         Self {}
15448     }
15449 }
15450 #[doc = "Generated from 'VK_EXT_pci_bus_info'"]
15451 impl StructureType {
15452     pub const PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: Self = Self(1_000_212_000);
15453 }
15454 impl AmdDisplayNativeHdrFn {
name() -> &'static ::std::ffi::CStr15455     pub fn name() -> &'static ::std::ffi::CStr {
15456         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_display_native_hdr\0") }
15457     }
15458     pub const SPEC_VERSION: u32 = 1u32;
15459 }
15460 #[allow(non_camel_case_types)]
15461 pub type PFN_vkSetLocalDimmingAMD = unsafe extern "system" fn(
15462     device: Device,
15463     swap_chain: SwapchainKHR,
15464     local_dimming_enable: Bool32,
15465 );
15466 #[derive(Clone)]
15467 pub struct AmdDisplayNativeHdrFn {
15468     pub set_local_dimming_amd: PFN_vkSetLocalDimmingAMD,
15469 }
15470 unsafe impl Send for AmdDisplayNativeHdrFn {}
15471 unsafe impl Sync for AmdDisplayNativeHdrFn {}
15472 impl AmdDisplayNativeHdrFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15473     pub fn load<F>(mut _f: F) -> Self
15474     where
15475         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15476     {
15477         Self {
15478             set_local_dimming_amd: unsafe {
15479                 unsafe extern "system" fn set_local_dimming_amd(
15480                     _device: Device,
15481                     _swap_chain: SwapchainKHR,
15482                     _local_dimming_enable: Bool32,
15483                 ) {
15484                     panic!(concat!(
15485                         "Unable to load ",
15486                         stringify!(set_local_dimming_amd)
15487                     ))
15488                 }
15489                 let cname =
15490                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkSetLocalDimmingAMD\0");
15491                 let val = _f(cname);
15492                 if val.is_null() {
15493                     set_local_dimming_amd
15494                 } else {
15495                     ::std::mem::transmute(val)
15496                 }
15497             },
15498         }
15499     }
15500     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkSetLocalDimmingAMD.html>"]
set_local_dimming_amd( &self, device: Device, swap_chain: SwapchainKHR, local_dimming_enable: Bool32, )15501     pub unsafe fn set_local_dimming_amd(
15502         &self,
15503         device: Device,
15504         swap_chain: SwapchainKHR,
15505         local_dimming_enable: Bool32,
15506     ) {
15507         (self.set_local_dimming_amd)(device, swap_chain, local_dimming_enable)
15508     }
15509 }
15510 #[doc = "Generated from 'VK_AMD_display_native_hdr'"]
15511 impl ColorSpaceKHR {
15512     pub const DISPLAY_NATIVE_AMD: Self = Self(1_000_213_000);
15513 }
15514 #[doc = "Generated from 'VK_AMD_display_native_hdr'"]
15515 impl StructureType {
15516     pub const DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: Self = Self(1_000_213_000);
15517     pub const SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: Self = Self(1_000_213_001);
15518 }
15519 impl FuchsiaImagepipeSurfaceFn {
name() -> &'static ::std::ffi::CStr15520     pub fn name() -> &'static ::std::ffi::CStr {
15521         unsafe {
15522             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_imagepipe_surface\0")
15523         }
15524     }
15525     pub const SPEC_VERSION: u32 = 1u32;
15526 }
15527 #[allow(non_camel_case_types)]
15528 pub type PFN_vkCreateImagePipeSurfaceFUCHSIA = unsafe extern "system" fn(
15529     instance: Instance,
15530     p_create_info: *const ImagePipeSurfaceCreateInfoFUCHSIA,
15531     p_allocator: *const AllocationCallbacks,
15532     p_surface: *mut SurfaceKHR,
15533 ) -> Result;
15534 #[derive(Clone)]
15535 pub struct FuchsiaImagepipeSurfaceFn {
15536     pub create_image_pipe_surface_fuchsia: PFN_vkCreateImagePipeSurfaceFUCHSIA,
15537 }
15538 unsafe impl Send for FuchsiaImagepipeSurfaceFn {}
15539 unsafe impl Sync for FuchsiaImagepipeSurfaceFn {}
15540 impl FuchsiaImagepipeSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15541     pub fn load<F>(mut _f: F) -> Self
15542     where
15543         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15544     {
15545         Self {
15546             create_image_pipe_surface_fuchsia: unsafe {
15547                 unsafe extern "system" fn create_image_pipe_surface_fuchsia(
15548                     _instance: Instance,
15549                     _p_create_info: *const ImagePipeSurfaceCreateInfoFUCHSIA,
15550                     _p_allocator: *const AllocationCallbacks,
15551                     _p_surface: *mut SurfaceKHR,
15552                 ) -> Result {
15553                     panic!(concat!(
15554                         "Unable to load ",
15555                         stringify!(create_image_pipe_surface_fuchsia)
15556                     ))
15557                 }
15558                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15559                     b"vkCreateImagePipeSurfaceFUCHSIA\0",
15560                 );
15561                 let val = _f(cname);
15562                 if val.is_null() {
15563                     create_image_pipe_surface_fuchsia
15564                 } else {
15565                     ::std::mem::transmute(val)
15566                 }
15567             },
15568         }
15569     }
15570     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateImagePipeSurfaceFUCHSIA.html>"]
create_image_pipe_surface_fuchsia( &self, instance: Instance, p_create_info: *const ImagePipeSurfaceCreateInfoFUCHSIA, p_allocator: *const AllocationCallbacks, p_surface: *mut SurfaceKHR, ) -> Result15571     pub unsafe fn create_image_pipe_surface_fuchsia(
15572         &self,
15573         instance: Instance,
15574         p_create_info: *const ImagePipeSurfaceCreateInfoFUCHSIA,
15575         p_allocator: *const AllocationCallbacks,
15576         p_surface: *mut SurfaceKHR,
15577     ) -> Result {
15578         (self.create_image_pipe_surface_fuchsia)(instance, p_create_info, p_allocator, p_surface)
15579     }
15580 }
15581 #[doc = "Generated from 'VK_FUCHSIA_imagepipe_surface'"]
15582 impl StructureType {
15583     pub const IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA: Self = Self(1_000_214_000);
15584 }
15585 impl KhrShaderTerminateInvocationFn {
name() -> &'static ::std::ffi::CStr15586     pub fn name() -> &'static ::std::ffi::CStr {
15587         unsafe {
15588             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_terminate_invocation\0")
15589         }
15590     }
15591     pub const SPEC_VERSION: u32 = 1u32;
15592 }
15593 #[derive(Clone)]
15594 pub struct KhrShaderTerminateInvocationFn {}
15595 unsafe impl Send for KhrShaderTerminateInvocationFn {}
15596 unsafe impl Sync for KhrShaderTerminateInvocationFn {}
15597 impl KhrShaderTerminateInvocationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15598     pub fn load<F>(mut _f: F) -> Self
15599     where
15600         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15601     {
15602         Self {}
15603     }
15604 }
15605 #[doc = "Generated from 'VK_KHR_shader_terminate_invocation'"]
15606 impl StructureType {
15607     pub const PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR: Self = Self(1_000_215_000);
15608 }
15609 impl GoogleExtension217Fn {
name() -> &'static ::std::ffi::CStr15610     pub fn name() -> &'static ::std::ffi::CStr {
15611         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_extension_217\0") }
15612     }
15613     pub const SPEC_VERSION: u32 = 0u32;
15614 }
15615 #[derive(Clone)]
15616 pub struct GoogleExtension217Fn {}
15617 unsafe impl Send for GoogleExtension217Fn {}
15618 unsafe impl Sync for GoogleExtension217Fn {}
15619 impl GoogleExtension217Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15620     pub fn load<F>(mut _f: F) -> Self
15621     where
15622         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15623     {
15624         Self {}
15625     }
15626 }
15627 impl ExtMetalSurfaceFn {
name() -> &'static ::std::ffi::CStr15628     pub fn name() -> &'static ::std::ffi::CStr {
15629         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_metal_surface\0") }
15630     }
15631     pub const SPEC_VERSION: u32 = 1u32;
15632 }
15633 #[allow(non_camel_case_types)]
15634 pub type PFN_vkCreateMetalSurfaceEXT = unsafe extern "system" fn(
15635     instance: Instance,
15636     p_create_info: *const MetalSurfaceCreateInfoEXT,
15637     p_allocator: *const AllocationCallbacks,
15638     p_surface: *mut SurfaceKHR,
15639 ) -> Result;
15640 #[derive(Clone)]
15641 pub struct ExtMetalSurfaceFn {
15642     pub create_metal_surface_ext: PFN_vkCreateMetalSurfaceEXT,
15643 }
15644 unsafe impl Send for ExtMetalSurfaceFn {}
15645 unsafe impl Sync for ExtMetalSurfaceFn {}
15646 impl ExtMetalSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15647     pub fn load<F>(mut _f: F) -> Self
15648     where
15649         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15650     {
15651         Self {
15652             create_metal_surface_ext: unsafe {
15653                 unsafe extern "system" fn create_metal_surface_ext(
15654                     _instance: Instance,
15655                     _p_create_info: *const MetalSurfaceCreateInfoEXT,
15656                     _p_allocator: *const AllocationCallbacks,
15657                     _p_surface: *mut SurfaceKHR,
15658                 ) -> Result {
15659                     panic!(concat!(
15660                         "Unable to load ",
15661                         stringify!(create_metal_surface_ext)
15662                     ))
15663                 }
15664                 let cname =
15665                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateMetalSurfaceEXT\0");
15666                 let val = _f(cname);
15667                 if val.is_null() {
15668                     create_metal_surface_ext
15669                 } else {
15670                     ::std::mem::transmute(val)
15671                 }
15672             },
15673         }
15674     }
15675     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateMetalSurfaceEXT.html>"]
create_metal_surface_ext( &self, instance: Instance, p_create_info: *const MetalSurfaceCreateInfoEXT, p_allocator: *const AllocationCallbacks, p_surface: *mut SurfaceKHR, ) -> Result15676     pub unsafe fn create_metal_surface_ext(
15677         &self,
15678         instance: Instance,
15679         p_create_info: *const MetalSurfaceCreateInfoEXT,
15680         p_allocator: *const AllocationCallbacks,
15681         p_surface: *mut SurfaceKHR,
15682     ) -> Result {
15683         (self.create_metal_surface_ext)(instance, p_create_info, p_allocator, p_surface)
15684     }
15685 }
15686 #[doc = "Generated from 'VK_EXT_metal_surface'"]
15687 impl StructureType {
15688     pub const METAL_SURFACE_CREATE_INFO_EXT: Self = Self(1_000_217_000);
15689 }
15690 impl ExtFragmentDensityMapFn {
name() -> &'static ::std::ffi::CStr15691     pub fn name() -> &'static ::std::ffi::CStr {
15692         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_fragment_density_map\0") }
15693     }
15694     pub const SPEC_VERSION: u32 = 2u32;
15695 }
15696 #[derive(Clone)]
15697 pub struct ExtFragmentDensityMapFn {}
15698 unsafe impl Send for ExtFragmentDensityMapFn {}
15699 unsafe impl Sync for ExtFragmentDensityMapFn {}
15700 impl ExtFragmentDensityMapFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15701     pub fn load<F>(mut _f: F) -> Self
15702     where
15703         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15704     {
15705         Self {}
15706     }
15707 }
15708 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
15709 impl AccessFlags {
15710     pub const FRAGMENT_DENSITY_MAP_READ_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
15711 }
15712 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
15713 impl FormatFeatureFlags {
15714     pub const FRAGMENT_DENSITY_MAP_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
15715 }
15716 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
15717 impl FormatFeatureFlags2KHR {
15718     pub const FRAGMENT_DENSITY_MAP_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
15719 }
15720 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
15721 impl ImageCreateFlags {
15722     pub const SUBSAMPLED_EXT: Self = Self(0b100_0000_0000_0000);
15723 }
15724 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
15725 impl ImageLayout {
15726     pub const FRAGMENT_DENSITY_MAP_OPTIMAL_EXT: Self = Self(1_000_218_000);
15727 }
15728 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
15729 impl ImageUsageFlags {
15730     pub const FRAGMENT_DENSITY_MAP_EXT: Self = Self(0b10_0000_0000);
15731 }
15732 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
15733 impl ImageViewCreateFlags {
15734     pub const FRAGMENT_DENSITY_MAP_DYNAMIC_EXT: Self = Self(0b1);
15735 }
15736 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
15737 impl PipelineStageFlags {
15738     pub const FRAGMENT_DENSITY_PROCESS_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000);
15739 }
15740 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
15741 impl SamplerCreateFlags {
15742     pub const SUBSAMPLED_EXT: Self = Self(0b1);
15743     pub const SUBSAMPLED_COARSE_RECONSTRUCTION_EXT: Self = Self(0b10);
15744 }
15745 #[doc = "Generated from 'VK_EXT_fragment_density_map'"]
15746 impl StructureType {
15747     pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: Self = Self(1_000_218_000);
15748     pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: Self = Self(1_000_218_001);
15749     pub const RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: Self = Self(1_000_218_002);
15750 }
15751 impl ExtExtension220Fn {
name() -> &'static ::std::ffi::CStr15752     pub fn name() -> &'static ::std::ffi::CStr {
15753         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_220\0") }
15754     }
15755     pub const SPEC_VERSION: u32 = 0u32;
15756 }
15757 #[derive(Clone)]
15758 pub struct ExtExtension220Fn {}
15759 unsafe impl Send for ExtExtension220Fn {}
15760 unsafe impl Sync for ExtExtension220Fn {}
15761 impl ExtExtension220Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15762     pub fn load<F>(mut _f: F) -> Self
15763     where
15764         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15765     {
15766         Self {}
15767     }
15768 }
15769 impl KhrExtension221Fn {
name() -> &'static ::std::ffi::CStr15770     pub fn name() -> &'static ::std::ffi::CStr {
15771         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_221\0") }
15772     }
15773     pub const SPEC_VERSION: u32 = 0u32;
15774 }
15775 #[derive(Clone)]
15776 pub struct KhrExtension221Fn {}
15777 unsafe impl Send for KhrExtension221Fn {}
15778 unsafe impl Sync for KhrExtension221Fn {}
15779 impl KhrExtension221Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15780     pub fn load<F>(mut _f: F) -> Self
15781     where
15782         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15783     {
15784         Self {}
15785     }
15786 }
15787 #[doc = "Generated from 'VK_KHR_extension_221'"]
15788 impl RenderPassCreateFlags {
15789     pub const RESERVED_0_KHR: Self = Self(0b1);
15790 }
15791 impl ExtScalarBlockLayoutFn {
name() -> &'static ::std::ffi::CStr15792     pub fn name() -> &'static ::std::ffi::CStr {
15793         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_scalar_block_layout\0") }
15794     }
15795     pub const SPEC_VERSION: u32 = 1u32;
15796 }
15797 #[derive(Clone)]
15798 pub struct ExtScalarBlockLayoutFn {}
15799 unsafe impl Send for ExtScalarBlockLayoutFn {}
15800 unsafe impl Sync for ExtScalarBlockLayoutFn {}
15801 impl ExtScalarBlockLayoutFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15802     pub fn load<F>(mut _f: F) -> Self
15803     where
15804         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15805     {
15806         Self {}
15807     }
15808 }
15809 #[doc = "Generated from 'VK_EXT_scalar_block_layout'"]
15810 impl StructureType {
15811     pub const PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT: Self =
15812         Self::PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES;
15813 }
15814 impl ExtExtension223Fn {
name() -> &'static ::std::ffi::CStr15815     pub fn name() -> &'static ::std::ffi::CStr {
15816         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_223\0") }
15817     }
15818     pub const SPEC_VERSION: u32 = 0u32;
15819 }
15820 #[derive(Clone)]
15821 pub struct ExtExtension223Fn {}
15822 unsafe impl Send for ExtExtension223Fn {}
15823 unsafe impl Sync for ExtExtension223Fn {}
15824 impl ExtExtension223Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15825     pub fn load<F>(mut _f: F) -> Self
15826     where
15827         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15828     {
15829         Self {}
15830     }
15831 }
15832 impl GoogleHlslFunctionality1Fn {
name() -> &'static ::std::ffi::CStr15833     pub fn name() -> &'static ::std::ffi::CStr {
15834         unsafe {
15835             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_hlsl_functionality1\0")
15836         }
15837     }
15838     pub const SPEC_VERSION: u32 = 1u32;
15839 }
15840 #[derive(Clone)]
15841 pub struct GoogleHlslFunctionality1Fn {}
15842 unsafe impl Send for GoogleHlslFunctionality1Fn {}
15843 unsafe impl Sync for GoogleHlslFunctionality1Fn {}
15844 impl GoogleHlslFunctionality1Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15845     pub fn load<F>(mut _f: F) -> Self
15846     where
15847         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15848     {
15849         Self {}
15850     }
15851 }
15852 impl GoogleDecorateStringFn {
name() -> &'static ::std::ffi::CStr15853     pub fn name() -> &'static ::std::ffi::CStr {
15854         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_decorate_string\0") }
15855     }
15856     pub const SPEC_VERSION: u32 = 1u32;
15857 }
15858 #[derive(Clone)]
15859 pub struct GoogleDecorateStringFn {}
15860 unsafe impl Send for GoogleDecorateStringFn {}
15861 unsafe impl Sync for GoogleDecorateStringFn {}
15862 impl GoogleDecorateStringFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15863     pub fn load<F>(mut _f: F) -> Self
15864     where
15865         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15866     {
15867         Self {}
15868     }
15869 }
15870 impl ExtSubgroupSizeControlFn {
name() -> &'static ::std::ffi::CStr15871     pub fn name() -> &'static ::std::ffi::CStr {
15872         unsafe {
15873             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_subgroup_size_control\0")
15874         }
15875     }
15876     pub const SPEC_VERSION: u32 = 2u32;
15877 }
15878 #[derive(Clone)]
15879 pub struct ExtSubgroupSizeControlFn {}
15880 unsafe impl Send for ExtSubgroupSizeControlFn {}
15881 unsafe impl Sync for ExtSubgroupSizeControlFn {}
15882 impl ExtSubgroupSizeControlFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15883     pub fn load<F>(mut _f: F) -> Self
15884     where
15885         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15886     {
15887         Self {}
15888     }
15889 }
15890 #[doc = "Generated from 'VK_EXT_subgroup_size_control'"]
15891 impl PipelineShaderStageCreateFlags {
15892     pub const ALLOW_VARYING_SUBGROUP_SIZE_EXT: Self = Self(0b1);
15893     pub const REQUIRE_FULL_SUBGROUPS_EXT: Self = Self(0b10);
15894 }
15895 #[doc = "Generated from 'VK_EXT_subgroup_size_control'"]
15896 impl StructureType {
15897     pub const PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT: Self = Self(1_000_225_000);
15898     pub const PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT: Self =
15899         Self(1_000_225_001);
15900     pub const PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT: Self = Self(1_000_225_002);
15901 }
15902 impl KhrFragmentShadingRateFn {
name() -> &'static ::std::ffi::CStr15903     pub fn name() -> &'static ::std::ffi::CStr {
15904         unsafe {
15905             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_fragment_shading_rate\0")
15906         }
15907     }
15908     pub const SPEC_VERSION: u32 = 2u32;
15909 }
15910 #[allow(non_camel_case_types)]
15911 pub type PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR = unsafe extern "system" fn(
15912     physical_device: PhysicalDevice,
15913     p_fragment_shading_rate_count: *mut u32,
15914     p_fragment_shading_rates: *mut PhysicalDeviceFragmentShadingRateKHR,
15915 ) -> Result;
15916 #[allow(non_camel_case_types)]
15917 pub type PFN_vkCmdSetFragmentShadingRateKHR = unsafe extern "system" fn(
15918     command_buffer: CommandBuffer,
15919     p_fragment_size: *const Extent2D,
15920     combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2],
15921 );
15922 #[derive(Clone)]
15923 pub struct KhrFragmentShadingRateFn {
15924     pub get_physical_device_fragment_shading_rates_khr:
15925         PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR,
15926     pub cmd_set_fragment_shading_rate_khr: PFN_vkCmdSetFragmentShadingRateKHR,
15927 }
15928 unsafe impl Send for KhrFragmentShadingRateFn {}
15929 unsafe impl Sync for KhrFragmentShadingRateFn {}
15930 impl KhrFragmentShadingRateFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,15931     pub fn load<F>(mut _f: F) -> Self
15932     where
15933         F: FnMut(&::std::ffi::CStr) -> *const c_void,
15934     {
15935         Self {
15936             get_physical_device_fragment_shading_rates_khr: unsafe {
15937                 unsafe extern "system" fn get_physical_device_fragment_shading_rates_khr(
15938                     _physical_device: PhysicalDevice,
15939                     _p_fragment_shading_rate_count: *mut u32,
15940                     _p_fragment_shading_rates: *mut PhysicalDeviceFragmentShadingRateKHR,
15941                 ) -> Result {
15942                     panic!(concat!(
15943                         "Unable to load ",
15944                         stringify!(get_physical_device_fragment_shading_rates_khr)
15945                     ))
15946                 }
15947                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15948                     b"vkGetPhysicalDeviceFragmentShadingRatesKHR\0",
15949                 );
15950                 let val = _f(cname);
15951                 if val.is_null() {
15952                     get_physical_device_fragment_shading_rates_khr
15953                 } else {
15954                     ::std::mem::transmute(val)
15955                 }
15956             },
15957             cmd_set_fragment_shading_rate_khr: unsafe {
15958                 unsafe extern "system" fn cmd_set_fragment_shading_rate_khr(
15959                     _command_buffer: CommandBuffer,
15960                     _p_fragment_size: *const Extent2D,
15961                     _combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2],
15962                 ) {
15963                     panic!(concat!(
15964                         "Unable to load ",
15965                         stringify!(cmd_set_fragment_shading_rate_khr)
15966                     ))
15967                 }
15968                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
15969                     b"vkCmdSetFragmentShadingRateKHR\0",
15970                 );
15971                 let val = _f(cname);
15972                 if val.is_null() {
15973                     cmd_set_fragment_shading_rate_khr
15974                 } else {
15975                     ::std::mem::transmute(val)
15976                 }
15977             },
15978         }
15979     }
15980     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceFragmentShadingRatesKHR.html>"]
get_physical_device_fragment_shading_rates_khr( &self, physical_device: PhysicalDevice, p_fragment_shading_rate_count: *mut u32, p_fragment_shading_rates: *mut PhysicalDeviceFragmentShadingRateKHR, ) -> Result15981     pub unsafe fn get_physical_device_fragment_shading_rates_khr(
15982         &self,
15983         physical_device: PhysicalDevice,
15984         p_fragment_shading_rate_count: *mut u32,
15985         p_fragment_shading_rates: *mut PhysicalDeviceFragmentShadingRateKHR,
15986     ) -> Result {
15987         (self.get_physical_device_fragment_shading_rates_khr)(
15988             physical_device,
15989             p_fragment_shading_rate_count,
15990             p_fragment_shading_rates,
15991         )
15992     }
15993     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetFragmentShadingRateKHR.html>"]
cmd_set_fragment_shading_rate_khr( &self, command_buffer: CommandBuffer, p_fragment_size: *const Extent2D, combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2], )15994     pub unsafe fn cmd_set_fragment_shading_rate_khr(
15995         &self,
15996         command_buffer: CommandBuffer,
15997         p_fragment_size: *const Extent2D,
15998         combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2],
15999     ) {
16000         (self.cmd_set_fragment_shading_rate_khr)(command_buffer, p_fragment_size, combiner_ops)
16001     }
16002 }
16003 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
16004 impl AccessFlags {
16005     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_READ_KHR: Self =
16006         Self(0b1000_0000_0000_0000_0000_0000);
16007 }
16008 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
16009 impl DynamicState {
16010     pub const FRAGMENT_SHADING_RATE_KHR: Self = Self(1_000_226_000);
16011 }
16012 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
16013 impl FormatFeatureFlags {
16014     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self =
16015         Self(0b100_0000_0000_0000_0000_0000_0000_0000);
16016 }
16017 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
16018 impl FormatFeatureFlags2KHR {
16019     pub const FRAGMENT_SHADING_RATE_ATTACHMENT: Self =
16020         Self(0b100_0000_0000_0000_0000_0000_0000_0000);
16021 }
16022 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
16023 impl ImageLayout {
16024     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR: Self = Self(1_000_164_003);
16025 }
16026 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
16027 impl ImageUsageFlags {
16028     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self = Self(0b1_0000_0000);
16029 }
16030 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
16031 impl PipelineStageFlags {
16032     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_KHR: Self = Self(0b100_0000_0000_0000_0000_0000);
16033 }
16034 #[doc = "Generated from 'VK_KHR_fragment_shading_rate'"]
16035 impl StructureType {
16036     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: Self = Self(1_000_226_000);
16037     pub const PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: Self = Self(1_000_226_001);
16038     pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: Self = Self(1_000_226_002);
16039     pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: Self = Self(1_000_226_003);
16040     pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR: Self = Self(1_000_226_004);
16041 }
16042 impl AmdShaderCoreProperties2Fn {
name() -> &'static ::std::ffi::CStr16043     pub fn name() -> &'static ::std::ffi::CStr {
16044         unsafe {
16045             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_shader_core_properties2\0")
16046         }
16047     }
16048     pub const SPEC_VERSION: u32 = 1u32;
16049 }
16050 #[derive(Clone)]
16051 pub struct AmdShaderCoreProperties2Fn {}
16052 unsafe impl Send for AmdShaderCoreProperties2Fn {}
16053 unsafe impl Sync for AmdShaderCoreProperties2Fn {}
16054 impl AmdShaderCoreProperties2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16055     pub fn load<F>(mut _f: F) -> Self
16056     where
16057         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16058     {
16059         Self {}
16060     }
16061 }
16062 #[doc = "Generated from 'VK_AMD_shader_core_properties2'"]
16063 impl StructureType {
16064     pub const PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: Self = Self(1_000_227_000);
16065 }
16066 impl AmdExtension229Fn {
name() -> &'static ::std::ffi::CStr16067     pub fn name() -> &'static ::std::ffi::CStr {
16068         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_229\0") }
16069     }
16070     pub const SPEC_VERSION: u32 = 0u32;
16071 }
16072 #[derive(Clone)]
16073 pub struct AmdExtension229Fn {}
16074 unsafe impl Send for AmdExtension229Fn {}
16075 unsafe impl Sync for AmdExtension229Fn {}
16076 impl AmdExtension229Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16077     pub fn load<F>(mut _f: F) -> Self
16078     where
16079         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16080     {
16081         Self {}
16082     }
16083 }
16084 impl AmdDeviceCoherentMemoryFn {
name() -> &'static ::std::ffi::CStr16085     pub fn name() -> &'static ::std::ffi::CStr {
16086         unsafe {
16087             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_device_coherent_memory\0")
16088         }
16089     }
16090     pub const SPEC_VERSION: u32 = 1u32;
16091 }
16092 #[derive(Clone)]
16093 pub struct AmdDeviceCoherentMemoryFn {}
16094 unsafe impl Send for AmdDeviceCoherentMemoryFn {}
16095 unsafe impl Sync for AmdDeviceCoherentMemoryFn {}
16096 impl AmdDeviceCoherentMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16097     pub fn load<F>(mut _f: F) -> Self
16098     where
16099         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16100     {
16101         Self {}
16102     }
16103 }
16104 #[doc = "Generated from 'VK_AMD_device_coherent_memory'"]
16105 impl MemoryPropertyFlags {
16106     pub const DEVICE_COHERENT_AMD: Self = Self(0b100_0000);
16107     pub const DEVICE_UNCACHED_AMD: Self = Self(0b1000_0000);
16108 }
16109 #[doc = "Generated from 'VK_AMD_device_coherent_memory'"]
16110 impl StructureType {
16111     pub const PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: Self = Self(1_000_229_000);
16112 }
16113 impl AmdExtension231Fn {
name() -> &'static ::std::ffi::CStr16114     pub fn name() -> &'static ::std::ffi::CStr {
16115         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_231\0") }
16116     }
16117     pub const SPEC_VERSION: u32 = 0u32;
16118 }
16119 #[derive(Clone)]
16120 pub struct AmdExtension231Fn {}
16121 unsafe impl Send for AmdExtension231Fn {}
16122 unsafe impl Sync for AmdExtension231Fn {}
16123 impl AmdExtension231Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16124     pub fn load<F>(mut _f: F) -> Self
16125     where
16126         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16127     {
16128         Self {}
16129     }
16130 }
16131 impl AmdExtension232Fn {
name() -> &'static ::std::ffi::CStr16132     pub fn name() -> &'static ::std::ffi::CStr {
16133         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_232\0") }
16134     }
16135     pub const SPEC_VERSION: u32 = 0u32;
16136 }
16137 #[derive(Clone)]
16138 pub struct AmdExtension232Fn {}
16139 unsafe impl Send for AmdExtension232Fn {}
16140 unsafe impl Sync for AmdExtension232Fn {}
16141 impl AmdExtension232Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16142     pub fn load<F>(mut _f: F) -> Self
16143     where
16144         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16145     {
16146         Self {}
16147     }
16148 }
16149 impl AmdExtension233Fn {
name() -> &'static ::std::ffi::CStr16150     pub fn name() -> &'static ::std::ffi::CStr {
16151         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_233\0") }
16152     }
16153     pub const SPEC_VERSION: u32 = 0u32;
16154 }
16155 #[derive(Clone)]
16156 pub struct AmdExtension233Fn {}
16157 unsafe impl Send for AmdExtension233Fn {}
16158 unsafe impl Sync for AmdExtension233Fn {}
16159 impl AmdExtension233Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16160     pub fn load<F>(mut _f: F) -> Self
16161     where
16162         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16163     {
16164         Self {}
16165     }
16166 }
16167 impl AmdExtension234Fn {
name() -> &'static ::std::ffi::CStr16168     pub fn name() -> &'static ::std::ffi::CStr {
16169         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_234\0") }
16170     }
16171     pub const SPEC_VERSION: u32 = 0u32;
16172 }
16173 #[derive(Clone)]
16174 pub struct AmdExtension234Fn {}
16175 unsafe impl Send for AmdExtension234Fn {}
16176 unsafe impl Sync for AmdExtension234Fn {}
16177 impl AmdExtension234Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16178     pub fn load<F>(mut _f: F) -> Self
16179     where
16180         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16181     {
16182         Self {}
16183     }
16184 }
16185 impl ExtShaderImageAtomicInt64Fn {
name() -> &'static ::std::ffi::CStr16186     pub fn name() -> &'static ::std::ffi::CStr {
16187         unsafe {
16188             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_image_atomic_int64\0")
16189         }
16190     }
16191     pub const SPEC_VERSION: u32 = 1u32;
16192 }
16193 #[derive(Clone)]
16194 pub struct ExtShaderImageAtomicInt64Fn {}
16195 unsafe impl Send for ExtShaderImageAtomicInt64Fn {}
16196 unsafe impl Sync for ExtShaderImageAtomicInt64Fn {}
16197 impl ExtShaderImageAtomicInt64Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16198     pub fn load<F>(mut _f: F) -> Self
16199     where
16200         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16201     {
16202         Self {}
16203     }
16204 }
16205 #[doc = "Generated from 'VK_EXT_shader_image_atomic_int64'"]
16206 impl StructureType {
16207     pub const PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: Self = Self(1_000_234_000);
16208 }
16209 impl AmdExtension236Fn {
name() -> &'static ::std::ffi::CStr16210     pub fn name() -> &'static ::std::ffi::CStr {
16211         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_236\0") }
16212     }
16213     pub const SPEC_VERSION: u32 = 0u32;
16214 }
16215 #[derive(Clone)]
16216 pub struct AmdExtension236Fn {}
16217 unsafe impl Send for AmdExtension236Fn {}
16218 unsafe impl Sync for AmdExtension236Fn {}
16219 impl AmdExtension236Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16220     pub fn load<F>(mut _f: F) -> Self
16221     where
16222         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16223     {
16224         Self {}
16225     }
16226 }
16227 impl KhrSpirv14Fn {
name() -> &'static ::std::ffi::CStr16228     pub fn name() -> &'static ::std::ffi::CStr {
16229         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_spirv_1_4\0") }
16230     }
16231     pub const SPEC_VERSION: u32 = 1u32;
16232 }
16233 #[derive(Clone)]
16234 pub struct KhrSpirv14Fn {}
16235 unsafe impl Send for KhrSpirv14Fn {}
16236 unsafe impl Sync for KhrSpirv14Fn {}
16237 impl KhrSpirv14Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16238     pub fn load<F>(mut _f: F) -> Self
16239     where
16240         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16241     {
16242         Self {}
16243     }
16244 }
16245 impl ExtMemoryBudgetFn {
name() -> &'static ::std::ffi::CStr16246     pub fn name() -> &'static ::std::ffi::CStr {
16247         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_memory_budget\0") }
16248     }
16249     pub const SPEC_VERSION: u32 = 1u32;
16250 }
16251 #[derive(Clone)]
16252 pub struct ExtMemoryBudgetFn {}
16253 unsafe impl Send for ExtMemoryBudgetFn {}
16254 unsafe impl Sync for ExtMemoryBudgetFn {}
16255 impl ExtMemoryBudgetFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16256     pub fn load<F>(mut _f: F) -> Self
16257     where
16258         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16259     {
16260         Self {}
16261     }
16262 }
16263 #[doc = "Generated from 'VK_EXT_memory_budget'"]
16264 impl StructureType {
16265     pub const PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: Self = Self(1_000_237_000);
16266 }
16267 impl ExtMemoryPriorityFn {
name() -> &'static ::std::ffi::CStr16268     pub fn name() -> &'static ::std::ffi::CStr {
16269         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_memory_priority\0") }
16270     }
16271     pub const SPEC_VERSION: u32 = 1u32;
16272 }
16273 #[derive(Clone)]
16274 pub struct ExtMemoryPriorityFn {}
16275 unsafe impl Send for ExtMemoryPriorityFn {}
16276 unsafe impl Sync for ExtMemoryPriorityFn {}
16277 impl ExtMemoryPriorityFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16278     pub fn load<F>(mut _f: F) -> Self
16279     where
16280         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16281     {
16282         Self {}
16283     }
16284 }
16285 #[doc = "Generated from 'VK_EXT_memory_priority'"]
16286 impl StructureType {
16287     pub const PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: Self = Self(1_000_238_000);
16288     pub const MEMORY_PRIORITY_ALLOCATE_INFO_EXT: Self = Self(1_000_238_001);
16289 }
16290 impl KhrSurfaceProtectedCapabilitiesFn {
name() -> &'static ::std::ffi::CStr16291     pub fn name() -> &'static ::std::ffi::CStr {
16292         unsafe {
16293             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16294                 b"VK_KHR_surface_protected_capabilities\0",
16295             )
16296         }
16297     }
16298     pub const SPEC_VERSION: u32 = 1u32;
16299 }
16300 #[derive(Clone)]
16301 pub struct KhrSurfaceProtectedCapabilitiesFn {}
16302 unsafe impl Send for KhrSurfaceProtectedCapabilitiesFn {}
16303 unsafe impl Sync for KhrSurfaceProtectedCapabilitiesFn {}
16304 impl KhrSurfaceProtectedCapabilitiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16305     pub fn load<F>(mut _f: F) -> Self
16306     where
16307         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16308     {
16309         Self {}
16310     }
16311 }
16312 #[doc = "Generated from 'VK_KHR_surface_protected_capabilities'"]
16313 impl StructureType {
16314     pub const SURFACE_PROTECTED_CAPABILITIES_KHR: Self = Self(1_000_239_000);
16315 }
16316 impl NvDedicatedAllocationImageAliasingFn {
name() -> &'static ::std::ffi::CStr16317     pub fn name() -> &'static ::std::ffi::CStr {
16318         unsafe {
16319             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16320                 b"VK_NV_dedicated_allocation_image_aliasing\0",
16321             )
16322         }
16323     }
16324     pub const SPEC_VERSION: u32 = 1u32;
16325 }
16326 #[derive(Clone)]
16327 pub struct NvDedicatedAllocationImageAliasingFn {}
16328 unsafe impl Send for NvDedicatedAllocationImageAliasingFn {}
16329 unsafe impl Sync for NvDedicatedAllocationImageAliasingFn {}
16330 impl NvDedicatedAllocationImageAliasingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16331     pub fn load<F>(mut _f: F) -> Self
16332     where
16333         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16334     {
16335         Self {}
16336     }
16337 }
16338 #[doc = "Generated from 'VK_NV_dedicated_allocation_image_aliasing'"]
16339 impl StructureType {
16340     pub const PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: Self =
16341         Self(1_000_240_000);
16342 }
16343 impl KhrSeparateDepthStencilLayoutsFn {
name() -> &'static ::std::ffi::CStr16344     pub fn name() -> &'static ::std::ffi::CStr {
16345         unsafe {
16346             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16347                 b"VK_KHR_separate_depth_stencil_layouts\0",
16348             )
16349         }
16350     }
16351     pub const SPEC_VERSION: u32 = 1u32;
16352 }
16353 #[derive(Clone)]
16354 pub struct KhrSeparateDepthStencilLayoutsFn {}
16355 unsafe impl Send for KhrSeparateDepthStencilLayoutsFn {}
16356 unsafe impl Sync for KhrSeparateDepthStencilLayoutsFn {}
16357 impl KhrSeparateDepthStencilLayoutsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16358     pub fn load<F>(mut _f: F) -> Self
16359     where
16360         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16361     {
16362         Self {}
16363     }
16364 }
16365 #[doc = "Generated from 'VK_KHR_separate_depth_stencil_layouts'"]
16366 impl ImageLayout {
16367     pub const DEPTH_ATTACHMENT_OPTIMAL_KHR: Self = Self::DEPTH_ATTACHMENT_OPTIMAL;
16368     pub const DEPTH_READ_ONLY_OPTIMAL_KHR: Self = Self::DEPTH_READ_ONLY_OPTIMAL;
16369     pub const STENCIL_ATTACHMENT_OPTIMAL_KHR: Self = Self::STENCIL_ATTACHMENT_OPTIMAL;
16370     pub const STENCIL_READ_ONLY_OPTIMAL_KHR: Self = Self::STENCIL_READ_ONLY_OPTIMAL;
16371 }
16372 #[doc = "Generated from 'VK_KHR_separate_depth_stencil_layouts'"]
16373 impl StructureType {
16374     pub const PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR: Self =
16375         Self::PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES;
16376     pub const ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR: Self =
16377         Self::ATTACHMENT_REFERENCE_STENCIL_LAYOUT;
16378     pub const ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR: Self =
16379         Self::ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT;
16380 }
16381 impl IntelExtension243Fn {
name() -> &'static ::std::ffi::CStr16382     pub fn name() -> &'static ::std::ffi::CStr {
16383         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_INTEL_extension_243\0") }
16384     }
16385     pub const SPEC_VERSION: u32 = 0u32;
16386 }
16387 #[derive(Clone)]
16388 pub struct IntelExtension243Fn {}
16389 unsafe impl Send for IntelExtension243Fn {}
16390 unsafe impl Sync for IntelExtension243Fn {}
16391 impl IntelExtension243Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16392     pub fn load<F>(mut _f: F) -> Self
16393     where
16394         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16395     {
16396         Self {}
16397     }
16398 }
16399 impl MesaExtension244Fn {
name() -> &'static ::std::ffi::CStr16400     pub fn name() -> &'static ::std::ffi::CStr {
16401         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_MESA_extension_244\0") }
16402     }
16403     pub const SPEC_VERSION: u32 = 0u32;
16404 }
16405 #[derive(Clone)]
16406 pub struct MesaExtension244Fn {}
16407 unsafe impl Send for MesaExtension244Fn {}
16408 unsafe impl Sync for MesaExtension244Fn {}
16409 impl MesaExtension244Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16410     pub fn load<F>(mut _f: F) -> Self
16411     where
16412         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16413     {
16414         Self {}
16415     }
16416 }
16417 impl ExtBufferDeviceAddressFn {
name() -> &'static ::std::ffi::CStr16418     pub fn name() -> &'static ::std::ffi::CStr {
16419         unsafe {
16420             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_buffer_device_address\0")
16421         }
16422     }
16423     pub const SPEC_VERSION: u32 = 2u32;
16424 }
16425 #[allow(non_camel_case_types)]
16426 pub type PFN_vkGetBufferDeviceAddress = unsafe extern "system" fn(
16427     device: Device,
16428     p_info: *const BufferDeviceAddressInfo,
16429 ) -> DeviceAddress;
16430 #[derive(Clone)]
16431 pub struct ExtBufferDeviceAddressFn {
16432     pub get_buffer_device_address_ext: PFN_vkGetBufferDeviceAddress,
16433 }
16434 unsafe impl Send for ExtBufferDeviceAddressFn {}
16435 unsafe impl Sync for ExtBufferDeviceAddressFn {}
16436 impl ExtBufferDeviceAddressFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16437     pub fn load<F>(mut _f: F) -> Self
16438     where
16439         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16440     {
16441         Self {
16442             get_buffer_device_address_ext: unsafe {
16443                 unsafe extern "system" fn get_buffer_device_address_ext(
16444                     _device: Device,
16445                     _p_info: *const BufferDeviceAddressInfo,
16446                 ) -> DeviceAddress {
16447                     panic!(concat!(
16448                         "Unable to load ",
16449                         stringify!(get_buffer_device_address_ext)
16450                     ))
16451                 }
16452                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16453                     b"vkGetBufferDeviceAddressEXT\0",
16454                 );
16455                 let val = _f(cname);
16456                 if val.is_null() {
16457                     get_buffer_device_address_ext
16458                 } else {
16459                     ::std::mem::transmute(val)
16460                 }
16461             },
16462         }
16463     }
16464     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetBufferDeviceAddressEXT.html>"]
get_buffer_device_address_ext( &self, device: Device, p_info: *const BufferDeviceAddressInfo, ) -> DeviceAddress16465     pub unsafe fn get_buffer_device_address_ext(
16466         &self,
16467         device: Device,
16468         p_info: *const BufferDeviceAddressInfo,
16469     ) -> DeviceAddress {
16470         (self.get_buffer_device_address_ext)(device, p_info)
16471     }
16472 }
16473 #[doc = "Generated from 'VK_EXT_buffer_device_address'"]
16474 impl BufferCreateFlags {
16475     pub const DEVICE_ADDRESS_CAPTURE_REPLAY_EXT: Self = Self::DEVICE_ADDRESS_CAPTURE_REPLAY;
16476 }
16477 #[doc = "Generated from 'VK_EXT_buffer_device_address'"]
16478 impl BufferUsageFlags {
16479     pub const SHADER_DEVICE_ADDRESS_EXT: Self = Self::SHADER_DEVICE_ADDRESS;
16480 }
16481 #[doc = "Generated from 'VK_EXT_buffer_device_address'"]
16482 impl Result {
16483     pub const ERROR_INVALID_DEVICE_ADDRESS_EXT: Self = Self::ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS;
16484 }
16485 #[doc = "Generated from 'VK_EXT_buffer_device_address'"]
16486 impl StructureType {
16487     pub const PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: Self = Self(1_000_244_000);
16488     pub const PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT: Self =
16489         Self::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT;
16490     pub const BUFFER_DEVICE_ADDRESS_INFO_EXT: Self = Self::BUFFER_DEVICE_ADDRESS_INFO;
16491     pub const BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: Self = Self(1_000_244_002);
16492 }
16493 impl ExtToolingInfoFn {
name() -> &'static ::std::ffi::CStr16494     pub fn name() -> &'static ::std::ffi::CStr {
16495         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_tooling_info\0") }
16496     }
16497     pub const SPEC_VERSION: u32 = 1u32;
16498 }
16499 #[allow(non_camel_case_types)]
16500 pub type PFN_vkGetPhysicalDeviceToolPropertiesEXT = unsafe extern "system" fn(
16501     physical_device: PhysicalDevice,
16502     p_tool_count: *mut u32,
16503     p_tool_properties: *mut PhysicalDeviceToolPropertiesEXT,
16504 ) -> Result;
16505 #[derive(Clone)]
16506 pub struct ExtToolingInfoFn {
16507     pub get_physical_device_tool_properties_ext: PFN_vkGetPhysicalDeviceToolPropertiesEXT,
16508 }
16509 unsafe impl Send for ExtToolingInfoFn {}
16510 unsafe impl Sync for ExtToolingInfoFn {}
16511 impl ExtToolingInfoFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16512     pub fn load<F>(mut _f: F) -> Self
16513     where
16514         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16515     {
16516         Self {
16517             get_physical_device_tool_properties_ext: unsafe {
16518                 unsafe extern "system" fn get_physical_device_tool_properties_ext(
16519                     _physical_device: PhysicalDevice,
16520                     _p_tool_count: *mut u32,
16521                     _p_tool_properties: *mut PhysicalDeviceToolPropertiesEXT,
16522                 ) -> Result {
16523                     panic!(concat!(
16524                         "Unable to load ",
16525                         stringify!(get_physical_device_tool_properties_ext)
16526                     ))
16527                 }
16528                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16529                     b"vkGetPhysicalDeviceToolPropertiesEXT\0",
16530                 );
16531                 let val = _f(cname);
16532                 if val.is_null() {
16533                     get_physical_device_tool_properties_ext
16534                 } else {
16535                     ::std::mem::transmute(val)
16536                 }
16537             },
16538         }
16539     }
16540     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceToolPropertiesEXT.html>"]
get_physical_device_tool_properties_ext( &self, physical_device: PhysicalDevice, p_tool_count: *mut u32, p_tool_properties: *mut PhysicalDeviceToolPropertiesEXT, ) -> Result16541     pub unsafe fn get_physical_device_tool_properties_ext(
16542         &self,
16543         physical_device: PhysicalDevice,
16544         p_tool_count: *mut u32,
16545         p_tool_properties: *mut PhysicalDeviceToolPropertiesEXT,
16546     ) -> Result {
16547         (self.get_physical_device_tool_properties_ext)(
16548             physical_device,
16549             p_tool_count,
16550             p_tool_properties,
16551         )
16552     }
16553 }
16554 #[doc = "Generated from 'VK_EXT_tooling_info'"]
16555 impl StructureType {
16556     pub const PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT: Self = Self(1_000_245_000);
16557 }
16558 #[doc = "Generated from 'VK_EXT_tooling_info'"]
16559 impl ToolPurposeFlagsEXT {
16560     pub const DEBUG_REPORTING: Self = Self(0b10_0000);
16561     pub const DEBUG_MARKERS: Self = Self(0b100_0000);
16562 }
16563 impl ExtSeparateStencilUsageFn {
name() -> &'static ::std::ffi::CStr16564     pub fn name() -> &'static ::std::ffi::CStr {
16565         unsafe {
16566             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_separate_stencil_usage\0")
16567         }
16568     }
16569     pub const SPEC_VERSION: u32 = 1u32;
16570 }
16571 #[derive(Clone)]
16572 pub struct ExtSeparateStencilUsageFn {}
16573 unsafe impl Send for ExtSeparateStencilUsageFn {}
16574 unsafe impl Sync for ExtSeparateStencilUsageFn {}
16575 impl ExtSeparateStencilUsageFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16576     pub fn load<F>(mut _f: F) -> Self
16577     where
16578         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16579     {
16580         Self {}
16581     }
16582 }
16583 #[doc = "Generated from 'VK_EXT_separate_stencil_usage'"]
16584 impl StructureType {
16585     pub const IMAGE_STENCIL_USAGE_CREATE_INFO_EXT: Self = Self::IMAGE_STENCIL_USAGE_CREATE_INFO;
16586 }
16587 impl ExtValidationFeaturesFn {
name() -> &'static ::std::ffi::CStr16588     pub fn name() -> &'static ::std::ffi::CStr {
16589         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_validation_features\0") }
16590     }
16591     pub const SPEC_VERSION: u32 = 5u32;
16592 }
16593 #[derive(Clone)]
16594 pub struct ExtValidationFeaturesFn {}
16595 unsafe impl Send for ExtValidationFeaturesFn {}
16596 unsafe impl Sync for ExtValidationFeaturesFn {}
16597 impl ExtValidationFeaturesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16598     pub fn load<F>(mut _f: F) -> Self
16599     where
16600         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16601     {
16602         Self {}
16603     }
16604 }
16605 #[doc = "Generated from 'VK_EXT_validation_features'"]
16606 impl StructureType {
16607     pub const VALIDATION_FEATURES_EXT: Self = Self(1_000_247_000);
16608 }
16609 impl KhrPresentWaitFn {
name() -> &'static ::std::ffi::CStr16610     pub fn name() -> &'static ::std::ffi::CStr {
16611         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_present_wait\0") }
16612     }
16613     pub const SPEC_VERSION: u32 = 1u32;
16614 }
16615 #[allow(non_camel_case_types)]
16616 pub type PFN_vkWaitForPresentKHR = unsafe extern "system" fn(
16617     device: Device,
16618     swapchain: SwapchainKHR,
16619     present_id: u64,
16620     timeout: u64,
16621 ) -> Result;
16622 #[derive(Clone)]
16623 pub struct KhrPresentWaitFn {
16624     pub wait_for_present_khr: PFN_vkWaitForPresentKHR,
16625 }
16626 unsafe impl Send for KhrPresentWaitFn {}
16627 unsafe impl Sync for KhrPresentWaitFn {}
16628 impl KhrPresentWaitFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16629     pub fn load<F>(mut _f: F) -> Self
16630     where
16631         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16632     {
16633         Self {
16634             wait_for_present_khr: unsafe {
16635                 unsafe extern "system" fn wait_for_present_khr(
16636                     _device: Device,
16637                     _swapchain: SwapchainKHR,
16638                     _present_id: u64,
16639                     _timeout: u64,
16640                 ) -> Result {
16641                     panic!(concat!("Unable to load ", stringify!(wait_for_present_khr)))
16642                 }
16643                 let cname =
16644                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkWaitForPresentKHR\0");
16645                 let val = _f(cname);
16646                 if val.is_null() {
16647                     wait_for_present_khr
16648                 } else {
16649                     ::std::mem::transmute(val)
16650                 }
16651             },
16652         }
16653     }
16654     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkWaitForPresentKHR.html>"]
wait_for_present_khr( &self, device: Device, swapchain: SwapchainKHR, present_id: u64, timeout: u64, ) -> Result16655     pub unsafe fn wait_for_present_khr(
16656         &self,
16657         device: Device,
16658         swapchain: SwapchainKHR,
16659         present_id: u64,
16660         timeout: u64,
16661     ) -> Result {
16662         (self.wait_for_present_khr)(device, swapchain, present_id, timeout)
16663     }
16664 }
16665 #[doc = "Generated from 'VK_KHR_present_wait'"]
16666 impl StructureType {
16667     pub const PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR: Self = Self(1_000_248_000);
16668 }
16669 impl NvCooperativeMatrixFn {
name() -> &'static ::std::ffi::CStr16670     pub fn name() -> &'static ::std::ffi::CStr {
16671         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_cooperative_matrix\0") }
16672     }
16673     pub const SPEC_VERSION: u32 = 1u32;
16674 }
16675 #[allow(non_camel_case_types)]
16676 pub type PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = unsafe extern "system" fn(
16677     physical_device: PhysicalDevice,
16678     p_property_count: *mut u32,
16679     p_properties: *mut CooperativeMatrixPropertiesNV,
16680 )
16681     -> Result;
16682 #[derive(Clone)]
16683 pub struct NvCooperativeMatrixFn {
16684     pub get_physical_device_cooperative_matrix_properties_nv:
16685         PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV,
16686 }
16687 unsafe impl Send for NvCooperativeMatrixFn {}
16688 unsafe impl Sync for NvCooperativeMatrixFn {}
16689 impl NvCooperativeMatrixFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16690     pub fn load<F>(mut _f: F) -> Self
16691     where
16692         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16693     {
16694         Self {
16695             get_physical_device_cooperative_matrix_properties_nv: unsafe {
16696                 unsafe extern "system" fn get_physical_device_cooperative_matrix_properties_nv(
16697                     _physical_device: PhysicalDevice,
16698                     _p_property_count: *mut u32,
16699                     _p_properties: *mut CooperativeMatrixPropertiesNV,
16700                 ) -> Result {
16701                     panic!(concat!(
16702                         "Unable to load ",
16703                         stringify!(get_physical_device_cooperative_matrix_properties_nv)
16704                     ))
16705                 }
16706                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16707                     b"vkGetPhysicalDeviceCooperativeMatrixPropertiesNV\0",
16708                 );
16709                 let val = _f(cname);
16710                 if val.is_null() {
16711                     get_physical_device_cooperative_matrix_properties_nv
16712                 } else {
16713                     ::std::mem::transmute(val)
16714                 }
16715             },
16716         }
16717     }
16718     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceCooperativeMatrixPropertiesNV.html>"]
get_physical_device_cooperative_matrix_properties_nv( &self, physical_device: PhysicalDevice, p_property_count: *mut u32, p_properties: *mut CooperativeMatrixPropertiesNV, ) -> Result16719     pub unsafe fn get_physical_device_cooperative_matrix_properties_nv(
16720         &self,
16721         physical_device: PhysicalDevice,
16722         p_property_count: *mut u32,
16723         p_properties: *mut CooperativeMatrixPropertiesNV,
16724     ) -> Result {
16725         (self.get_physical_device_cooperative_matrix_properties_nv)(
16726             physical_device,
16727             p_property_count,
16728             p_properties,
16729         )
16730     }
16731 }
16732 #[doc = "Generated from 'VK_NV_cooperative_matrix'"]
16733 impl StructureType {
16734     pub const PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: Self = Self(1_000_249_000);
16735     pub const COOPERATIVE_MATRIX_PROPERTIES_NV: Self = Self(1_000_249_001);
16736     pub const PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: Self = Self(1_000_249_002);
16737 }
16738 impl NvCoverageReductionModeFn {
name() -> &'static ::std::ffi::CStr16739     pub fn name() -> &'static ::std::ffi::CStr {
16740         unsafe {
16741             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_coverage_reduction_mode\0")
16742         }
16743     }
16744     pub const SPEC_VERSION: u32 = 1u32;
16745 }
16746 #[allow(non_camel_case_types)]
16747 pub type PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV =
16748     unsafe extern "system" fn(
16749         physical_device: PhysicalDevice,
16750         p_combination_count: *mut u32,
16751         p_combinations: *mut FramebufferMixedSamplesCombinationNV,
16752     ) -> Result;
16753 #[derive(Clone)]
16754 pub struct NvCoverageReductionModeFn {
16755     pub get_physical_device_supported_framebuffer_mixed_samples_combinations_nv:
16756         PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV,
16757 }
16758 unsafe impl Send for NvCoverageReductionModeFn {}
16759 unsafe impl Sync for NvCoverageReductionModeFn {}
16760 impl NvCoverageReductionModeFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16761     pub fn load<F>(mut _f: F) -> Self
16762     where
16763         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16764     {
16765         Self {
16766             get_physical_device_supported_framebuffer_mixed_samples_combinations_nv: unsafe {
16767                 unsafe extern "system" fn get_physical_device_supported_framebuffer_mixed_samples_combinations_nv(
16768                     _physical_device: PhysicalDevice,
16769                     _p_combination_count: *mut u32,
16770                     _p_combinations: *mut FramebufferMixedSamplesCombinationNV,
16771                 ) -> Result {
16772                     panic!(concat!(
16773                         "Unable to load ",
16774                         stringify!(
16775                             get_physical_device_supported_framebuffer_mixed_samples_combinations_nv
16776                         )
16777                     ))
16778                 }
16779                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16780                     b"vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV\0",
16781                 );
16782                 let val = _f(cname);
16783                 if val.is_null() {
16784                     get_physical_device_supported_framebuffer_mixed_samples_combinations_nv
16785                 } else {
16786                     ::std::mem::transmute(val)
16787                 }
16788             },
16789         }
16790     }
16791     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV.html>"]
get_physical_device_supported_framebuffer_mixed_samples_combinations_nv( &self, physical_device: PhysicalDevice, p_combination_count: *mut u32, p_combinations: *mut FramebufferMixedSamplesCombinationNV, ) -> Result16792     pub unsafe fn get_physical_device_supported_framebuffer_mixed_samples_combinations_nv(
16793         &self,
16794         physical_device: PhysicalDevice,
16795         p_combination_count: *mut u32,
16796         p_combinations: *mut FramebufferMixedSamplesCombinationNV,
16797     ) -> Result {
16798         (self.get_physical_device_supported_framebuffer_mixed_samples_combinations_nv)(
16799             physical_device,
16800             p_combination_count,
16801             p_combinations,
16802         )
16803     }
16804 }
16805 #[doc = "Generated from 'VK_NV_coverage_reduction_mode'"]
16806 impl StructureType {
16807     pub const PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: Self = Self(1_000_250_000);
16808     pub const PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: Self = Self(1_000_250_001);
16809     pub const FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV: Self = Self(1_000_250_002);
16810 }
16811 impl ExtFragmentShaderInterlockFn {
name() -> &'static ::std::ffi::CStr16812     pub fn name() -> &'static ::std::ffi::CStr {
16813         unsafe {
16814             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_fragment_shader_interlock\0")
16815         }
16816     }
16817     pub const SPEC_VERSION: u32 = 1u32;
16818 }
16819 #[derive(Clone)]
16820 pub struct ExtFragmentShaderInterlockFn {}
16821 unsafe impl Send for ExtFragmentShaderInterlockFn {}
16822 unsafe impl Sync for ExtFragmentShaderInterlockFn {}
16823 impl ExtFragmentShaderInterlockFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16824     pub fn load<F>(mut _f: F) -> Self
16825     where
16826         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16827     {
16828         Self {}
16829     }
16830 }
16831 #[doc = "Generated from 'VK_EXT_fragment_shader_interlock'"]
16832 impl StructureType {
16833     pub const PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: Self = Self(1_000_251_000);
16834 }
16835 impl ExtYcbcrImageArraysFn {
name() -> &'static ::std::ffi::CStr16836     pub fn name() -> &'static ::std::ffi::CStr {
16837         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_ycbcr_image_arrays\0") }
16838     }
16839     pub const SPEC_VERSION: u32 = 1u32;
16840 }
16841 #[derive(Clone)]
16842 pub struct ExtYcbcrImageArraysFn {}
16843 unsafe impl Send for ExtYcbcrImageArraysFn {}
16844 unsafe impl Sync for ExtYcbcrImageArraysFn {}
16845 impl ExtYcbcrImageArraysFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16846     pub fn load<F>(mut _f: F) -> Self
16847     where
16848         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16849     {
16850         Self {}
16851     }
16852 }
16853 #[doc = "Generated from 'VK_EXT_ycbcr_image_arrays'"]
16854 impl StructureType {
16855     pub const PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: Self = Self(1_000_252_000);
16856 }
16857 impl KhrUniformBufferStandardLayoutFn {
name() -> &'static ::std::ffi::CStr16858     pub fn name() -> &'static ::std::ffi::CStr {
16859         unsafe {
16860             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16861                 b"VK_KHR_uniform_buffer_standard_layout\0",
16862             )
16863         }
16864     }
16865     pub const SPEC_VERSION: u32 = 1u32;
16866 }
16867 #[derive(Clone)]
16868 pub struct KhrUniformBufferStandardLayoutFn {}
16869 unsafe impl Send for KhrUniformBufferStandardLayoutFn {}
16870 unsafe impl Sync for KhrUniformBufferStandardLayoutFn {}
16871 impl KhrUniformBufferStandardLayoutFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16872     pub fn load<F>(mut _f: F) -> Self
16873     where
16874         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16875     {
16876         Self {}
16877     }
16878 }
16879 #[doc = "Generated from 'VK_KHR_uniform_buffer_standard_layout'"]
16880 impl StructureType {
16881     pub const PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR: Self =
16882         Self::PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES;
16883 }
16884 impl ExtProvokingVertexFn {
name() -> &'static ::std::ffi::CStr16885     pub fn name() -> &'static ::std::ffi::CStr {
16886         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_provoking_vertex\0") }
16887     }
16888     pub const SPEC_VERSION: u32 = 1u32;
16889 }
16890 #[derive(Clone)]
16891 pub struct ExtProvokingVertexFn {}
16892 unsafe impl Send for ExtProvokingVertexFn {}
16893 unsafe impl Sync for ExtProvokingVertexFn {}
16894 impl ExtProvokingVertexFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16895     pub fn load<F>(mut _f: F) -> Self
16896     where
16897         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16898     {
16899         Self {}
16900     }
16901 }
16902 #[doc = "Generated from 'VK_EXT_provoking_vertex'"]
16903 impl StructureType {
16904     pub const PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: Self = Self(1_000_254_000);
16905     pub const PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: Self =
16906         Self(1_000_254_001);
16907     pub const PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: Self = Self(1_000_254_002);
16908 }
16909 impl ExtFullScreenExclusiveFn {
name() -> &'static ::std::ffi::CStr16910     pub fn name() -> &'static ::std::ffi::CStr {
16911         unsafe {
16912             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_full_screen_exclusive\0")
16913         }
16914     }
16915     pub const SPEC_VERSION: u32 = 4u32;
16916 }
16917 #[allow(non_camel_case_types)]
16918 pub type PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT = unsafe extern "system" fn(
16919     physical_device: PhysicalDevice,
16920     p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
16921     p_present_mode_count: *mut u32,
16922     p_present_modes: *mut PresentModeKHR,
16923 ) -> Result;
16924 #[allow(non_camel_case_types)]
16925 pub type PFN_vkAcquireFullScreenExclusiveModeEXT =
16926     unsafe extern "system" fn(device: Device, swapchain: SwapchainKHR) -> Result;
16927 #[allow(non_camel_case_types)]
16928 pub type PFN_vkReleaseFullScreenExclusiveModeEXT =
16929     unsafe extern "system" fn(device: Device, swapchain: SwapchainKHR) -> Result;
16930 #[allow(non_camel_case_types)]
16931 pub type PFN_vkGetDeviceGroupSurfacePresentModes2EXT = unsafe extern "system" fn(
16932     device: Device,
16933     p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
16934     p_modes: *mut DeviceGroupPresentModeFlagsKHR,
16935 ) -> Result;
16936 #[derive(Clone)]
16937 pub struct ExtFullScreenExclusiveFn {
16938     pub get_physical_device_surface_present_modes2_ext:
16939         PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT,
16940     pub acquire_full_screen_exclusive_mode_ext: PFN_vkAcquireFullScreenExclusiveModeEXT,
16941     pub release_full_screen_exclusive_mode_ext: PFN_vkReleaseFullScreenExclusiveModeEXT,
16942     pub get_device_group_surface_present_modes2_ext: PFN_vkGetDeviceGroupSurfacePresentModes2EXT,
16943 }
16944 unsafe impl Send for ExtFullScreenExclusiveFn {}
16945 unsafe impl Sync for ExtFullScreenExclusiveFn {}
16946 impl ExtFullScreenExclusiveFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,16947     pub fn load<F>(mut _f: F) -> Self
16948     where
16949         F: FnMut(&::std::ffi::CStr) -> *const c_void,
16950     {
16951         Self {
16952             get_physical_device_surface_present_modes2_ext: unsafe {
16953                 unsafe extern "system" fn get_physical_device_surface_present_modes2_ext(
16954                     _physical_device: PhysicalDevice,
16955                     _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
16956                     _p_present_mode_count: *mut u32,
16957                     _p_present_modes: *mut PresentModeKHR,
16958                 ) -> Result {
16959                     panic!(concat!(
16960                         "Unable to load ",
16961                         stringify!(get_physical_device_surface_present_modes2_ext)
16962                     ))
16963                 }
16964                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16965                     b"vkGetPhysicalDeviceSurfacePresentModes2EXT\0",
16966                 );
16967                 let val = _f(cname);
16968                 if val.is_null() {
16969                     get_physical_device_surface_present_modes2_ext
16970                 } else {
16971                     ::std::mem::transmute(val)
16972                 }
16973             },
16974             acquire_full_screen_exclusive_mode_ext: unsafe {
16975                 unsafe extern "system" fn acquire_full_screen_exclusive_mode_ext(
16976                     _device: Device,
16977                     _swapchain: SwapchainKHR,
16978                 ) -> Result {
16979                     panic!(concat!(
16980                         "Unable to load ",
16981                         stringify!(acquire_full_screen_exclusive_mode_ext)
16982                     ))
16983                 }
16984                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
16985                     b"vkAcquireFullScreenExclusiveModeEXT\0",
16986                 );
16987                 let val = _f(cname);
16988                 if val.is_null() {
16989                     acquire_full_screen_exclusive_mode_ext
16990                 } else {
16991                     ::std::mem::transmute(val)
16992                 }
16993             },
16994             release_full_screen_exclusive_mode_ext: unsafe {
16995                 unsafe extern "system" fn release_full_screen_exclusive_mode_ext(
16996                     _device: Device,
16997                     _swapchain: SwapchainKHR,
16998                 ) -> Result {
16999                     panic!(concat!(
17000                         "Unable to load ",
17001                         stringify!(release_full_screen_exclusive_mode_ext)
17002                     ))
17003                 }
17004                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17005                     b"vkReleaseFullScreenExclusiveModeEXT\0",
17006                 );
17007                 let val = _f(cname);
17008                 if val.is_null() {
17009                     release_full_screen_exclusive_mode_ext
17010                 } else {
17011                     ::std::mem::transmute(val)
17012                 }
17013             },
17014             get_device_group_surface_present_modes2_ext: unsafe {
17015                 unsafe extern "system" fn get_device_group_surface_present_modes2_ext(
17016                     _device: Device,
17017                     _p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
17018                     _p_modes: *mut DeviceGroupPresentModeFlagsKHR,
17019                 ) -> Result {
17020                     panic!(concat!(
17021                         "Unable to load ",
17022                         stringify!(get_device_group_surface_present_modes2_ext)
17023                     ))
17024                 }
17025                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17026                     b"vkGetDeviceGroupSurfacePresentModes2EXT\0",
17027                 );
17028                 let val = _f(cname);
17029                 if val.is_null() {
17030                     get_device_group_surface_present_modes2_ext
17031                 } else {
17032                     ::std::mem::transmute(val)
17033                 }
17034             },
17035         }
17036     }
17037     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceSurfacePresentModes2EXT.html>"]
get_physical_device_surface_present_modes2_ext( &self, physical_device: PhysicalDevice, p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR, p_present_mode_count: *mut u32, p_present_modes: *mut PresentModeKHR, ) -> Result17038     pub unsafe fn get_physical_device_surface_present_modes2_ext(
17039         &self,
17040         physical_device: PhysicalDevice,
17041         p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
17042         p_present_mode_count: *mut u32,
17043         p_present_modes: *mut PresentModeKHR,
17044     ) -> Result {
17045         (self.get_physical_device_surface_present_modes2_ext)(
17046             physical_device,
17047             p_surface_info,
17048             p_present_mode_count,
17049             p_present_modes,
17050         )
17051     }
17052     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkAcquireFullScreenExclusiveModeEXT.html>"]
acquire_full_screen_exclusive_mode_ext( &self, device: Device, swapchain: SwapchainKHR, ) -> Result17053     pub unsafe fn acquire_full_screen_exclusive_mode_ext(
17054         &self,
17055         device: Device,
17056         swapchain: SwapchainKHR,
17057     ) -> Result {
17058         (self.acquire_full_screen_exclusive_mode_ext)(device, swapchain)
17059     }
17060     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkReleaseFullScreenExclusiveModeEXT.html>"]
release_full_screen_exclusive_mode_ext( &self, device: Device, swapchain: SwapchainKHR, ) -> Result17061     pub unsafe fn release_full_screen_exclusive_mode_ext(
17062         &self,
17063         device: Device,
17064         swapchain: SwapchainKHR,
17065     ) -> Result {
17066         (self.release_full_screen_exclusive_mode_ext)(device, swapchain)
17067     }
17068     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeviceGroupSurfacePresentModes2EXT.html>"]
get_device_group_surface_present_modes2_ext( &self, device: Device, p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR, p_modes: *mut DeviceGroupPresentModeFlagsKHR, ) -> Result17069     pub unsafe fn get_device_group_surface_present_modes2_ext(
17070         &self,
17071         device: Device,
17072         p_surface_info: *const PhysicalDeviceSurfaceInfo2KHR,
17073         p_modes: *mut DeviceGroupPresentModeFlagsKHR,
17074     ) -> Result {
17075         (self.get_device_group_surface_present_modes2_ext)(device, p_surface_info, p_modes)
17076     }
17077 }
17078 #[doc = "Generated from 'VK_EXT_full_screen_exclusive'"]
17079 impl Result {
17080     pub const ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT: Self = Self(-1_000_255_000);
17081 }
17082 #[doc = "Generated from 'VK_EXT_full_screen_exclusive'"]
17083 impl StructureType {
17084     pub const SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: Self = Self(1_000_255_000);
17085     pub const SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT: Self = Self(1_000_255_002);
17086     pub const SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT: Self = Self(1_000_255_001);
17087 }
17088 impl ExtHeadlessSurfaceFn {
name() -> &'static ::std::ffi::CStr17089     pub fn name() -> &'static ::std::ffi::CStr {
17090         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_headless_surface\0") }
17091     }
17092     pub const SPEC_VERSION: u32 = 1u32;
17093 }
17094 #[allow(non_camel_case_types)]
17095 pub type PFN_vkCreateHeadlessSurfaceEXT = unsafe extern "system" fn(
17096     instance: Instance,
17097     p_create_info: *const HeadlessSurfaceCreateInfoEXT,
17098     p_allocator: *const AllocationCallbacks,
17099     p_surface: *mut SurfaceKHR,
17100 ) -> Result;
17101 #[derive(Clone)]
17102 pub struct ExtHeadlessSurfaceFn {
17103     pub create_headless_surface_ext: PFN_vkCreateHeadlessSurfaceEXT,
17104 }
17105 unsafe impl Send for ExtHeadlessSurfaceFn {}
17106 unsafe impl Sync for ExtHeadlessSurfaceFn {}
17107 impl ExtHeadlessSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17108     pub fn load<F>(mut _f: F) -> Self
17109     where
17110         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17111     {
17112         Self {
17113             create_headless_surface_ext: unsafe {
17114                 unsafe extern "system" fn create_headless_surface_ext(
17115                     _instance: Instance,
17116                     _p_create_info: *const HeadlessSurfaceCreateInfoEXT,
17117                     _p_allocator: *const AllocationCallbacks,
17118                     _p_surface: *mut SurfaceKHR,
17119                 ) -> Result {
17120                     panic!(concat!(
17121                         "Unable to load ",
17122                         stringify!(create_headless_surface_ext)
17123                     ))
17124                 }
17125                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17126                     b"vkCreateHeadlessSurfaceEXT\0",
17127                 );
17128                 let val = _f(cname);
17129                 if val.is_null() {
17130                     create_headless_surface_ext
17131                 } else {
17132                     ::std::mem::transmute(val)
17133                 }
17134             },
17135         }
17136     }
17137     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateHeadlessSurfaceEXT.html>"]
create_headless_surface_ext( &self, instance: Instance, p_create_info: *const HeadlessSurfaceCreateInfoEXT, p_allocator: *const AllocationCallbacks, p_surface: *mut SurfaceKHR, ) -> Result17138     pub unsafe fn create_headless_surface_ext(
17139         &self,
17140         instance: Instance,
17141         p_create_info: *const HeadlessSurfaceCreateInfoEXT,
17142         p_allocator: *const AllocationCallbacks,
17143         p_surface: *mut SurfaceKHR,
17144     ) -> Result {
17145         (self.create_headless_surface_ext)(instance, p_create_info, p_allocator, p_surface)
17146     }
17147 }
17148 #[doc = "Generated from 'VK_EXT_headless_surface'"]
17149 impl StructureType {
17150     pub const HEADLESS_SURFACE_CREATE_INFO_EXT: Self = Self(1_000_256_000);
17151 }
17152 impl KhrBufferDeviceAddressFn {
name() -> &'static ::std::ffi::CStr17153     pub fn name() -> &'static ::std::ffi::CStr {
17154         unsafe {
17155             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_buffer_device_address\0")
17156         }
17157     }
17158     pub const SPEC_VERSION: u32 = 1u32;
17159 }
17160 #[allow(non_camel_case_types)]
17161 pub type PFN_vkGetBufferOpaqueCaptureAddress =
17162     unsafe extern "system" fn(device: Device, p_info: *const BufferDeviceAddressInfo) -> u64;
17163 #[allow(non_camel_case_types)]
17164 pub type PFN_vkGetDeviceMemoryOpaqueCaptureAddress = unsafe extern "system" fn(
17165     device: Device,
17166     p_info: *const DeviceMemoryOpaqueCaptureAddressInfo,
17167 ) -> u64;
17168 #[derive(Clone)]
17169 pub struct KhrBufferDeviceAddressFn {
17170     pub get_buffer_device_address_khr: crate::vk::PFN_vkGetBufferDeviceAddress,
17171     pub get_buffer_opaque_capture_address_khr: PFN_vkGetBufferOpaqueCaptureAddress,
17172     pub get_device_memory_opaque_capture_address_khr: PFN_vkGetDeviceMemoryOpaqueCaptureAddress,
17173 }
17174 unsafe impl Send for KhrBufferDeviceAddressFn {}
17175 unsafe impl Sync for KhrBufferDeviceAddressFn {}
17176 impl KhrBufferDeviceAddressFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17177     pub fn load<F>(mut _f: F) -> Self
17178     where
17179         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17180     {
17181         Self {
17182             get_buffer_device_address_khr: unsafe {
17183                 unsafe extern "system" fn get_buffer_device_address_khr(
17184                     _device: Device,
17185                     _p_info: *const BufferDeviceAddressInfo,
17186                 ) -> DeviceAddress {
17187                     panic!(concat!(
17188                         "Unable to load ",
17189                         stringify!(get_buffer_device_address_khr)
17190                     ))
17191                 }
17192                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17193                     b"vkGetBufferDeviceAddressKHR\0",
17194                 );
17195                 let val = _f(cname);
17196                 if val.is_null() {
17197                     get_buffer_device_address_khr
17198                 } else {
17199                     ::std::mem::transmute(val)
17200                 }
17201             },
17202             get_buffer_opaque_capture_address_khr: unsafe {
17203                 unsafe extern "system" fn get_buffer_opaque_capture_address_khr(
17204                     _device: Device,
17205                     _p_info: *const BufferDeviceAddressInfo,
17206                 ) -> u64 {
17207                     panic!(concat!(
17208                         "Unable to load ",
17209                         stringify!(get_buffer_opaque_capture_address_khr)
17210                     ))
17211                 }
17212                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17213                     b"vkGetBufferOpaqueCaptureAddressKHR\0",
17214                 );
17215                 let val = _f(cname);
17216                 if val.is_null() {
17217                     get_buffer_opaque_capture_address_khr
17218                 } else {
17219                     ::std::mem::transmute(val)
17220                 }
17221             },
17222             get_device_memory_opaque_capture_address_khr: unsafe {
17223                 unsafe extern "system" fn get_device_memory_opaque_capture_address_khr(
17224                     _device: Device,
17225                     _p_info: *const DeviceMemoryOpaqueCaptureAddressInfo,
17226                 ) -> u64 {
17227                     panic!(concat!(
17228                         "Unable to load ",
17229                         stringify!(get_device_memory_opaque_capture_address_khr)
17230                     ))
17231                 }
17232                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17233                     b"vkGetDeviceMemoryOpaqueCaptureAddressKHR\0",
17234                 );
17235                 let val = _f(cname);
17236                 if val.is_null() {
17237                     get_device_memory_opaque_capture_address_khr
17238                 } else {
17239                     ::std::mem::transmute(val)
17240                 }
17241             },
17242         }
17243     }
17244     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetBufferDeviceAddressKHR.html>"]
get_buffer_device_address_khr( &self, device: Device, p_info: *const BufferDeviceAddressInfo, ) -> DeviceAddress17245     pub unsafe fn get_buffer_device_address_khr(
17246         &self,
17247         device: Device,
17248         p_info: *const BufferDeviceAddressInfo,
17249     ) -> DeviceAddress {
17250         (self.get_buffer_device_address_khr)(device, p_info)
17251     }
17252     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetBufferOpaqueCaptureAddressKHR.html>"]
get_buffer_opaque_capture_address_khr( &self, device: Device, p_info: *const BufferDeviceAddressInfo, ) -> u6417253     pub unsafe fn get_buffer_opaque_capture_address_khr(
17254         &self,
17255         device: Device,
17256         p_info: *const BufferDeviceAddressInfo,
17257     ) -> u64 {
17258         (self.get_buffer_opaque_capture_address_khr)(device, p_info)
17259     }
17260     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeviceMemoryOpaqueCaptureAddressKHR.html>"]
get_device_memory_opaque_capture_address_khr( &self, device: Device, p_info: *const DeviceMemoryOpaqueCaptureAddressInfo, ) -> u6417261     pub unsafe fn get_device_memory_opaque_capture_address_khr(
17262         &self,
17263         device: Device,
17264         p_info: *const DeviceMemoryOpaqueCaptureAddressInfo,
17265     ) -> u64 {
17266         (self.get_device_memory_opaque_capture_address_khr)(device, p_info)
17267     }
17268 }
17269 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
17270 impl BufferCreateFlags {
17271     pub const DEVICE_ADDRESS_CAPTURE_REPLAY_KHR: Self = Self::DEVICE_ADDRESS_CAPTURE_REPLAY;
17272 }
17273 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
17274 impl BufferUsageFlags {
17275     pub const SHADER_DEVICE_ADDRESS_KHR: Self = Self::SHADER_DEVICE_ADDRESS;
17276 }
17277 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
17278 impl MemoryAllocateFlags {
17279     pub const DEVICE_ADDRESS_KHR: Self = Self::DEVICE_ADDRESS;
17280     pub const DEVICE_ADDRESS_CAPTURE_REPLAY_KHR: Self = Self::DEVICE_ADDRESS_CAPTURE_REPLAY;
17281 }
17282 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
17283 impl Result {
17284     pub const ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR: Self =
17285         Self::ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS;
17286 }
17287 #[doc = "Generated from 'VK_KHR_buffer_device_address'"]
17288 impl StructureType {
17289     pub const PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR: Self =
17290         Self::PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES;
17291     pub const BUFFER_DEVICE_ADDRESS_INFO_KHR: Self = Self::BUFFER_DEVICE_ADDRESS_INFO;
17292     pub const BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR: Self =
17293         Self::BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO;
17294     pub const MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR: Self =
17295         Self::MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO;
17296     pub const DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR: Self =
17297         Self::DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO;
17298 }
17299 impl ExtExtension259Fn {
name() -> &'static ::std::ffi::CStr17300     pub fn name() -> &'static ::std::ffi::CStr {
17301         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_259\0") }
17302     }
17303     pub const SPEC_VERSION: u32 = 0u32;
17304 }
17305 #[derive(Clone)]
17306 pub struct ExtExtension259Fn {}
17307 unsafe impl Send for ExtExtension259Fn {}
17308 unsafe impl Sync for ExtExtension259Fn {}
17309 impl ExtExtension259Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17310     pub fn load<F>(mut _f: F) -> Self
17311     where
17312         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17313     {
17314         Self {}
17315     }
17316 }
17317 impl ExtLineRasterizationFn {
name() -> &'static ::std::ffi::CStr17318     pub fn name() -> &'static ::std::ffi::CStr {
17319         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_line_rasterization\0") }
17320     }
17321     pub const SPEC_VERSION: u32 = 1u32;
17322 }
17323 #[allow(non_camel_case_types)]
17324 pub type PFN_vkCmdSetLineStippleEXT = unsafe extern "system" fn(
17325     command_buffer: CommandBuffer,
17326     line_stipple_factor: u32,
17327     line_stipple_pattern: u16,
17328 );
17329 #[derive(Clone)]
17330 pub struct ExtLineRasterizationFn {
17331     pub cmd_set_line_stipple_ext: PFN_vkCmdSetLineStippleEXT,
17332 }
17333 unsafe impl Send for ExtLineRasterizationFn {}
17334 unsafe impl Sync for ExtLineRasterizationFn {}
17335 impl ExtLineRasterizationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17336     pub fn load<F>(mut _f: F) -> Self
17337     where
17338         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17339     {
17340         Self {
17341             cmd_set_line_stipple_ext: unsafe {
17342                 unsafe extern "system" fn cmd_set_line_stipple_ext(
17343                     _command_buffer: CommandBuffer,
17344                     _line_stipple_factor: u32,
17345                     _line_stipple_pattern: u16,
17346                 ) {
17347                     panic!(concat!(
17348                         "Unable to load ",
17349                         stringify!(cmd_set_line_stipple_ext)
17350                     ))
17351                 }
17352                 let cname =
17353                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLineStippleEXT\0");
17354                 let val = _f(cname);
17355                 if val.is_null() {
17356                     cmd_set_line_stipple_ext
17357                 } else {
17358                     ::std::mem::transmute(val)
17359                 }
17360             },
17361         }
17362     }
17363     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetLineStippleEXT.html>"]
cmd_set_line_stipple_ext( &self, command_buffer: CommandBuffer, line_stipple_factor: u32, line_stipple_pattern: u16, )17364     pub unsafe fn cmd_set_line_stipple_ext(
17365         &self,
17366         command_buffer: CommandBuffer,
17367         line_stipple_factor: u32,
17368         line_stipple_pattern: u16,
17369     ) {
17370         (self.cmd_set_line_stipple_ext)(command_buffer, line_stipple_factor, line_stipple_pattern)
17371     }
17372 }
17373 #[doc = "Generated from 'VK_EXT_line_rasterization'"]
17374 impl DynamicState {
17375     pub const LINE_STIPPLE_EXT: Self = Self(1_000_259_000);
17376 }
17377 #[doc = "Generated from 'VK_EXT_line_rasterization'"]
17378 impl StructureType {
17379     pub const PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT: Self = Self(1_000_259_000);
17380     pub const PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT: Self = Self(1_000_259_001);
17381     pub const PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT: Self = Self(1_000_259_002);
17382 }
17383 impl ExtShaderAtomicFloatFn {
name() -> &'static ::std::ffi::CStr17384     pub fn name() -> &'static ::std::ffi::CStr {
17385         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_atomic_float\0") }
17386     }
17387     pub const SPEC_VERSION: u32 = 1u32;
17388 }
17389 #[derive(Clone)]
17390 pub struct ExtShaderAtomicFloatFn {}
17391 unsafe impl Send for ExtShaderAtomicFloatFn {}
17392 unsafe impl Sync for ExtShaderAtomicFloatFn {}
17393 impl ExtShaderAtomicFloatFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17394     pub fn load<F>(mut _f: F) -> Self
17395     where
17396         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17397     {
17398         Self {}
17399     }
17400 }
17401 #[doc = "Generated from 'VK_EXT_shader_atomic_float'"]
17402 impl StructureType {
17403     pub const PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: Self = Self(1_000_260_000);
17404 }
17405 impl ExtHostQueryResetFn {
name() -> &'static ::std::ffi::CStr17406     pub fn name() -> &'static ::std::ffi::CStr {
17407         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_host_query_reset\0") }
17408     }
17409     pub const SPEC_VERSION: u32 = 1u32;
17410 }
17411 #[allow(non_camel_case_types)]
17412 pub type PFN_vkResetQueryPool = unsafe extern "system" fn(
17413     device: Device,
17414     query_pool: QueryPool,
17415     first_query: u32,
17416     query_count: u32,
17417 );
17418 #[derive(Clone)]
17419 pub struct ExtHostQueryResetFn {
17420     pub reset_query_pool_ext: PFN_vkResetQueryPool,
17421 }
17422 unsafe impl Send for ExtHostQueryResetFn {}
17423 unsafe impl Sync for ExtHostQueryResetFn {}
17424 impl ExtHostQueryResetFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17425     pub fn load<F>(mut _f: F) -> Self
17426     where
17427         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17428     {
17429         Self {
17430             reset_query_pool_ext: unsafe {
17431                 unsafe extern "system" fn reset_query_pool_ext(
17432                     _device: Device,
17433                     _query_pool: QueryPool,
17434                     _first_query: u32,
17435                     _query_count: u32,
17436                 ) {
17437                     panic!(concat!("Unable to load ", stringify!(reset_query_pool_ext)))
17438                 }
17439                 let cname =
17440                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkResetQueryPoolEXT\0");
17441                 let val = _f(cname);
17442                 if val.is_null() {
17443                     reset_query_pool_ext
17444                 } else {
17445                     ::std::mem::transmute(val)
17446                 }
17447             },
17448         }
17449     }
17450     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkResetQueryPoolEXT.html>"]
reset_query_pool_ext( &self, device: Device, query_pool: QueryPool, first_query: u32, query_count: u32, )17451     pub unsafe fn reset_query_pool_ext(
17452         &self,
17453         device: Device,
17454         query_pool: QueryPool,
17455         first_query: u32,
17456         query_count: u32,
17457     ) {
17458         (self.reset_query_pool_ext)(device, query_pool, first_query, query_count)
17459     }
17460 }
17461 #[doc = "Generated from 'VK_EXT_host_query_reset'"]
17462 impl StructureType {
17463     pub const PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT: Self =
17464         Self::PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES;
17465 }
17466 impl GgpExtension263Fn {
name() -> &'static ::std::ffi::CStr17467     pub fn name() -> &'static ::std::ffi::CStr {
17468         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GGP_extension_263\0") }
17469     }
17470     pub const SPEC_VERSION: u32 = 0u32;
17471 }
17472 #[derive(Clone)]
17473 pub struct GgpExtension263Fn {}
17474 unsafe impl Send for GgpExtension263Fn {}
17475 unsafe impl Sync for GgpExtension263Fn {}
17476 impl GgpExtension263Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17477     pub fn load<F>(mut _f: F) -> Self
17478     where
17479         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17480     {
17481         Self {}
17482     }
17483 }
17484 impl BrcmExtension264Fn {
name() -> &'static ::std::ffi::CStr17485     pub fn name() -> &'static ::std::ffi::CStr {
17486         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_BRCM_extension_264\0") }
17487     }
17488     pub const SPEC_VERSION: u32 = 0u32;
17489 }
17490 #[derive(Clone)]
17491 pub struct BrcmExtension264Fn {}
17492 unsafe impl Send for BrcmExtension264Fn {}
17493 unsafe impl Sync for BrcmExtension264Fn {}
17494 impl BrcmExtension264Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17495     pub fn load<F>(mut _f: F) -> Self
17496     where
17497         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17498     {
17499         Self {}
17500     }
17501 }
17502 impl BrcmExtension265Fn {
name() -> &'static ::std::ffi::CStr17503     pub fn name() -> &'static ::std::ffi::CStr {
17504         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_BRCM_extension_265\0") }
17505     }
17506     pub const SPEC_VERSION: u32 = 0u32;
17507 }
17508 #[derive(Clone)]
17509 pub struct BrcmExtension265Fn {}
17510 unsafe impl Send for BrcmExtension265Fn {}
17511 unsafe impl Sync for BrcmExtension265Fn {}
17512 impl BrcmExtension265Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17513     pub fn load<F>(mut _f: F) -> Self
17514     where
17515         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17516     {
17517         Self {}
17518     }
17519 }
17520 impl ExtIndexTypeUint8Fn {
name() -> &'static ::std::ffi::CStr17521     pub fn name() -> &'static ::std::ffi::CStr {
17522         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_index_type_uint8\0") }
17523     }
17524     pub const SPEC_VERSION: u32 = 1u32;
17525 }
17526 #[derive(Clone)]
17527 pub struct ExtIndexTypeUint8Fn {}
17528 unsafe impl Send for ExtIndexTypeUint8Fn {}
17529 unsafe impl Sync for ExtIndexTypeUint8Fn {}
17530 impl ExtIndexTypeUint8Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17531     pub fn load<F>(mut _f: F) -> Self
17532     where
17533         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17534     {
17535         Self {}
17536     }
17537 }
17538 #[doc = "Generated from 'VK_EXT_index_type_uint8'"]
17539 impl IndexType {
17540     pub const UINT8_EXT: Self = Self(1_000_265_000);
17541 }
17542 #[doc = "Generated from 'VK_EXT_index_type_uint8'"]
17543 impl StructureType {
17544     pub const PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: Self = Self(1_000_265_000);
17545 }
17546 impl ExtExtension267Fn {
name() -> &'static ::std::ffi::CStr17547     pub fn name() -> &'static ::std::ffi::CStr {
17548         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_267\0") }
17549     }
17550     pub const SPEC_VERSION: u32 = 0u32;
17551 }
17552 #[derive(Clone)]
17553 pub struct ExtExtension267Fn {}
17554 unsafe impl Send for ExtExtension267Fn {}
17555 unsafe impl Sync for ExtExtension267Fn {}
17556 impl ExtExtension267Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17557     pub fn load<F>(mut _f: F) -> Self
17558     where
17559         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17560     {
17561         Self {}
17562     }
17563 }
17564 impl ExtExtendedDynamicStateFn {
name() -> &'static ::std::ffi::CStr17565     pub fn name() -> &'static ::std::ffi::CStr {
17566         unsafe {
17567             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extended_dynamic_state\0")
17568         }
17569     }
17570     pub const SPEC_VERSION: u32 = 1u32;
17571 }
17572 #[allow(non_camel_case_types)]
17573 pub type PFN_vkCmdSetCullModeEXT =
17574     unsafe extern "system" fn(command_buffer: CommandBuffer, cull_mode: CullModeFlags);
17575 #[allow(non_camel_case_types)]
17576 pub type PFN_vkCmdSetFrontFaceEXT =
17577     unsafe extern "system" fn(command_buffer: CommandBuffer, front_face: FrontFace);
17578 #[allow(non_camel_case_types)]
17579 pub type PFN_vkCmdSetPrimitiveTopologyEXT =
17580     unsafe extern "system" fn(command_buffer: CommandBuffer, primitive_topology: PrimitiveTopology);
17581 #[allow(non_camel_case_types)]
17582 pub type PFN_vkCmdSetViewportWithCountEXT = unsafe extern "system" fn(
17583     command_buffer: CommandBuffer,
17584     viewport_count: u32,
17585     p_viewports: *const Viewport,
17586 );
17587 #[allow(non_camel_case_types)]
17588 pub type PFN_vkCmdSetScissorWithCountEXT = unsafe extern "system" fn(
17589     command_buffer: CommandBuffer,
17590     scissor_count: u32,
17591     p_scissors: *const Rect2D,
17592 );
17593 #[allow(non_camel_case_types)]
17594 pub type PFN_vkCmdBindVertexBuffers2EXT = unsafe extern "system" fn(
17595     command_buffer: CommandBuffer,
17596     first_binding: u32,
17597     binding_count: u32,
17598     p_buffers: *const Buffer,
17599     p_offsets: *const DeviceSize,
17600     p_sizes: *const DeviceSize,
17601     p_strides: *const DeviceSize,
17602 );
17603 #[allow(non_camel_case_types)]
17604 pub type PFN_vkCmdSetDepthTestEnableEXT =
17605     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_test_enable: Bool32);
17606 #[allow(non_camel_case_types)]
17607 pub type PFN_vkCmdSetDepthWriteEnableEXT =
17608     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_write_enable: Bool32);
17609 #[allow(non_camel_case_types)]
17610 pub type PFN_vkCmdSetDepthCompareOpEXT =
17611     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_compare_op: CompareOp);
17612 #[allow(non_camel_case_types)]
17613 pub type PFN_vkCmdSetDepthBoundsTestEnableEXT =
17614     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_bounds_test_enable: Bool32);
17615 #[allow(non_camel_case_types)]
17616 pub type PFN_vkCmdSetStencilTestEnableEXT =
17617     unsafe extern "system" fn(command_buffer: CommandBuffer, stencil_test_enable: Bool32);
17618 #[allow(non_camel_case_types)]
17619 pub type PFN_vkCmdSetStencilOpEXT = unsafe extern "system" fn(
17620     command_buffer: CommandBuffer,
17621     face_mask: StencilFaceFlags,
17622     fail_op: StencilOp,
17623     pass_op: StencilOp,
17624     depth_fail_op: StencilOp,
17625     compare_op: CompareOp,
17626 );
17627 #[derive(Clone)]
17628 pub struct ExtExtendedDynamicStateFn {
17629     pub cmd_set_cull_mode_ext: PFN_vkCmdSetCullModeEXT,
17630     pub cmd_set_front_face_ext: PFN_vkCmdSetFrontFaceEXT,
17631     pub cmd_set_primitive_topology_ext: PFN_vkCmdSetPrimitiveTopologyEXT,
17632     pub cmd_set_viewport_with_count_ext: PFN_vkCmdSetViewportWithCountEXT,
17633     pub cmd_set_scissor_with_count_ext: PFN_vkCmdSetScissorWithCountEXT,
17634     pub cmd_bind_vertex_buffers2_ext: PFN_vkCmdBindVertexBuffers2EXT,
17635     pub cmd_set_depth_test_enable_ext: PFN_vkCmdSetDepthTestEnableEXT,
17636     pub cmd_set_depth_write_enable_ext: PFN_vkCmdSetDepthWriteEnableEXT,
17637     pub cmd_set_depth_compare_op_ext: PFN_vkCmdSetDepthCompareOpEXT,
17638     pub cmd_set_depth_bounds_test_enable_ext: PFN_vkCmdSetDepthBoundsTestEnableEXT,
17639     pub cmd_set_stencil_test_enable_ext: PFN_vkCmdSetStencilTestEnableEXT,
17640     pub cmd_set_stencil_op_ext: PFN_vkCmdSetStencilOpEXT,
17641 }
17642 unsafe impl Send for ExtExtendedDynamicStateFn {}
17643 unsafe impl Sync for ExtExtendedDynamicStateFn {}
17644 impl ExtExtendedDynamicStateFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,17645     pub fn load<F>(mut _f: F) -> Self
17646     where
17647         F: FnMut(&::std::ffi::CStr) -> *const c_void,
17648     {
17649         Self {
17650             cmd_set_cull_mode_ext: unsafe {
17651                 unsafe extern "system" fn cmd_set_cull_mode_ext(
17652                     _command_buffer: CommandBuffer,
17653                     _cull_mode: CullModeFlags,
17654                 ) {
17655                     panic!(concat!(
17656                         "Unable to load ",
17657                         stringify!(cmd_set_cull_mode_ext)
17658                     ))
17659                 }
17660                 let cname =
17661                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetCullModeEXT\0");
17662                 let val = _f(cname);
17663                 if val.is_null() {
17664                     cmd_set_cull_mode_ext
17665                 } else {
17666                     ::std::mem::transmute(val)
17667                 }
17668             },
17669             cmd_set_front_face_ext: unsafe {
17670                 unsafe extern "system" fn cmd_set_front_face_ext(
17671                     _command_buffer: CommandBuffer,
17672                     _front_face: FrontFace,
17673                 ) {
17674                     panic!(concat!(
17675                         "Unable to load ",
17676                         stringify!(cmd_set_front_face_ext)
17677                     ))
17678                 }
17679                 let cname =
17680                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetFrontFaceEXT\0");
17681                 let val = _f(cname);
17682                 if val.is_null() {
17683                     cmd_set_front_face_ext
17684                 } else {
17685                     ::std::mem::transmute(val)
17686                 }
17687             },
17688             cmd_set_primitive_topology_ext: unsafe {
17689                 unsafe extern "system" fn cmd_set_primitive_topology_ext(
17690                     _command_buffer: CommandBuffer,
17691                     _primitive_topology: PrimitiveTopology,
17692                 ) {
17693                     panic!(concat!(
17694                         "Unable to load ",
17695                         stringify!(cmd_set_primitive_topology_ext)
17696                     ))
17697                 }
17698                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17699                     b"vkCmdSetPrimitiveTopologyEXT\0",
17700                 );
17701                 let val = _f(cname);
17702                 if val.is_null() {
17703                     cmd_set_primitive_topology_ext
17704                 } else {
17705                     ::std::mem::transmute(val)
17706                 }
17707             },
17708             cmd_set_viewport_with_count_ext: unsafe {
17709                 unsafe extern "system" fn cmd_set_viewport_with_count_ext(
17710                     _command_buffer: CommandBuffer,
17711                     _viewport_count: u32,
17712                     _p_viewports: *const Viewport,
17713                 ) {
17714                     panic!(concat!(
17715                         "Unable to load ",
17716                         stringify!(cmd_set_viewport_with_count_ext)
17717                     ))
17718                 }
17719                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17720                     b"vkCmdSetViewportWithCountEXT\0",
17721                 );
17722                 let val = _f(cname);
17723                 if val.is_null() {
17724                     cmd_set_viewport_with_count_ext
17725                 } else {
17726                     ::std::mem::transmute(val)
17727                 }
17728             },
17729             cmd_set_scissor_with_count_ext: unsafe {
17730                 unsafe extern "system" fn cmd_set_scissor_with_count_ext(
17731                     _command_buffer: CommandBuffer,
17732                     _scissor_count: u32,
17733                     _p_scissors: *const Rect2D,
17734                 ) {
17735                     panic!(concat!(
17736                         "Unable to load ",
17737                         stringify!(cmd_set_scissor_with_count_ext)
17738                     ))
17739                 }
17740                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17741                     b"vkCmdSetScissorWithCountEXT\0",
17742                 );
17743                 let val = _f(cname);
17744                 if val.is_null() {
17745                     cmd_set_scissor_with_count_ext
17746                 } else {
17747                     ::std::mem::transmute(val)
17748                 }
17749             },
17750             cmd_bind_vertex_buffers2_ext: unsafe {
17751                 unsafe extern "system" fn cmd_bind_vertex_buffers2_ext(
17752                     _command_buffer: CommandBuffer,
17753                     _first_binding: u32,
17754                     _binding_count: u32,
17755                     _p_buffers: *const Buffer,
17756                     _p_offsets: *const DeviceSize,
17757                     _p_sizes: *const DeviceSize,
17758                     _p_strides: *const DeviceSize,
17759                 ) {
17760                     panic!(concat!(
17761                         "Unable to load ",
17762                         stringify!(cmd_bind_vertex_buffers2_ext)
17763                     ))
17764                 }
17765                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17766                     b"vkCmdBindVertexBuffers2EXT\0",
17767                 );
17768                 let val = _f(cname);
17769                 if val.is_null() {
17770                     cmd_bind_vertex_buffers2_ext
17771                 } else {
17772                     ::std::mem::transmute(val)
17773                 }
17774             },
17775             cmd_set_depth_test_enable_ext: unsafe {
17776                 unsafe extern "system" fn cmd_set_depth_test_enable_ext(
17777                     _command_buffer: CommandBuffer,
17778                     _depth_test_enable: Bool32,
17779                 ) {
17780                     panic!(concat!(
17781                         "Unable to load ",
17782                         stringify!(cmd_set_depth_test_enable_ext)
17783                     ))
17784                 }
17785                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17786                     b"vkCmdSetDepthTestEnableEXT\0",
17787                 );
17788                 let val = _f(cname);
17789                 if val.is_null() {
17790                     cmd_set_depth_test_enable_ext
17791                 } else {
17792                     ::std::mem::transmute(val)
17793                 }
17794             },
17795             cmd_set_depth_write_enable_ext: unsafe {
17796                 unsafe extern "system" fn cmd_set_depth_write_enable_ext(
17797                     _command_buffer: CommandBuffer,
17798                     _depth_write_enable: Bool32,
17799                 ) {
17800                     panic!(concat!(
17801                         "Unable to load ",
17802                         stringify!(cmd_set_depth_write_enable_ext)
17803                     ))
17804                 }
17805                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17806                     b"vkCmdSetDepthWriteEnableEXT\0",
17807                 );
17808                 let val = _f(cname);
17809                 if val.is_null() {
17810                     cmd_set_depth_write_enable_ext
17811                 } else {
17812                     ::std::mem::transmute(val)
17813                 }
17814             },
17815             cmd_set_depth_compare_op_ext: unsafe {
17816                 unsafe extern "system" fn cmd_set_depth_compare_op_ext(
17817                     _command_buffer: CommandBuffer,
17818                     _depth_compare_op: CompareOp,
17819                 ) {
17820                     panic!(concat!(
17821                         "Unable to load ",
17822                         stringify!(cmd_set_depth_compare_op_ext)
17823                     ))
17824                 }
17825                 let cname =
17826                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetDepthCompareOpEXT\0");
17827                 let val = _f(cname);
17828                 if val.is_null() {
17829                     cmd_set_depth_compare_op_ext
17830                 } else {
17831                     ::std::mem::transmute(val)
17832                 }
17833             },
17834             cmd_set_depth_bounds_test_enable_ext: unsafe {
17835                 unsafe extern "system" fn cmd_set_depth_bounds_test_enable_ext(
17836                     _command_buffer: CommandBuffer,
17837                     _depth_bounds_test_enable: Bool32,
17838                 ) {
17839                     panic!(concat!(
17840                         "Unable to load ",
17841                         stringify!(cmd_set_depth_bounds_test_enable_ext)
17842                     ))
17843                 }
17844                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17845                     b"vkCmdSetDepthBoundsTestEnableEXT\0",
17846                 );
17847                 let val = _f(cname);
17848                 if val.is_null() {
17849                     cmd_set_depth_bounds_test_enable_ext
17850                 } else {
17851                     ::std::mem::transmute(val)
17852                 }
17853             },
17854             cmd_set_stencil_test_enable_ext: unsafe {
17855                 unsafe extern "system" fn cmd_set_stencil_test_enable_ext(
17856                     _command_buffer: CommandBuffer,
17857                     _stencil_test_enable: Bool32,
17858                 ) {
17859                     panic!(concat!(
17860                         "Unable to load ",
17861                         stringify!(cmd_set_stencil_test_enable_ext)
17862                     ))
17863                 }
17864                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
17865                     b"vkCmdSetStencilTestEnableEXT\0",
17866                 );
17867                 let val = _f(cname);
17868                 if val.is_null() {
17869                     cmd_set_stencil_test_enable_ext
17870                 } else {
17871                     ::std::mem::transmute(val)
17872                 }
17873             },
17874             cmd_set_stencil_op_ext: unsafe {
17875                 unsafe extern "system" fn cmd_set_stencil_op_ext(
17876                     _command_buffer: CommandBuffer,
17877                     _face_mask: StencilFaceFlags,
17878                     _fail_op: StencilOp,
17879                     _pass_op: StencilOp,
17880                     _depth_fail_op: StencilOp,
17881                     _compare_op: CompareOp,
17882                 ) {
17883                     panic!(concat!(
17884                         "Unable to load ",
17885                         stringify!(cmd_set_stencil_op_ext)
17886                     ))
17887                 }
17888                 let cname =
17889                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetStencilOpEXT\0");
17890                 let val = _f(cname);
17891                 if val.is_null() {
17892                     cmd_set_stencil_op_ext
17893                 } else {
17894                     ::std::mem::transmute(val)
17895                 }
17896             },
17897         }
17898     }
17899     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetCullModeEXT.html>"]
cmd_set_cull_mode_ext( &self, command_buffer: CommandBuffer, cull_mode: CullModeFlags, )17900     pub unsafe fn cmd_set_cull_mode_ext(
17901         &self,
17902         command_buffer: CommandBuffer,
17903         cull_mode: CullModeFlags,
17904     ) {
17905         (self.cmd_set_cull_mode_ext)(command_buffer, cull_mode)
17906     }
17907     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetFrontFaceEXT.html>"]
cmd_set_front_face_ext( &self, command_buffer: CommandBuffer, front_face: FrontFace, )17908     pub unsafe fn cmd_set_front_face_ext(
17909         &self,
17910         command_buffer: CommandBuffer,
17911         front_face: FrontFace,
17912     ) {
17913         (self.cmd_set_front_face_ext)(command_buffer, front_face)
17914     }
17915     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetPrimitiveTopologyEXT.html>"]
cmd_set_primitive_topology_ext( &self, command_buffer: CommandBuffer, primitive_topology: PrimitiveTopology, )17916     pub unsafe fn cmd_set_primitive_topology_ext(
17917         &self,
17918         command_buffer: CommandBuffer,
17919         primitive_topology: PrimitiveTopology,
17920     ) {
17921         (self.cmd_set_primitive_topology_ext)(command_buffer, primitive_topology)
17922     }
17923     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetViewportWithCountEXT.html>"]
cmd_set_viewport_with_count_ext( &self, command_buffer: CommandBuffer, viewport_count: u32, p_viewports: *const Viewport, )17924     pub unsafe fn cmd_set_viewport_with_count_ext(
17925         &self,
17926         command_buffer: CommandBuffer,
17927         viewport_count: u32,
17928         p_viewports: *const Viewport,
17929     ) {
17930         (self.cmd_set_viewport_with_count_ext)(command_buffer, viewport_count, p_viewports)
17931     }
17932     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetScissorWithCountEXT.html>"]
cmd_set_scissor_with_count_ext( &self, command_buffer: CommandBuffer, scissor_count: u32, p_scissors: *const Rect2D, )17933     pub unsafe fn cmd_set_scissor_with_count_ext(
17934         &self,
17935         command_buffer: CommandBuffer,
17936         scissor_count: u32,
17937         p_scissors: *const Rect2D,
17938     ) {
17939         (self.cmd_set_scissor_with_count_ext)(command_buffer, scissor_count, p_scissors)
17940     }
17941     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBindVertexBuffers2EXT.html>"]
cmd_bind_vertex_buffers2_ext( &self, command_buffer: CommandBuffer, first_binding: u32, binding_count: u32, p_buffers: *const Buffer, p_offsets: *const DeviceSize, p_sizes: *const DeviceSize, p_strides: *const DeviceSize, )17942     pub unsafe fn cmd_bind_vertex_buffers2_ext(
17943         &self,
17944         command_buffer: CommandBuffer,
17945         first_binding: u32,
17946         binding_count: u32,
17947         p_buffers: *const Buffer,
17948         p_offsets: *const DeviceSize,
17949         p_sizes: *const DeviceSize,
17950         p_strides: *const DeviceSize,
17951     ) {
17952         (self.cmd_bind_vertex_buffers2_ext)(
17953             command_buffer,
17954             first_binding,
17955             binding_count,
17956             p_buffers,
17957             p_offsets,
17958             p_sizes,
17959             p_strides,
17960         )
17961     }
17962     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetDepthTestEnableEXT.html>"]
cmd_set_depth_test_enable_ext( &self, command_buffer: CommandBuffer, depth_test_enable: Bool32, )17963     pub unsafe fn cmd_set_depth_test_enable_ext(
17964         &self,
17965         command_buffer: CommandBuffer,
17966         depth_test_enable: Bool32,
17967     ) {
17968         (self.cmd_set_depth_test_enable_ext)(command_buffer, depth_test_enable)
17969     }
17970     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetDepthWriteEnableEXT.html>"]
cmd_set_depth_write_enable_ext( &self, command_buffer: CommandBuffer, depth_write_enable: Bool32, )17971     pub unsafe fn cmd_set_depth_write_enable_ext(
17972         &self,
17973         command_buffer: CommandBuffer,
17974         depth_write_enable: Bool32,
17975     ) {
17976         (self.cmd_set_depth_write_enable_ext)(command_buffer, depth_write_enable)
17977     }
17978     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetDepthCompareOpEXT.html>"]
cmd_set_depth_compare_op_ext( &self, command_buffer: CommandBuffer, depth_compare_op: CompareOp, )17979     pub unsafe fn cmd_set_depth_compare_op_ext(
17980         &self,
17981         command_buffer: CommandBuffer,
17982         depth_compare_op: CompareOp,
17983     ) {
17984         (self.cmd_set_depth_compare_op_ext)(command_buffer, depth_compare_op)
17985     }
17986     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetDepthBoundsTestEnableEXT.html>"]
cmd_set_depth_bounds_test_enable_ext( &self, command_buffer: CommandBuffer, depth_bounds_test_enable: Bool32, )17987     pub unsafe fn cmd_set_depth_bounds_test_enable_ext(
17988         &self,
17989         command_buffer: CommandBuffer,
17990         depth_bounds_test_enable: Bool32,
17991     ) {
17992         (self.cmd_set_depth_bounds_test_enable_ext)(command_buffer, depth_bounds_test_enable)
17993     }
17994     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetStencilTestEnableEXT.html>"]
cmd_set_stencil_test_enable_ext( &self, command_buffer: CommandBuffer, stencil_test_enable: Bool32, )17995     pub unsafe fn cmd_set_stencil_test_enable_ext(
17996         &self,
17997         command_buffer: CommandBuffer,
17998         stencil_test_enable: Bool32,
17999     ) {
18000         (self.cmd_set_stencil_test_enable_ext)(command_buffer, stencil_test_enable)
18001     }
18002     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetStencilOpEXT.html>"]
cmd_set_stencil_op_ext( &self, command_buffer: CommandBuffer, face_mask: StencilFaceFlags, fail_op: StencilOp, pass_op: StencilOp, depth_fail_op: StencilOp, compare_op: CompareOp, )18003     pub unsafe fn cmd_set_stencil_op_ext(
18004         &self,
18005         command_buffer: CommandBuffer,
18006         face_mask: StencilFaceFlags,
18007         fail_op: StencilOp,
18008         pass_op: StencilOp,
18009         depth_fail_op: StencilOp,
18010         compare_op: CompareOp,
18011     ) {
18012         (self.cmd_set_stencil_op_ext)(
18013             command_buffer,
18014             face_mask,
18015             fail_op,
18016             pass_op,
18017             depth_fail_op,
18018             compare_op,
18019         )
18020     }
18021 }
18022 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
18023 impl DynamicState {
18024     pub const CULL_MODE_EXT: Self = Self(1_000_267_000);
18025     pub const FRONT_FACE_EXT: Self = Self(1_000_267_001);
18026     pub const PRIMITIVE_TOPOLOGY_EXT: Self = Self(1_000_267_002);
18027     pub const VIEWPORT_WITH_COUNT_EXT: Self = Self(1_000_267_003);
18028     pub const SCISSOR_WITH_COUNT_EXT: Self = Self(1_000_267_004);
18029     pub const VERTEX_INPUT_BINDING_STRIDE_EXT: Self = Self(1_000_267_005);
18030     pub const DEPTH_TEST_ENABLE_EXT: Self = Self(1_000_267_006);
18031     pub const DEPTH_WRITE_ENABLE_EXT: Self = Self(1_000_267_007);
18032     pub const DEPTH_COMPARE_OP_EXT: Self = Self(1_000_267_008);
18033     pub const DEPTH_BOUNDS_TEST_ENABLE_EXT: Self = Self(1_000_267_009);
18034     pub const STENCIL_TEST_ENABLE_EXT: Self = Self(1_000_267_010);
18035     pub const STENCIL_OP_EXT: Self = Self(1_000_267_011);
18036 }
18037 #[doc = "Generated from 'VK_EXT_extended_dynamic_state'"]
18038 impl StructureType {
18039     pub const PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: Self = Self(1_000_267_000);
18040 }
18041 impl KhrDeferredHostOperationsFn {
name() -> &'static ::std::ffi::CStr18042     pub fn name() -> &'static ::std::ffi::CStr {
18043         unsafe {
18044             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_deferred_host_operations\0")
18045         }
18046     }
18047     pub const SPEC_VERSION: u32 = 4u32;
18048 }
18049 #[allow(non_camel_case_types)]
18050 pub type PFN_vkCreateDeferredOperationKHR = unsafe extern "system" fn(
18051     device: Device,
18052     p_allocator: *const AllocationCallbacks,
18053     p_deferred_operation: *mut DeferredOperationKHR,
18054 ) -> Result;
18055 #[allow(non_camel_case_types)]
18056 pub type PFN_vkDestroyDeferredOperationKHR = unsafe extern "system" fn(
18057     device: Device,
18058     operation: DeferredOperationKHR,
18059     p_allocator: *const AllocationCallbacks,
18060 );
18061 #[allow(non_camel_case_types)]
18062 pub type PFN_vkGetDeferredOperationMaxConcurrencyKHR =
18063     unsafe extern "system" fn(device: Device, operation: DeferredOperationKHR) -> u32;
18064 #[allow(non_camel_case_types)]
18065 pub type PFN_vkGetDeferredOperationResultKHR =
18066     unsafe extern "system" fn(device: Device, operation: DeferredOperationKHR) -> Result;
18067 #[allow(non_camel_case_types)]
18068 pub type PFN_vkDeferredOperationJoinKHR =
18069     unsafe extern "system" fn(device: Device, operation: DeferredOperationKHR) -> Result;
18070 #[derive(Clone)]
18071 pub struct KhrDeferredHostOperationsFn {
18072     pub create_deferred_operation_khr: PFN_vkCreateDeferredOperationKHR,
18073     pub destroy_deferred_operation_khr: PFN_vkDestroyDeferredOperationKHR,
18074     pub get_deferred_operation_max_concurrency_khr: PFN_vkGetDeferredOperationMaxConcurrencyKHR,
18075     pub get_deferred_operation_result_khr: PFN_vkGetDeferredOperationResultKHR,
18076     pub deferred_operation_join_khr: PFN_vkDeferredOperationJoinKHR,
18077 }
18078 unsafe impl Send for KhrDeferredHostOperationsFn {}
18079 unsafe impl Sync for KhrDeferredHostOperationsFn {}
18080 impl KhrDeferredHostOperationsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18081     pub fn load<F>(mut _f: F) -> Self
18082     where
18083         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18084     {
18085         Self {
18086             create_deferred_operation_khr: unsafe {
18087                 unsafe extern "system" fn create_deferred_operation_khr(
18088                     _device: Device,
18089                     _p_allocator: *const AllocationCallbacks,
18090                     _p_deferred_operation: *mut DeferredOperationKHR,
18091                 ) -> Result {
18092                     panic!(concat!(
18093                         "Unable to load ",
18094                         stringify!(create_deferred_operation_khr)
18095                     ))
18096                 }
18097                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18098                     b"vkCreateDeferredOperationKHR\0",
18099                 );
18100                 let val = _f(cname);
18101                 if val.is_null() {
18102                     create_deferred_operation_khr
18103                 } else {
18104                     ::std::mem::transmute(val)
18105                 }
18106             },
18107             destroy_deferred_operation_khr: unsafe {
18108                 unsafe extern "system" fn destroy_deferred_operation_khr(
18109                     _device: Device,
18110                     _operation: DeferredOperationKHR,
18111                     _p_allocator: *const AllocationCallbacks,
18112                 ) {
18113                     panic!(concat!(
18114                         "Unable to load ",
18115                         stringify!(destroy_deferred_operation_khr)
18116                     ))
18117                 }
18118                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18119                     b"vkDestroyDeferredOperationKHR\0",
18120                 );
18121                 let val = _f(cname);
18122                 if val.is_null() {
18123                     destroy_deferred_operation_khr
18124                 } else {
18125                     ::std::mem::transmute(val)
18126                 }
18127             },
18128             get_deferred_operation_max_concurrency_khr: unsafe {
18129                 unsafe extern "system" fn get_deferred_operation_max_concurrency_khr(
18130                     _device: Device,
18131                     _operation: DeferredOperationKHR,
18132                 ) -> u32 {
18133                     panic!(concat!(
18134                         "Unable to load ",
18135                         stringify!(get_deferred_operation_max_concurrency_khr)
18136                     ))
18137                 }
18138                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18139                     b"vkGetDeferredOperationMaxConcurrencyKHR\0",
18140                 );
18141                 let val = _f(cname);
18142                 if val.is_null() {
18143                     get_deferred_operation_max_concurrency_khr
18144                 } else {
18145                     ::std::mem::transmute(val)
18146                 }
18147             },
18148             get_deferred_operation_result_khr: unsafe {
18149                 unsafe extern "system" fn get_deferred_operation_result_khr(
18150                     _device: Device,
18151                     _operation: DeferredOperationKHR,
18152                 ) -> Result {
18153                     panic!(concat!(
18154                         "Unable to load ",
18155                         stringify!(get_deferred_operation_result_khr)
18156                     ))
18157                 }
18158                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18159                     b"vkGetDeferredOperationResultKHR\0",
18160                 );
18161                 let val = _f(cname);
18162                 if val.is_null() {
18163                     get_deferred_operation_result_khr
18164                 } else {
18165                     ::std::mem::transmute(val)
18166                 }
18167             },
18168             deferred_operation_join_khr: unsafe {
18169                 unsafe extern "system" fn deferred_operation_join_khr(
18170                     _device: Device,
18171                     _operation: DeferredOperationKHR,
18172                 ) -> Result {
18173                     panic!(concat!(
18174                         "Unable to load ",
18175                         stringify!(deferred_operation_join_khr)
18176                     ))
18177                 }
18178                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18179                     b"vkDeferredOperationJoinKHR\0",
18180                 );
18181                 let val = _f(cname);
18182                 if val.is_null() {
18183                     deferred_operation_join_khr
18184                 } else {
18185                     ::std::mem::transmute(val)
18186                 }
18187             },
18188         }
18189     }
18190     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateDeferredOperationKHR.html>"]
create_deferred_operation_khr( &self, device: Device, p_allocator: *const AllocationCallbacks, p_deferred_operation: *mut DeferredOperationKHR, ) -> Result18191     pub unsafe fn create_deferred_operation_khr(
18192         &self,
18193         device: Device,
18194         p_allocator: *const AllocationCallbacks,
18195         p_deferred_operation: *mut DeferredOperationKHR,
18196     ) -> Result {
18197         (self.create_deferred_operation_khr)(device, p_allocator, p_deferred_operation)
18198     }
18199     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroyDeferredOperationKHR.html>"]
destroy_deferred_operation_khr( &self, device: Device, operation: DeferredOperationKHR, p_allocator: *const AllocationCallbacks, )18200     pub unsafe fn destroy_deferred_operation_khr(
18201         &self,
18202         device: Device,
18203         operation: DeferredOperationKHR,
18204         p_allocator: *const AllocationCallbacks,
18205     ) {
18206         (self.destroy_deferred_operation_khr)(device, operation, p_allocator)
18207     }
18208     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeferredOperationMaxConcurrencyKHR.html>"]
get_deferred_operation_max_concurrency_khr( &self, device: Device, operation: DeferredOperationKHR, ) -> u3218209     pub unsafe fn get_deferred_operation_max_concurrency_khr(
18210         &self,
18211         device: Device,
18212         operation: DeferredOperationKHR,
18213     ) -> u32 {
18214         (self.get_deferred_operation_max_concurrency_khr)(device, operation)
18215     }
18216     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeferredOperationResultKHR.html>"]
get_deferred_operation_result_khr( &self, device: Device, operation: DeferredOperationKHR, ) -> Result18217     pub unsafe fn get_deferred_operation_result_khr(
18218         &self,
18219         device: Device,
18220         operation: DeferredOperationKHR,
18221     ) -> Result {
18222         (self.get_deferred_operation_result_khr)(device, operation)
18223     }
18224     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDeferredOperationJoinKHR.html>"]
deferred_operation_join_khr( &self, device: Device, operation: DeferredOperationKHR, ) -> Result18225     pub unsafe fn deferred_operation_join_khr(
18226         &self,
18227         device: Device,
18228         operation: DeferredOperationKHR,
18229     ) -> Result {
18230         (self.deferred_operation_join_khr)(device, operation)
18231     }
18232 }
18233 #[doc = "Generated from 'VK_KHR_deferred_host_operations'"]
18234 impl ObjectType {
18235     pub const DEFERRED_OPERATION_KHR: Self = Self(1_000_268_000);
18236 }
18237 #[doc = "Generated from 'VK_KHR_deferred_host_operations'"]
18238 impl Result {
18239     pub const THREAD_IDLE_KHR: Self = Self(1_000_268_000);
18240     pub const THREAD_DONE_KHR: Self = Self(1_000_268_001);
18241     pub const OPERATION_DEFERRED_KHR: Self = Self(1_000_268_002);
18242     pub const OPERATION_NOT_DEFERRED_KHR: Self = Self(1_000_268_003);
18243 }
18244 impl KhrPipelineExecutablePropertiesFn {
name() -> &'static ::std::ffi::CStr18245     pub fn name() -> &'static ::std::ffi::CStr {
18246         unsafe {
18247             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18248                 b"VK_KHR_pipeline_executable_properties\0",
18249             )
18250         }
18251     }
18252     pub const SPEC_VERSION: u32 = 1u32;
18253 }
18254 #[allow(non_camel_case_types)]
18255 pub type PFN_vkGetPipelineExecutablePropertiesKHR = unsafe extern "system" fn(
18256     device: Device,
18257     p_pipeline_info: *const PipelineInfoKHR,
18258     p_executable_count: *mut u32,
18259     p_properties: *mut PipelineExecutablePropertiesKHR,
18260 ) -> Result;
18261 #[allow(non_camel_case_types)]
18262 pub type PFN_vkGetPipelineExecutableStatisticsKHR = unsafe extern "system" fn(
18263     device: Device,
18264     p_executable_info: *const PipelineExecutableInfoKHR,
18265     p_statistic_count: *mut u32,
18266     p_statistics: *mut PipelineExecutableStatisticKHR,
18267 ) -> Result;
18268 #[allow(non_camel_case_types)]
18269 pub type PFN_vkGetPipelineExecutableInternalRepresentationsKHR =
18270     unsafe extern "system" fn(
18271         device: Device,
18272         p_executable_info: *const PipelineExecutableInfoKHR,
18273         p_internal_representation_count: *mut u32,
18274         p_internal_representations: *mut PipelineExecutableInternalRepresentationKHR,
18275     ) -> Result;
18276 #[derive(Clone)]
18277 pub struct KhrPipelineExecutablePropertiesFn {
18278     pub get_pipeline_executable_properties_khr: PFN_vkGetPipelineExecutablePropertiesKHR,
18279     pub get_pipeline_executable_statistics_khr: PFN_vkGetPipelineExecutableStatisticsKHR,
18280     pub get_pipeline_executable_internal_representations_khr:
18281         PFN_vkGetPipelineExecutableInternalRepresentationsKHR,
18282 }
18283 unsafe impl Send for KhrPipelineExecutablePropertiesFn {}
18284 unsafe impl Sync for KhrPipelineExecutablePropertiesFn {}
18285 impl KhrPipelineExecutablePropertiesFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18286     pub fn load<F>(mut _f: F) -> Self
18287     where
18288         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18289     {
18290         Self {
18291             get_pipeline_executable_properties_khr: unsafe {
18292                 unsafe extern "system" fn get_pipeline_executable_properties_khr(
18293                     _device: Device,
18294                     _p_pipeline_info: *const PipelineInfoKHR,
18295                     _p_executable_count: *mut u32,
18296                     _p_properties: *mut PipelineExecutablePropertiesKHR,
18297                 ) -> Result {
18298                     panic!(concat!(
18299                         "Unable to load ",
18300                         stringify!(get_pipeline_executable_properties_khr)
18301                     ))
18302                 }
18303                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18304                     b"vkGetPipelineExecutablePropertiesKHR\0",
18305                 );
18306                 let val = _f(cname);
18307                 if val.is_null() {
18308                     get_pipeline_executable_properties_khr
18309                 } else {
18310                     ::std::mem::transmute(val)
18311                 }
18312             },
18313             get_pipeline_executable_statistics_khr: unsafe {
18314                 unsafe extern "system" fn get_pipeline_executable_statistics_khr(
18315                     _device: Device,
18316                     _p_executable_info: *const PipelineExecutableInfoKHR,
18317                     _p_statistic_count: *mut u32,
18318                     _p_statistics: *mut PipelineExecutableStatisticKHR,
18319                 ) -> Result {
18320                     panic!(concat!(
18321                         "Unable to load ",
18322                         stringify!(get_pipeline_executable_statistics_khr)
18323                     ))
18324                 }
18325                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18326                     b"vkGetPipelineExecutableStatisticsKHR\0",
18327                 );
18328                 let val = _f(cname);
18329                 if val.is_null() {
18330                     get_pipeline_executable_statistics_khr
18331                 } else {
18332                     ::std::mem::transmute(val)
18333                 }
18334             },
18335             get_pipeline_executable_internal_representations_khr: unsafe {
18336                 unsafe extern "system" fn get_pipeline_executable_internal_representations_khr(
18337                     _device: Device,
18338                     _p_executable_info: *const PipelineExecutableInfoKHR,
18339                     _p_internal_representation_count: *mut u32,
18340                     _p_internal_representations: *mut PipelineExecutableInternalRepresentationKHR,
18341                 ) -> Result {
18342                     panic!(concat!(
18343                         "Unable to load ",
18344                         stringify!(get_pipeline_executable_internal_representations_khr)
18345                     ))
18346                 }
18347                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18348                     b"vkGetPipelineExecutableInternalRepresentationsKHR\0",
18349                 );
18350                 let val = _f(cname);
18351                 if val.is_null() {
18352                     get_pipeline_executable_internal_representations_khr
18353                 } else {
18354                     ::std::mem::transmute(val)
18355                 }
18356             },
18357         }
18358     }
18359     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPipelineExecutablePropertiesKHR.html>"]
get_pipeline_executable_properties_khr( &self, device: Device, p_pipeline_info: *const PipelineInfoKHR, p_executable_count: *mut u32, p_properties: *mut PipelineExecutablePropertiesKHR, ) -> Result18360     pub unsafe fn get_pipeline_executable_properties_khr(
18361         &self,
18362         device: Device,
18363         p_pipeline_info: *const PipelineInfoKHR,
18364         p_executable_count: *mut u32,
18365         p_properties: *mut PipelineExecutablePropertiesKHR,
18366     ) -> Result {
18367         (self.get_pipeline_executable_properties_khr)(
18368             device,
18369             p_pipeline_info,
18370             p_executable_count,
18371             p_properties,
18372         )
18373     }
18374     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPipelineExecutableStatisticsKHR.html>"]
get_pipeline_executable_statistics_khr( &self, device: Device, p_executable_info: *const PipelineExecutableInfoKHR, p_statistic_count: *mut u32, p_statistics: *mut PipelineExecutableStatisticKHR, ) -> Result18375     pub unsafe fn get_pipeline_executable_statistics_khr(
18376         &self,
18377         device: Device,
18378         p_executable_info: *const PipelineExecutableInfoKHR,
18379         p_statistic_count: *mut u32,
18380         p_statistics: *mut PipelineExecutableStatisticKHR,
18381     ) -> Result {
18382         (self.get_pipeline_executable_statistics_khr)(
18383             device,
18384             p_executable_info,
18385             p_statistic_count,
18386             p_statistics,
18387         )
18388     }
18389     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPipelineExecutableInternalRepresentationsKHR.html>"]
get_pipeline_executable_internal_representations_khr( &self, device: Device, p_executable_info: *const PipelineExecutableInfoKHR, p_internal_representation_count: *mut u32, p_internal_representations: *mut PipelineExecutableInternalRepresentationKHR, ) -> Result18390     pub unsafe fn get_pipeline_executable_internal_representations_khr(
18391         &self,
18392         device: Device,
18393         p_executable_info: *const PipelineExecutableInfoKHR,
18394         p_internal_representation_count: *mut u32,
18395         p_internal_representations: *mut PipelineExecutableInternalRepresentationKHR,
18396     ) -> Result {
18397         (self.get_pipeline_executable_internal_representations_khr)(
18398             device,
18399             p_executable_info,
18400             p_internal_representation_count,
18401             p_internal_representations,
18402         )
18403     }
18404 }
18405 #[doc = "Generated from 'VK_KHR_pipeline_executable_properties'"]
18406 impl PipelineCreateFlags {
18407     pub const CAPTURE_STATISTICS_KHR: Self = Self(0b100_0000);
18408     pub const CAPTURE_INTERNAL_REPRESENTATIONS_KHR: Self = Self(0b1000_0000);
18409 }
18410 #[doc = "Generated from 'VK_KHR_pipeline_executable_properties'"]
18411 impl StructureType {
18412     pub const PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: Self =
18413         Self(1_000_269_000);
18414     pub const PIPELINE_INFO_KHR: Self = Self(1_000_269_001);
18415     pub const PIPELINE_EXECUTABLE_PROPERTIES_KHR: Self = Self(1_000_269_002);
18416     pub const PIPELINE_EXECUTABLE_INFO_KHR: Self = Self(1_000_269_003);
18417     pub const PIPELINE_EXECUTABLE_STATISTIC_KHR: Self = Self(1_000_269_004);
18418     pub const PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR: Self = Self(1_000_269_005);
18419 }
18420 impl IntelExtension271Fn {
name() -> &'static ::std::ffi::CStr18421     pub fn name() -> &'static ::std::ffi::CStr {
18422         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_INTEL_extension_271\0") }
18423     }
18424     pub const SPEC_VERSION: u32 = 0u32;
18425 }
18426 #[derive(Clone)]
18427 pub struct IntelExtension271Fn {}
18428 unsafe impl Send for IntelExtension271Fn {}
18429 unsafe impl Sync for IntelExtension271Fn {}
18430 impl IntelExtension271Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18431     pub fn load<F>(mut _f: F) -> Self
18432     where
18433         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18434     {
18435         Self {}
18436     }
18437 }
18438 impl IntelExtension272Fn {
name() -> &'static ::std::ffi::CStr18439     pub fn name() -> &'static ::std::ffi::CStr {
18440         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_INTEL_extension_272\0") }
18441     }
18442     pub const SPEC_VERSION: u32 = 0u32;
18443 }
18444 #[derive(Clone)]
18445 pub struct IntelExtension272Fn {}
18446 unsafe impl Send for IntelExtension272Fn {}
18447 unsafe impl Sync for IntelExtension272Fn {}
18448 impl IntelExtension272Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18449     pub fn load<F>(mut _f: F) -> Self
18450     where
18451         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18452     {
18453         Self {}
18454     }
18455 }
18456 impl IntelExtension273Fn {
name() -> &'static ::std::ffi::CStr18457     pub fn name() -> &'static ::std::ffi::CStr {
18458         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_INTEL_extension_273\0") }
18459     }
18460     pub const SPEC_VERSION: u32 = 0u32;
18461 }
18462 #[derive(Clone)]
18463 pub struct IntelExtension273Fn {}
18464 unsafe impl Send for IntelExtension273Fn {}
18465 unsafe impl Sync for IntelExtension273Fn {}
18466 impl IntelExtension273Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18467     pub fn load<F>(mut _f: F) -> Self
18468     where
18469         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18470     {
18471         Self {}
18472     }
18473 }
18474 impl ExtShaderAtomicFloat2Fn {
name() -> &'static ::std::ffi::CStr18475     pub fn name() -> &'static ::std::ffi::CStr {
18476         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_shader_atomic_float2\0") }
18477     }
18478     pub const SPEC_VERSION: u32 = 1u32;
18479 }
18480 #[derive(Clone)]
18481 pub struct ExtShaderAtomicFloat2Fn {}
18482 unsafe impl Send for ExtShaderAtomicFloat2Fn {}
18483 unsafe impl Sync for ExtShaderAtomicFloat2Fn {}
18484 impl ExtShaderAtomicFloat2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18485     pub fn load<F>(mut _f: F) -> Self
18486     where
18487         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18488     {
18489         Self {}
18490     }
18491 }
18492 #[doc = "Generated from 'VK_EXT_shader_atomic_float2'"]
18493 impl StructureType {
18494     pub const PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: Self = Self(1_000_273_000);
18495 }
18496 impl KhrExtension275Fn {
name() -> &'static ::std::ffi::CStr18497     pub fn name() -> &'static ::std::ffi::CStr {
18498         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_275\0") }
18499     }
18500     pub const SPEC_VERSION: u32 = 0u32;
18501 }
18502 #[derive(Clone)]
18503 pub struct KhrExtension275Fn {}
18504 unsafe impl Send for KhrExtension275Fn {}
18505 unsafe impl Sync for KhrExtension275Fn {}
18506 impl KhrExtension275Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18507     pub fn load<F>(mut _f: F) -> Self
18508     where
18509         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18510     {
18511         Self {}
18512     }
18513 }
18514 impl KhrExtension276Fn {
name() -> &'static ::std::ffi::CStr18515     pub fn name() -> &'static ::std::ffi::CStr {
18516         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_276\0") }
18517     }
18518     pub const SPEC_VERSION: u32 = 0u32;
18519 }
18520 #[derive(Clone)]
18521 pub struct KhrExtension276Fn {}
18522 unsafe impl Send for KhrExtension276Fn {}
18523 unsafe impl Sync for KhrExtension276Fn {}
18524 impl KhrExtension276Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18525     pub fn load<F>(mut _f: F) -> Self
18526     where
18527         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18528     {
18529         Self {}
18530     }
18531 }
18532 impl ExtShaderDemoteToHelperInvocationFn {
name() -> &'static ::std::ffi::CStr18533     pub fn name() -> &'static ::std::ffi::CStr {
18534         unsafe {
18535             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18536                 b"VK_EXT_shader_demote_to_helper_invocation\0",
18537             )
18538         }
18539     }
18540     pub const SPEC_VERSION: u32 = 1u32;
18541 }
18542 #[derive(Clone)]
18543 pub struct ExtShaderDemoteToHelperInvocationFn {}
18544 unsafe impl Send for ExtShaderDemoteToHelperInvocationFn {}
18545 unsafe impl Sync for ExtShaderDemoteToHelperInvocationFn {}
18546 impl ExtShaderDemoteToHelperInvocationFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18547     pub fn load<F>(mut _f: F) -> Self
18548     where
18549         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18550     {
18551         Self {}
18552     }
18553 }
18554 #[doc = "Generated from 'VK_EXT_shader_demote_to_helper_invocation'"]
18555 impl StructureType {
18556     pub const PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT: Self =
18557         Self(1_000_276_000);
18558 }
18559 impl NvDeviceGeneratedCommandsFn {
name() -> &'static ::std::ffi::CStr18560     pub fn name() -> &'static ::std::ffi::CStr {
18561         unsafe {
18562             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_device_generated_commands\0")
18563         }
18564     }
18565     pub const SPEC_VERSION: u32 = 3u32;
18566 }
18567 #[allow(non_camel_case_types)]
18568 pub type PFN_vkGetGeneratedCommandsMemoryRequirementsNV = unsafe extern "system" fn(
18569     device: Device,
18570     p_info: *const GeneratedCommandsMemoryRequirementsInfoNV,
18571     p_memory_requirements: *mut MemoryRequirements2,
18572 );
18573 #[allow(non_camel_case_types)]
18574 pub type PFN_vkCmdPreprocessGeneratedCommandsNV = unsafe extern "system" fn(
18575     command_buffer: CommandBuffer,
18576     p_generated_commands_info: *const GeneratedCommandsInfoNV,
18577 );
18578 #[allow(non_camel_case_types)]
18579 pub type PFN_vkCmdExecuteGeneratedCommandsNV = unsafe extern "system" fn(
18580     command_buffer: CommandBuffer,
18581     is_preprocessed: Bool32,
18582     p_generated_commands_info: *const GeneratedCommandsInfoNV,
18583 );
18584 #[allow(non_camel_case_types)]
18585 pub type PFN_vkCmdBindPipelineShaderGroupNV = unsafe extern "system" fn(
18586     command_buffer: CommandBuffer,
18587     pipeline_bind_point: PipelineBindPoint,
18588     pipeline: Pipeline,
18589     group_index: u32,
18590 );
18591 #[allow(non_camel_case_types)]
18592 pub type PFN_vkCreateIndirectCommandsLayoutNV = unsafe extern "system" fn(
18593     device: Device,
18594     p_create_info: *const IndirectCommandsLayoutCreateInfoNV,
18595     p_allocator: *const AllocationCallbacks,
18596     p_indirect_commands_layout: *mut IndirectCommandsLayoutNV,
18597 ) -> Result;
18598 #[allow(non_camel_case_types)]
18599 pub type PFN_vkDestroyIndirectCommandsLayoutNV = unsafe extern "system" fn(
18600     device: Device,
18601     indirect_commands_layout: IndirectCommandsLayoutNV,
18602     p_allocator: *const AllocationCallbacks,
18603 );
18604 #[derive(Clone)]
18605 pub struct NvDeviceGeneratedCommandsFn {
18606     pub get_generated_commands_memory_requirements_nv:
18607         PFN_vkGetGeneratedCommandsMemoryRequirementsNV,
18608     pub cmd_preprocess_generated_commands_nv: PFN_vkCmdPreprocessGeneratedCommandsNV,
18609     pub cmd_execute_generated_commands_nv: PFN_vkCmdExecuteGeneratedCommandsNV,
18610     pub cmd_bind_pipeline_shader_group_nv: PFN_vkCmdBindPipelineShaderGroupNV,
18611     pub create_indirect_commands_layout_nv: PFN_vkCreateIndirectCommandsLayoutNV,
18612     pub destroy_indirect_commands_layout_nv: PFN_vkDestroyIndirectCommandsLayoutNV,
18613 }
18614 unsafe impl Send for NvDeviceGeneratedCommandsFn {}
18615 unsafe impl Sync for NvDeviceGeneratedCommandsFn {}
18616 impl NvDeviceGeneratedCommandsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18617     pub fn load<F>(mut _f: F) -> Self
18618     where
18619         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18620     {
18621         Self {
18622             get_generated_commands_memory_requirements_nv: unsafe {
18623                 unsafe extern "system" fn get_generated_commands_memory_requirements_nv(
18624                     _device: Device,
18625                     _p_info: *const GeneratedCommandsMemoryRequirementsInfoNV,
18626                     _p_memory_requirements: *mut MemoryRequirements2,
18627                 ) {
18628                     panic!(concat!(
18629                         "Unable to load ",
18630                         stringify!(get_generated_commands_memory_requirements_nv)
18631                     ))
18632                 }
18633                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18634                     b"vkGetGeneratedCommandsMemoryRequirementsNV\0",
18635                 );
18636                 let val = _f(cname);
18637                 if val.is_null() {
18638                     get_generated_commands_memory_requirements_nv
18639                 } else {
18640                     ::std::mem::transmute(val)
18641                 }
18642             },
18643             cmd_preprocess_generated_commands_nv: unsafe {
18644                 unsafe extern "system" fn cmd_preprocess_generated_commands_nv(
18645                     _command_buffer: CommandBuffer,
18646                     _p_generated_commands_info: *const GeneratedCommandsInfoNV,
18647                 ) {
18648                     panic!(concat!(
18649                         "Unable to load ",
18650                         stringify!(cmd_preprocess_generated_commands_nv)
18651                     ))
18652                 }
18653                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18654                     b"vkCmdPreprocessGeneratedCommandsNV\0",
18655                 );
18656                 let val = _f(cname);
18657                 if val.is_null() {
18658                     cmd_preprocess_generated_commands_nv
18659                 } else {
18660                     ::std::mem::transmute(val)
18661                 }
18662             },
18663             cmd_execute_generated_commands_nv: unsafe {
18664                 unsafe extern "system" fn cmd_execute_generated_commands_nv(
18665                     _command_buffer: CommandBuffer,
18666                     _is_preprocessed: Bool32,
18667                     _p_generated_commands_info: *const GeneratedCommandsInfoNV,
18668                 ) {
18669                     panic!(concat!(
18670                         "Unable to load ",
18671                         stringify!(cmd_execute_generated_commands_nv)
18672                     ))
18673                 }
18674                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18675                     b"vkCmdExecuteGeneratedCommandsNV\0",
18676                 );
18677                 let val = _f(cname);
18678                 if val.is_null() {
18679                     cmd_execute_generated_commands_nv
18680                 } else {
18681                     ::std::mem::transmute(val)
18682                 }
18683             },
18684             cmd_bind_pipeline_shader_group_nv: unsafe {
18685                 unsafe extern "system" fn cmd_bind_pipeline_shader_group_nv(
18686                     _command_buffer: CommandBuffer,
18687                     _pipeline_bind_point: PipelineBindPoint,
18688                     _pipeline: Pipeline,
18689                     _group_index: u32,
18690                 ) {
18691                     panic!(concat!(
18692                         "Unable to load ",
18693                         stringify!(cmd_bind_pipeline_shader_group_nv)
18694                     ))
18695                 }
18696                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18697                     b"vkCmdBindPipelineShaderGroupNV\0",
18698                 );
18699                 let val = _f(cname);
18700                 if val.is_null() {
18701                     cmd_bind_pipeline_shader_group_nv
18702                 } else {
18703                     ::std::mem::transmute(val)
18704                 }
18705             },
18706             create_indirect_commands_layout_nv: unsafe {
18707                 unsafe extern "system" fn create_indirect_commands_layout_nv(
18708                     _device: Device,
18709                     _p_create_info: *const IndirectCommandsLayoutCreateInfoNV,
18710                     _p_allocator: *const AllocationCallbacks,
18711                     _p_indirect_commands_layout: *mut IndirectCommandsLayoutNV,
18712                 ) -> Result {
18713                     panic!(concat!(
18714                         "Unable to load ",
18715                         stringify!(create_indirect_commands_layout_nv)
18716                     ))
18717                 }
18718                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18719                     b"vkCreateIndirectCommandsLayoutNV\0",
18720                 );
18721                 let val = _f(cname);
18722                 if val.is_null() {
18723                     create_indirect_commands_layout_nv
18724                 } else {
18725                     ::std::mem::transmute(val)
18726                 }
18727             },
18728             destroy_indirect_commands_layout_nv: unsafe {
18729                 unsafe extern "system" fn destroy_indirect_commands_layout_nv(
18730                     _device: Device,
18731                     _indirect_commands_layout: IndirectCommandsLayoutNV,
18732                     _p_allocator: *const AllocationCallbacks,
18733                 ) {
18734                     panic!(concat!(
18735                         "Unable to load ",
18736                         stringify!(destroy_indirect_commands_layout_nv)
18737                     ))
18738                 }
18739                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
18740                     b"vkDestroyIndirectCommandsLayoutNV\0",
18741                 );
18742                 let val = _f(cname);
18743                 if val.is_null() {
18744                     destroy_indirect_commands_layout_nv
18745                 } else {
18746                     ::std::mem::transmute(val)
18747                 }
18748             },
18749         }
18750     }
18751     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetGeneratedCommandsMemoryRequirementsNV.html>"]
get_generated_commands_memory_requirements_nv( &self, device: Device, p_info: *const GeneratedCommandsMemoryRequirementsInfoNV, p_memory_requirements: *mut MemoryRequirements2, )18752     pub unsafe fn get_generated_commands_memory_requirements_nv(
18753         &self,
18754         device: Device,
18755         p_info: *const GeneratedCommandsMemoryRequirementsInfoNV,
18756         p_memory_requirements: *mut MemoryRequirements2,
18757     ) {
18758         (self.get_generated_commands_memory_requirements_nv)(device, p_info, p_memory_requirements)
18759     }
18760     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdPreprocessGeneratedCommandsNV.html>"]
cmd_preprocess_generated_commands_nv( &self, command_buffer: CommandBuffer, p_generated_commands_info: *const GeneratedCommandsInfoNV, )18761     pub unsafe fn cmd_preprocess_generated_commands_nv(
18762         &self,
18763         command_buffer: CommandBuffer,
18764         p_generated_commands_info: *const GeneratedCommandsInfoNV,
18765     ) {
18766         (self.cmd_preprocess_generated_commands_nv)(command_buffer, p_generated_commands_info)
18767     }
18768     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdExecuteGeneratedCommandsNV.html>"]
cmd_execute_generated_commands_nv( &self, command_buffer: CommandBuffer, is_preprocessed: Bool32, p_generated_commands_info: *const GeneratedCommandsInfoNV, )18769     pub unsafe fn cmd_execute_generated_commands_nv(
18770         &self,
18771         command_buffer: CommandBuffer,
18772         is_preprocessed: Bool32,
18773         p_generated_commands_info: *const GeneratedCommandsInfoNV,
18774     ) {
18775         (self.cmd_execute_generated_commands_nv)(
18776             command_buffer,
18777             is_preprocessed,
18778             p_generated_commands_info,
18779         )
18780     }
18781     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBindPipelineShaderGroupNV.html>"]
cmd_bind_pipeline_shader_group_nv( &self, command_buffer: CommandBuffer, pipeline_bind_point: PipelineBindPoint, pipeline: Pipeline, group_index: u32, )18782     pub unsafe fn cmd_bind_pipeline_shader_group_nv(
18783         &self,
18784         command_buffer: CommandBuffer,
18785         pipeline_bind_point: PipelineBindPoint,
18786         pipeline: Pipeline,
18787         group_index: u32,
18788     ) {
18789         (self.cmd_bind_pipeline_shader_group_nv)(
18790             command_buffer,
18791             pipeline_bind_point,
18792             pipeline,
18793             group_index,
18794         )
18795     }
18796     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateIndirectCommandsLayoutNV.html>"]
create_indirect_commands_layout_nv( &self, device: Device, p_create_info: *const IndirectCommandsLayoutCreateInfoNV, p_allocator: *const AllocationCallbacks, p_indirect_commands_layout: *mut IndirectCommandsLayoutNV, ) -> Result18797     pub unsafe fn create_indirect_commands_layout_nv(
18798         &self,
18799         device: Device,
18800         p_create_info: *const IndirectCommandsLayoutCreateInfoNV,
18801         p_allocator: *const AllocationCallbacks,
18802         p_indirect_commands_layout: *mut IndirectCommandsLayoutNV,
18803     ) -> Result {
18804         (self.create_indirect_commands_layout_nv)(
18805             device,
18806             p_create_info,
18807             p_allocator,
18808             p_indirect_commands_layout,
18809         )
18810     }
18811     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroyIndirectCommandsLayoutNV.html>"]
destroy_indirect_commands_layout_nv( &self, device: Device, indirect_commands_layout: IndirectCommandsLayoutNV, p_allocator: *const AllocationCallbacks, )18812     pub unsafe fn destroy_indirect_commands_layout_nv(
18813         &self,
18814         device: Device,
18815         indirect_commands_layout: IndirectCommandsLayoutNV,
18816         p_allocator: *const AllocationCallbacks,
18817     ) {
18818         (self.destroy_indirect_commands_layout_nv)(device, indirect_commands_layout, p_allocator)
18819     }
18820 }
18821 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
18822 impl AccessFlags {
18823     pub const COMMAND_PREPROCESS_READ_NV: Self = Self(0b10_0000_0000_0000_0000);
18824     pub const COMMAND_PREPROCESS_WRITE_NV: Self = Self(0b100_0000_0000_0000_0000);
18825 }
18826 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
18827 impl ObjectType {
18828     pub const INDIRECT_COMMANDS_LAYOUT_NV: Self = Self(1_000_277_000);
18829 }
18830 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
18831 impl PipelineCreateFlags {
18832     pub const INDIRECT_BINDABLE_NV: Self = Self(0b100_0000_0000_0000_0000);
18833 }
18834 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
18835 impl PipelineStageFlags {
18836     pub const COMMAND_PREPROCESS_NV: Self = Self(0b10_0000_0000_0000_0000);
18837 }
18838 #[doc = "Generated from 'VK_NV_device_generated_commands'"]
18839 impl StructureType {
18840     pub const PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: Self = Self(1_000_277_000);
18841     pub const GRAPHICS_SHADER_GROUP_CREATE_INFO_NV: Self = Self(1_000_277_001);
18842     pub const GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: Self = Self(1_000_277_002);
18843     pub const INDIRECT_COMMANDS_LAYOUT_TOKEN_NV: Self = Self(1_000_277_003);
18844     pub const INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV: Self = Self(1_000_277_004);
18845     pub const GENERATED_COMMANDS_INFO_NV: Self = Self(1_000_277_005);
18846     pub const GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV: Self = Self(1_000_277_006);
18847     pub const PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: Self = Self(1_000_277_007);
18848 }
18849 impl NvInheritedViewportScissorFn {
name() -> &'static ::std::ffi::CStr18850     pub fn name() -> &'static ::std::ffi::CStr {
18851         unsafe {
18852             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_inherited_viewport_scissor\0")
18853         }
18854     }
18855     pub const SPEC_VERSION: u32 = 1u32;
18856 }
18857 #[derive(Clone)]
18858 pub struct NvInheritedViewportScissorFn {}
18859 unsafe impl Send for NvInheritedViewportScissorFn {}
18860 unsafe impl Sync for NvInheritedViewportScissorFn {}
18861 impl NvInheritedViewportScissorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18862     pub fn load<F>(mut _f: F) -> Self
18863     where
18864         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18865     {
18866         Self {}
18867     }
18868 }
18869 #[doc = "Generated from 'VK_NV_inherited_viewport_scissor'"]
18870 impl StructureType {
18871     pub const PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: Self = Self(1_000_278_000);
18872     pub const COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: Self = Self(1_000_278_001);
18873 }
18874 impl KhrExtension280Fn {
name() -> &'static ::std::ffi::CStr18875     pub fn name() -> &'static ::std::ffi::CStr {
18876         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_280\0") }
18877     }
18878     pub const SPEC_VERSION: u32 = 0u32;
18879 }
18880 #[derive(Clone)]
18881 pub struct KhrExtension280Fn {}
18882 unsafe impl Send for KhrExtension280Fn {}
18883 unsafe impl Sync for KhrExtension280Fn {}
18884 impl KhrExtension280Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18885     pub fn load<F>(mut _f: F) -> Self
18886     where
18887         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18888     {
18889         Self {}
18890     }
18891 }
18892 impl KhrShaderIntegerDotProductFn {
name() -> &'static ::std::ffi::CStr18893     pub fn name() -> &'static ::std::ffi::CStr {
18894         unsafe {
18895             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_integer_dot_product\0")
18896         }
18897     }
18898     pub const SPEC_VERSION: u32 = 1u32;
18899 }
18900 #[derive(Clone)]
18901 pub struct KhrShaderIntegerDotProductFn {}
18902 unsafe impl Send for KhrShaderIntegerDotProductFn {}
18903 unsafe impl Sync for KhrShaderIntegerDotProductFn {}
18904 impl KhrShaderIntegerDotProductFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18905     pub fn load<F>(mut _f: F) -> Self
18906     where
18907         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18908     {
18909         Self {}
18910     }
18911 }
18912 #[doc = "Generated from 'VK_KHR_shader_integer_dot_product'"]
18913 impl StructureType {
18914     pub const PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR: Self = Self(1_000_280_000);
18915     pub const PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR: Self = Self(1_000_280_001);
18916 }
18917 impl ExtTexelBufferAlignmentFn {
name() -> &'static ::std::ffi::CStr18918     pub fn name() -> &'static ::std::ffi::CStr {
18919         unsafe {
18920             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_texel_buffer_alignment\0")
18921         }
18922     }
18923     pub const SPEC_VERSION: u32 = 1u32;
18924 }
18925 #[derive(Clone)]
18926 pub struct ExtTexelBufferAlignmentFn {}
18927 unsafe impl Send for ExtTexelBufferAlignmentFn {}
18928 unsafe impl Sync for ExtTexelBufferAlignmentFn {}
18929 impl ExtTexelBufferAlignmentFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18930     pub fn load<F>(mut _f: F) -> Self
18931     where
18932         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18933     {
18934         Self {}
18935     }
18936 }
18937 #[doc = "Generated from 'VK_EXT_texel_buffer_alignment'"]
18938 impl StructureType {
18939     pub const PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: Self = Self(1_000_281_000);
18940     pub const PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT: Self = Self(1_000_281_001);
18941 }
18942 impl QcomRenderPassTransformFn {
name() -> &'static ::std::ffi::CStr18943     pub fn name() -> &'static ::std::ffi::CStr {
18944         unsafe {
18945             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_render_pass_transform\0")
18946         }
18947     }
18948     pub const SPEC_VERSION: u32 = 2u32;
18949 }
18950 #[derive(Clone)]
18951 pub struct QcomRenderPassTransformFn {}
18952 unsafe impl Send for QcomRenderPassTransformFn {}
18953 unsafe impl Sync for QcomRenderPassTransformFn {}
18954 impl QcomRenderPassTransformFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18955     pub fn load<F>(mut _f: F) -> Self
18956     where
18957         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18958     {
18959         Self {}
18960     }
18961 }
18962 #[doc = "Generated from 'VK_QCOM_render_pass_transform'"]
18963 impl RenderPassCreateFlags {
18964     pub const TRANSFORM_QCOM: Self = Self(0b10);
18965 }
18966 #[doc = "Generated from 'VK_QCOM_render_pass_transform'"]
18967 impl StructureType {
18968     pub const COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: Self =
18969         Self(1_000_282_000);
18970     pub const RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: Self = Self(1_000_282_001);
18971 }
18972 impl ExtExtension284Fn {
name() -> &'static ::std::ffi::CStr18973     pub fn name() -> &'static ::std::ffi::CStr {
18974         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_284\0") }
18975     }
18976     pub const SPEC_VERSION: u32 = 0u32;
18977 }
18978 #[derive(Clone)]
18979 pub struct ExtExtension284Fn {}
18980 unsafe impl Send for ExtExtension284Fn {}
18981 unsafe impl Sync for ExtExtension284Fn {}
18982 impl ExtExtension284Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,18983     pub fn load<F>(mut _f: F) -> Self
18984     where
18985         F: FnMut(&::std::ffi::CStr) -> *const c_void,
18986     {
18987         Self {}
18988     }
18989 }
18990 impl ExtDeviceMemoryReportFn {
name() -> &'static ::std::ffi::CStr18991     pub fn name() -> &'static ::std::ffi::CStr {
18992         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_device_memory_report\0") }
18993     }
18994     pub const SPEC_VERSION: u32 = 2u32;
18995 }
18996 #[derive(Clone)]
18997 pub struct ExtDeviceMemoryReportFn {}
18998 unsafe impl Send for ExtDeviceMemoryReportFn {}
18999 unsafe impl Sync for ExtDeviceMemoryReportFn {}
19000 impl ExtDeviceMemoryReportFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19001     pub fn load<F>(mut _f: F) -> Self
19002     where
19003         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19004     {
19005         Self {}
19006     }
19007 }
19008 #[doc = "Generated from 'VK_EXT_device_memory_report'"]
19009 impl StructureType {
19010     pub const PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: Self = Self(1_000_284_000);
19011     pub const DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: Self = Self(1_000_284_001);
19012     pub const DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT: Self = Self(1_000_284_002);
19013 }
19014 impl ExtAcquireDrmDisplayFn {
name() -> &'static ::std::ffi::CStr19015     pub fn name() -> &'static ::std::ffi::CStr {
19016         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_acquire_drm_display\0") }
19017     }
19018     pub const SPEC_VERSION: u32 = 1u32;
19019 }
19020 #[allow(non_camel_case_types)]
19021 pub type PFN_vkAcquireDrmDisplayEXT = unsafe extern "system" fn(
19022     physical_device: PhysicalDevice,
19023     drm_fd: i32,
19024     display: DisplayKHR,
19025 ) -> Result;
19026 #[allow(non_camel_case_types)]
19027 pub type PFN_vkGetDrmDisplayEXT = unsafe extern "system" fn(
19028     physical_device: PhysicalDevice,
19029     drm_fd: i32,
19030     connector_id: u32,
19031     display: *mut DisplayKHR,
19032 ) -> Result;
19033 #[derive(Clone)]
19034 pub struct ExtAcquireDrmDisplayFn {
19035     pub acquire_drm_display_ext: PFN_vkAcquireDrmDisplayEXT,
19036     pub get_drm_display_ext: PFN_vkGetDrmDisplayEXT,
19037 }
19038 unsafe impl Send for ExtAcquireDrmDisplayFn {}
19039 unsafe impl Sync for ExtAcquireDrmDisplayFn {}
19040 impl ExtAcquireDrmDisplayFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19041     pub fn load<F>(mut _f: F) -> Self
19042     where
19043         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19044     {
19045         Self {
19046             acquire_drm_display_ext: unsafe {
19047                 unsafe extern "system" fn acquire_drm_display_ext(
19048                     _physical_device: PhysicalDevice,
19049                     _drm_fd: i32,
19050                     _display: DisplayKHR,
19051                 ) -> Result {
19052                     panic!(concat!(
19053                         "Unable to load ",
19054                         stringify!(acquire_drm_display_ext)
19055                     ))
19056                 }
19057                 let cname =
19058                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireDrmDisplayEXT\0");
19059                 let val = _f(cname);
19060                 if val.is_null() {
19061                     acquire_drm_display_ext
19062                 } else {
19063                     ::std::mem::transmute(val)
19064                 }
19065             },
19066             get_drm_display_ext: unsafe {
19067                 unsafe extern "system" fn get_drm_display_ext(
19068                     _physical_device: PhysicalDevice,
19069                     _drm_fd: i32,
19070                     _connector_id: u32,
19071                     _display: *mut DisplayKHR,
19072                 ) -> Result {
19073                     panic!(concat!("Unable to load ", stringify!(get_drm_display_ext)))
19074                 }
19075                 let cname =
19076                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetDrmDisplayEXT\0");
19077                 let val = _f(cname);
19078                 if val.is_null() {
19079                     get_drm_display_ext
19080                 } else {
19081                     ::std::mem::transmute(val)
19082                 }
19083             },
19084         }
19085     }
19086     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkAcquireDrmDisplayEXT.html>"]
acquire_drm_display_ext( &self, physical_device: PhysicalDevice, drm_fd: i32, display: DisplayKHR, ) -> Result19087     pub unsafe fn acquire_drm_display_ext(
19088         &self,
19089         physical_device: PhysicalDevice,
19090         drm_fd: i32,
19091         display: DisplayKHR,
19092     ) -> Result {
19093         (self.acquire_drm_display_ext)(physical_device, drm_fd, display)
19094     }
19095     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDrmDisplayEXT.html>"]
get_drm_display_ext( &self, physical_device: PhysicalDevice, drm_fd: i32, connector_id: u32, display: *mut DisplayKHR, ) -> Result19096     pub unsafe fn get_drm_display_ext(
19097         &self,
19098         physical_device: PhysicalDevice,
19099         drm_fd: i32,
19100         connector_id: u32,
19101         display: *mut DisplayKHR,
19102     ) -> Result {
19103         (self.get_drm_display_ext)(physical_device, drm_fd, connector_id, display)
19104     }
19105 }
19106 impl ExtRobustness2Fn {
name() -> &'static ::std::ffi::CStr19107     pub fn name() -> &'static ::std::ffi::CStr {
19108         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_robustness2\0") }
19109     }
19110     pub const SPEC_VERSION: u32 = 1u32;
19111 }
19112 #[derive(Clone)]
19113 pub struct ExtRobustness2Fn {}
19114 unsafe impl Send for ExtRobustness2Fn {}
19115 unsafe impl Sync for ExtRobustness2Fn {}
19116 impl ExtRobustness2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19117     pub fn load<F>(mut _f: F) -> Self
19118     where
19119         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19120     {
19121         Self {}
19122     }
19123 }
19124 #[doc = "Generated from 'VK_EXT_robustness2'"]
19125 impl StructureType {
19126     pub const PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: Self = Self(1_000_286_000);
19127     pub const PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: Self = Self(1_000_286_001);
19128 }
19129 impl ExtCustomBorderColorFn {
name() -> &'static ::std::ffi::CStr19130     pub fn name() -> &'static ::std::ffi::CStr {
19131         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_custom_border_color\0") }
19132     }
19133     pub const SPEC_VERSION: u32 = 12u32;
19134 }
19135 #[derive(Clone)]
19136 pub struct ExtCustomBorderColorFn {}
19137 unsafe impl Send for ExtCustomBorderColorFn {}
19138 unsafe impl Sync for ExtCustomBorderColorFn {}
19139 impl ExtCustomBorderColorFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19140     pub fn load<F>(mut _f: F) -> Self
19141     where
19142         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19143     {
19144         Self {}
19145     }
19146 }
19147 #[doc = "Generated from 'VK_EXT_custom_border_color'"]
19148 impl BorderColor {
19149     pub const FLOAT_CUSTOM_EXT: Self = Self(1_000_287_003);
19150     pub const INT_CUSTOM_EXT: Self = Self(1_000_287_004);
19151 }
19152 #[doc = "Generated from 'VK_EXT_custom_border_color'"]
19153 impl StructureType {
19154     pub const SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: Self = Self(1_000_287_000);
19155     pub const PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: Self = Self(1_000_287_001);
19156     pub const PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: Self = Self(1_000_287_002);
19157 }
19158 impl ExtExtension289Fn {
name() -> &'static ::std::ffi::CStr19159     pub fn name() -> &'static ::std::ffi::CStr {
19160         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_289\0") }
19161     }
19162     pub const SPEC_VERSION: u32 = 0u32;
19163 }
19164 #[derive(Clone)]
19165 pub struct ExtExtension289Fn {}
19166 unsafe impl Send for ExtExtension289Fn {}
19167 unsafe impl Sync for ExtExtension289Fn {}
19168 impl ExtExtension289Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19169     pub fn load<F>(mut _f: F) -> Self
19170     where
19171         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19172     {
19173         Self {}
19174     }
19175 }
19176 #[doc = "Generated from 'VK_EXT_extension_289'"]
19177 impl Format {
19178     pub const ASTC_3X3X3_UNORM_BLOCK_EXT: Self = Self(1_000_288_000);
19179     pub const ASTC_3X3X3_SRGB_BLOCK_EXT: Self = Self(1_000_288_001);
19180     pub const ASTC_3X3X3_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_002);
19181     pub const ASTC_4X3X3_UNORM_BLOCK_EXT: Self = Self(1_000_288_003);
19182     pub const ASTC_4X3X3_SRGB_BLOCK_EXT: Self = Self(1_000_288_004);
19183     pub const ASTC_4X3X3_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_005);
19184     pub const ASTC_4X4X3_UNORM_BLOCK_EXT: Self = Self(1_000_288_006);
19185     pub const ASTC_4X4X3_SRGB_BLOCK_EXT: Self = Self(1_000_288_007);
19186     pub const ASTC_4X4X3_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_008);
19187     pub const ASTC_4X4X4_UNORM_BLOCK_EXT: Self = Self(1_000_288_009);
19188     pub const ASTC_4X4X4_SRGB_BLOCK_EXT: Self = Self(1_000_288_010);
19189     pub const ASTC_4X4X4_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_011);
19190     pub const ASTC_5X4X4_UNORM_BLOCK_EXT: Self = Self(1_000_288_012);
19191     pub const ASTC_5X4X4_SRGB_BLOCK_EXT: Self = Self(1_000_288_013);
19192     pub const ASTC_5X4X4_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_014);
19193     pub const ASTC_5X5X4_UNORM_BLOCK_EXT: Self = Self(1_000_288_015);
19194     pub const ASTC_5X5X4_SRGB_BLOCK_EXT: Self = Self(1_000_288_016);
19195     pub const ASTC_5X5X4_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_017);
19196     pub const ASTC_5X5X5_UNORM_BLOCK_EXT: Self = Self(1_000_288_018);
19197     pub const ASTC_5X5X5_SRGB_BLOCK_EXT: Self = Self(1_000_288_019);
19198     pub const ASTC_5X5X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_020);
19199     pub const ASTC_6X5X5_UNORM_BLOCK_EXT: Self = Self(1_000_288_021);
19200     pub const ASTC_6X5X5_SRGB_BLOCK_EXT: Self = Self(1_000_288_022);
19201     pub const ASTC_6X5X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_023);
19202     pub const ASTC_6X6X5_UNORM_BLOCK_EXT: Self = Self(1_000_288_024);
19203     pub const ASTC_6X6X5_SRGB_BLOCK_EXT: Self = Self(1_000_288_025);
19204     pub const ASTC_6X6X5_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_026);
19205     pub const ASTC_6X6X6_UNORM_BLOCK_EXT: Self = Self(1_000_288_027);
19206     pub const ASTC_6X6X6_SRGB_BLOCK_EXT: Self = Self(1_000_288_028);
19207     pub const ASTC_6X6X6_SFLOAT_BLOCK_EXT: Self = Self(1_000_288_029);
19208 }
19209 impl GoogleUserTypeFn {
name() -> &'static ::std::ffi::CStr19210     pub fn name() -> &'static ::std::ffi::CStr {
19211         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_user_type\0") }
19212     }
19213     pub const SPEC_VERSION: u32 = 1u32;
19214 }
19215 #[derive(Clone)]
19216 pub struct GoogleUserTypeFn {}
19217 unsafe impl Send for GoogleUserTypeFn {}
19218 unsafe impl Sync for GoogleUserTypeFn {}
19219 impl GoogleUserTypeFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19220     pub fn load<F>(mut _f: F) -> Self
19221     where
19222         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19223     {
19224         Self {}
19225     }
19226 }
19227 impl KhrPipelineLibraryFn {
name() -> &'static ::std::ffi::CStr19228     pub fn name() -> &'static ::std::ffi::CStr {
19229         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_pipeline_library\0") }
19230     }
19231     pub const SPEC_VERSION: u32 = 1u32;
19232 }
19233 #[derive(Clone)]
19234 pub struct KhrPipelineLibraryFn {}
19235 unsafe impl Send for KhrPipelineLibraryFn {}
19236 unsafe impl Sync for KhrPipelineLibraryFn {}
19237 impl KhrPipelineLibraryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19238     pub fn load<F>(mut _f: F) -> Self
19239     where
19240         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19241     {
19242         Self {}
19243     }
19244 }
19245 #[doc = "Generated from 'VK_KHR_pipeline_library'"]
19246 impl PipelineCreateFlags {
19247     pub const LIBRARY_KHR: Self = Self(0b1000_0000_0000);
19248 }
19249 #[doc = "Generated from 'VK_KHR_pipeline_library'"]
19250 impl StructureType {
19251     pub const PIPELINE_LIBRARY_CREATE_INFO_KHR: Self = Self(1_000_290_000);
19252 }
19253 impl NvExtension292Fn {
name() -> &'static ::std::ffi::CStr19254     pub fn name() -> &'static ::std::ffi::CStr {
19255         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_292\0") }
19256     }
19257     pub const SPEC_VERSION: u32 = 0u32;
19258 }
19259 #[derive(Clone)]
19260 pub struct NvExtension292Fn {}
19261 unsafe impl Send for NvExtension292Fn {}
19262 unsafe impl Sync for NvExtension292Fn {}
19263 impl NvExtension292Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19264     pub fn load<F>(mut _f: F) -> Self
19265     where
19266         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19267     {
19268         Self {}
19269     }
19270 }
19271 impl NvExtension293Fn {
name() -> &'static ::std::ffi::CStr19272     pub fn name() -> &'static ::std::ffi::CStr {
19273         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_293\0") }
19274     }
19275     pub const SPEC_VERSION: u32 = 0u32;
19276 }
19277 #[derive(Clone)]
19278 pub struct NvExtension293Fn {}
19279 unsafe impl Send for NvExtension293Fn {}
19280 unsafe impl Sync for NvExtension293Fn {}
19281 impl NvExtension293Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19282     pub fn load<F>(mut _f: F) -> Self
19283     where
19284         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19285     {
19286         Self {}
19287     }
19288 }
19289 impl KhrShaderNonSemanticInfoFn {
name() -> &'static ::std::ffi::CStr19290     pub fn name() -> &'static ::std::ffi::CStr {
19291         unsafe {
19292             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_shader_non_semantic_info\0")
19293         }
19294     }
19295     pub const SPEC_VERSION: u32 = 1u32;
19296 }
19297 #[derive(Clone)]
19298 pub struct KhrShaderNonSemanticInfoFn {}
19299 unsafe impl Send for KhrShaderNonSemanticInfoFn {}
19300 unsafe impl Sync for KhrShaderNonSemanticInfoFn {}
19301 impl KhrShaderNonSemanticInfoFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19302     pub fn load<F>(mut _f: F) -> Self
19303     where
19304         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19305     {
19306         Self {}
19307     }
19308 }
19309 impl KhrPresentIdFn {
name() -> &'static ::std::ffi::CStr19310     pub fn name() -> &'static ::std::ffi::CStr {
19311         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_present_id\0") }
19312     }
19313     pub const SPEC_VERSION: u32 = 1u32;
19314 }
19315 #[derive(Clone)]
19316 pub struct KhrPresentIdFn {}
19317 unsafe impl Send for KhrPresentIdFn {}
19318 unsafe impl Sync for KhrPresentIdFn {}
19319 impl KhrPresentIdFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19320     pub fn load<F>(mut _f: F) -> Self
19321     where
19322         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19323     {
19324         Self {}
19325     }
19326 }
19327 #[doc = "Generated from 'VK_KHR_present_id'"]
19328 impl StructureType {
19329     pub const PRESENT_ID_KHR: Self = Self(1_000_294_000);
19330     pub const PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR: Self = Self(1_000_294_001);
19331 }
19332 impl ExtPrivateDataFn {
name() -> &'static ::std::ffi::CStr19333     pub fn name() -> &'static ::std::ffi::CStr {
19334         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_private_data\0") }
19335     }
19336     pub const SPEC_VERSION: u32 = 1u32;
19337 }
19338 #[allow(non_camel_case_types)]
19339 pub type PFN_vkCreatePrivateDataSlotEXT = unsafe extern "system" fn(
19340     device: Device,
19341     p_create_info: *const PrivateDataSlotCreateInfoEXT,
19342     p_allocator: *const AllocationCallbacks,
19343     p_private_data_slot: *mut PrivateDataSlotEXT,
19344 ) -> Result;
19345 #[allow(non_camel_case_types)]
19346 pub type PFN_vkDestroyPrivateDataSlotEXT = unsafe extern "system" fn(
19347     device: Device,
19348     private_data_slot: PrivateDataSlotEXT,
19349     p_allocator: *const AllocationCallbacks,
19350 );
19351 #[allow(non_camel_case_types)]
19352 pub type PFN_vkSetPrivateDataEXT = unsafe extern "system" fn(
19353     device: Device,
19354     object_type: ObjectType,
19355     object_handle: u64,
19356     private_data_slot: PrivateDataSlotEXT,
19357     data: u64,
19358 ) -> Result;
19359 #[allow(non_camel_case_types)]
19360 pub type PFN_vkGetPrivateDataEXT = unsafe extern "system" fn(
19361     device: Device,
19362     object_type: ObjectType,
19363     object_handle: u64,
19364     private_data_slot: PrivateDataSlotEXT,
19365     p_data: *mut u64,
19366 );
19367 #[derive(Clone)]
19368 pub struct ExtPrivateDataFn {
19369     pub create_private_data_slot_ext: PFN_vkCreatePrivateDataSlotEXT,
19370     pub destroy_private_data_slot_ext: PFN_vkDestroyPrivateDataSlotEXT,
19371     pub set_private_data_ext: PFN_vkSetPrivateDataEXT,
19372     pub get_private_data_ext: PFN_vkGetPrivateDataEXT,
19373 }
19374 unsafe impl Send for ExtPrivateDataFn {}
19375 unsafe impl Sync for ExtPrivateDataFn {}
19376 impl ExtPrivateDataFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19377     pub fn load<F>(mut _f: F) -> Self
19378     where
19379         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19380     {
19381         Self {
19382             create_private_data_slot_ext: unsafe {
19383                 unsafe extern "system" fn create_private_data_slot_ext(
19384                     _device: Device,
19385                     _p_create_info: *const PrivateDataSlotCreateInfoEXT,
19386                     _p_allocator: *const AllocationCallbacks,
19387                     _p_private_data_slot: *mut PrivateDataSlotEXT,
19388                 ) -> Result {
19389                     panic!(concat!(
19390                         "Unable to load ",
19391                         stringify!(create_private_data_slot_ext)
19392                     ))
19393                 }
19394                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19395                     b"vkCreatePrivateDataSlotEXT\0",
19396                 );
19397                 let val = _f(cname);
19398                 if val.is_null() {
19399                     create_private_data_slot_ext
19400                 } else {
19401                     ::std::mem::transmute(val)
19402                 }
19403             },
19404             destroy_private_data_slot_ext: unsafe {
19405                 unsafe extern "system" fn destroy_private_data_slot_ext(
19406                     _device: Device,
19407                     _private_data_slot: PrivateDataSlotEXT,
19408                     _p_allocator: *const AllocationCallbacks,
19409                 ) {
19410                     panic!(concat!(
19411                         "Unable to load ",
19412                         stringify!(destroy_private_data_slot_ext)
19413                     ))
19414                 }
19415                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19416                     b"vkDestroyPrivateDataSlotEXT\0",
19417                 );
19418                 let val = _f(cname);
19419                 if val.is_null() {
19420                     destroy_private_data_slot_ext
19421                 } else {
19422                     ::std::mem::transmute(val)
19423                 }
19424             },
19425             set_private_data_ext: unsafe {
19426                 unsafe extern "system" fn set_private_data_ext(
19427                     _device: Device,
19428                     _object_type: ObjectType,
19429                     _object_handle: u64,
19430                     _private_data_slot: PrivateDataSlotEXT,
19431                     _data: u64,
19432                 ) -> Result {
19433                     panic!(concat!("Unable to load ", stringify!(set_private_data_ext)))
19434                 }
19435                 let cname =
19436                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkSetPrivateDataEXT\0");
19437                 let val = _f(cname);
19438                 if val.is_null() {
19439                     set_private_data_ext
19440                 } else {
19441                     ::std::mem::transmute(val)
19442                 }
19443             },
19444             get_private_data_ext: unsafe {
19445                 unsafe extern "system" fn get_private_data_ext(
19446                     _device: Device,
19447                     _object_type: ObjectType,
19448                     _object_handle: u64,
19449                     _private_data_slot: PrivateDataSlotEXT,
19450                     _p_data: *mut u64,
19451                 ) {
19452                     panic!(concat!("Unable to load ", stringify!(get_private_data_ext)))
19453                 }
19454                 let cname =
19455                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetPrivateDataEXT\0");
19456                 let val = _f(cname);
19457                 if val.is_null() {
19458                     get_private_data_ext
19459                 } else {
19460                     ::std::mem::transmute(val)
19461                 }
19462             },
19463         }
19464     }
19465     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreatePrivateDataSlotEXT.html>"]
create_private_data_slot_ext( &self, device: Device, p_create_info: *const PrivateDataSlotCreateInfoEXT, p_allocator: *const AllocationCallbacks, p_private_data_slot: *mut PrivateDataSlotEXT, ) -> Result19466     pub unsafe fn create_private_data_slot_ext(
19467         &self,
19468         device: Device,
19469         p_create_info: *const PrivateDataSlotCreateInfoEXT,
19470         p_allocator: *const AllocationCallbacks,
19471         p_private_data_slot: *mut PrivateDataSlotEXT,
19472     ) -> Result {
19473         (self.create_private_data_slot_ext)(device, p_create_info, p_allocator, p_private_data_slot)
19474     }
19475     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroyPrivateDataSlotEXT.html>"]
destroy_private_data_slot_ext( &self, device: Device, private_data_slot: PrivateDataSlotEXT, p_allocator: *const AllocationCallbacks, )19476     pub unsafe fn destroy_private_data_slot_ext(
19477         &self,
19478         device: Device,
19479         private_data_slot: PrivateDataSlotEXT,
19480         p_allocator: *const AllocationCallbacks,
19481     ) {
19482         (self.destroy_private_data_slot_ext)(device, private_data_slot, p_allocator)
19483     }
19484     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkSetPrivateDataEXT.html>"]
set_private_data_ext( &self, device: Device, object_type: ObjectType, object_handle: u64, private_data_slot: PrivateDataSlotEXT, data: u64, ) -> Result19485     pub unsafe fn set_private_data_ext(
19486         &self,
19487         device: Device,
19488         object_type: ObjectType,
19489         object_handle: u64,
19490         private_data_slot: PrivateDataSlotEXT,
19491         data: u64,
19492     ) -> Result {
19493         (self.set_private_data_ext)(device, object_type, object_handle, private_data_slot, data)
19494     }
19495     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPrivateDataEXT.html>"]
get_private_data_ext( &self, device: Device, object_type: ObjectType, object_handle: u64, private_data_slot: PrivateDataSlotEXT, p_data: *mut u64, )19496     pub unsafe fn get_private_data_ext(
19497         &self,
19498         device: Device,
19499         object_type: ObjectType,
19500         object_handle: u64,
19501         private_data_slot: PrivateDataSlotEXT,
19502         p_data: *mut u64,
19503     ) {
19504         (self.get_private_data_ext)(
19505             device,
19506             object_type,
19507             object_handle,
19508             private_data_slot,
19509             p_data,
19510         )
19511     }
19512 }
19513 #[doc = "Generated from 'VK_EXT_private_data'"]
19514 impl ObjectType {
19515     pub const PRIVATE_DATA_SLOT_EXT: Self = Self(1_000_295_000);
19516 }
19517 #[doc = "Generated from 'VK_EXT_private_data'"]
19518 impl StructureType {
19519     pub const PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT: Self = Self(1_000_295_000);
19520     pub const DEVICE_PRIVATE_DATA_CREATE_INFO_EXT: Self = Self(1_000_295_001);
19521     pub const PRIVATE_DATA_SLOT_CREATE_INFO_EXT: Self = Self(1_000_295_002);
19522 }
19523 impl KhrExtension297Fn {
name() -> &'static ::std::ffi::CStr19524     pub fn name() -> &'static ::std::ffi::CStr {
19525         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_297\0") }
19526     }
19527     pub const SPEC_VERSION: u32 = 0u32;
19528 }
19529 #[derive(Clone)]
19530 pub struct KhrExtension297Fn {}
19531 unsafe impl Send for KhrExtension297Fn {}
19532 unsafe impl Sync for KhrExtension297Fn {}
19533 impl KhrExtension297Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19534     pub fn load<F>(mut _f: F) -> Self
19535     where
19536         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19537     {
19538         Self {}
19539     }
19540 }
19541 #[doc = "Generated from 'VK_KHR_extension_297'"]
19542 impl PipelineShaderStageCreateFlags {
19543     pub const RESERVED_3_KHR: Self = Self(0b1000);
19544 }
19545 impl ExtPipelineCreationCacheControlFn {
name() -> &'static ::std::ffi::CStr19546     pub fn name() -> &'static ::std::ffi::CStr {
19547         unsafe {
19548             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
19549                 b"VK_EXT_pipeline_creation_cache_control\0",
19550             )
19551         }
19552     }
19553     pub const SPEC_VERSION: u32 = 3u32;
19554 }
19555 #[derive(Clone)]
19556 pub struct ExtPipelineCreationCacheControlFn {}
19557 unsafe impl Send for ExtPipelineCreationCacheControlFn {}
19558 unsafe impl Sync for ExtPipelineCreationCacheControlFn {}
19559 impl ExtPipelineCreationCacheControlFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19560     pub fn load<F>(mut _f: F) -> Self
19561     where
19562         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19563     {
19564         Self {}
19565     }
19566 }
19567 #[doc = "Generated from 'VK_EXT_pipeline_creation_cache_control'"]
19568 impl PipelineCacheCreateFlags {
19569     pub const EXTERNALLY_SYNCHRONIZED_EXT: Self = Self(0b1);
19570 }
19571 #[doc = "Generated from 'VK_EXT_pipeline_creation_cache_control'"]
19572 impl PipelineCreateFlags {
19573     pub const FAIL_ON_PIPELINE_COMPILE_REQUIRED_EXT: Self = Self(0b1_0000_0000);
19574     pub const EARLY_RETURN_ON_FAILURE_EXT: Self = Self(0b10_0000_0000);
19575 }
19576 #[doc = "Generated from 'VK_EXT_pipeline_creation_cache_control'"]
19577 impl Result {
19578     pub const PIPELINE_COMPILE_REQUIRED_EXT: Self = Self(1_000_297_000);
19579     pub const ERROR_PIPELINE_COMPILE_REQUIRED_EXT: Self = Self::PIPELINE_COMPILE_REQUIRED_EXT;
19580 }
19581 #[doc = "Generated from 'VK_EXT_pipeline_creation_cache_control'"]
19582 impl StructureType {
19583     pub const PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT: Self =
19584         Self(1_000_297_000);
19585 }
19586 impl KhrExtension299Fn {
name() -> &'static ::std::ffi::CStr19587     pub fn name() -> &'static ::std::ffi::CStr {
19588         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_299\0") }
19589     }
19590     pub const SPEC_VERSION: u32 = 0u32;
19591 }
19592 #[derive(Clone)]
19593 pub struct KhrExtension299Fn {}
19594 unsafe impl Send for KhrExtension299Fn {}
19595 unsafe impl Sync for KhrExtension299Fn {}
19596 impl KhrExtension299Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19597     pub fn load<F>(mut _f: F) -> Self
19598     where
19599         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19600     {
19601         Self {}
19602     }
19603 }
19604 #[doc = "Generated from 'VK_KHR_extension_299'"]
19605 impl MemoryHeapFlags {
19606     pub const RESERVED_2_KHR: Self = Self(0b100);
19607 }
19608 #[doc = "Generated from 'VK_KHR_extension_299'"]
19609 impl PipelineCacheCreateFlags {
19610     pub const RESERVED_1_KHR: Self = Self::RESERVED_1_EXT;
19611     pub const RESERVED_2_KHR: Self = Self(0b100);
19612 }
19613 impl KhrVideoEncodeQueueFn {
name() -> &'static ::std::ffi::CStr19614     pub fn name() -> &'static ::std::ffi::CStr {
19615         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_video_encode_queue\0") }
19616     }
19617     pub const SPEC_VERSION: u32 = 3u32;
19618 }
19619 #[allow(non_camel_case_types)]
19620 pub type PFN_vkCmdEncodeVideoKHR = unsafe extern "system" fn(
19621     command_buffer: CommandBuffer,
19622     p_encode_info: *const VideoEncodeInfoKHR,
19623 );
19624 #[derive(Clone)]
19625 pub struct KhrVideoEncodeQueueFn {
19626     pub cmd_encode_video_khr: PFN_vkCmdEncodeVideoKHR,
19627 }
19628 unsafe impl Send for KhrVideoEncodeQueueFn {}
19629 unsafe impl Sync for KhrVideoEncodeQueueFn {}
19630 impl KhrVideoEncodeQueueFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19631     pub fn load<F>(mut _f: F) -> Self
19632     where
19633         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19634     {
19635         Self {
19636             cmd_encode_video_khr: unsafe {
19637                 unsafe extern "system" fn cmd_encode_video_khr(
19638                     _command_buffer: CommandBuffer,
19639                     _p_encode_info: *const VideoEncodeInfoKHR,
19640                 ) {
19641                     panic!(concat!("Unable to load ", stringify!(cmd_encode_video_khr)))
19642                 }
19643                 let cname =
19644                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdEncodeVideoKHR\0");
19645                 let val = _f(cname);
19646                 if val.is_null() {
19647                     cmd_encode_video_khr
19648                 } else {
19649                     ::std::mem::transmute(val)
19650                 }
19651             },
19652         }
19653     }
19654     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdEncodeVideoKHR.html>"]
cmd_encode_video_khr( &self, command_buffer: CommandBuffer, p_encode_info: *const VideoEncodeInfoKHR, )19655     pub unsafe fn cmd_encode_video_khr(
19656         &self,
19657         command_buffer: CommandBuffer,
19658         p_encode_info: *const VideoEncodeInfoKHR,
19659     ) {
19660         (self.cmd_encode_video_khr)(command_buffer, p_encode_info)
19661     }
19662 }
19663 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
19664 impl AccessFlags2KHR {
19665     pub const VIDEO_ENCODE_READ: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000);
19666     pub const VIDEO_ENCODE_WRITE: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000);
19667 }
19668 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
19669 impl BufferUsageFlags {
19670     pub const VIDEO_ENCODE_DST_KHR: Self = Self(0b1000_0000_0000_0000);
19671     pub const VIDEO_ENCODE_SRC_KHR: Self = Self(0b1_0000_0000_0000_0000);
19672 }
19673 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
19674 impl FormatFeatureFlags {
19675     pub const VIDEO_ENCODE_INPUT_KHR: Self = Self(0b1000_0000_0000_0000_0000_0000_0000);
19676     pub const VIDEO_ENCODE_DPB_KHR: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000);
19677 }
19678 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
19679 impl FormatFeatureFlags2KHR {
19680     pub const VIDEO_ENCODE_INPUT: Self = Self(0b1000_0000_0000_0000_0000_0000_0000);
19681     pub const VIDEO_ENCODE_DPB: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000);
19682 }
19683 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
19684 impl ImageLayout {
19685     pub const VIDEO_ENCODE_DST_KHR: Self = Self(1_000_299_000);
19686     pub const VIDEO_ENCODE_SRC_KHR: Self = Self(1_000_299_001);
19687     pub const VIDEO_ENCODE_DPB_KHR: Self = Self(1_000_299_002);
19688 }
19689 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
19690 impl ImageUsageFlags {
19691     pub const VIDEO_ENCODE_DST_KHR: Self = Self(0b10_0000_0000_0000);
19692     pub const VIDEO_ENCODE_SRC_KHR: Self = Self(0b100_0000_0000_0000);
19693     pub const VIDEO_ENCODE_DPB_KHR: Self = Self(0b1000_0000_0000_0000);
19694 }
19695 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
19696 impl PipelineStageFlags2KHR {
19697     pub const VIDEO_ENCODE: Self = Self(0b1000_0000_0000_0000_0000_0000_0000);
19698 }
19699 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
19700 impl QueryType {
19701     pub const VIDEO_ENCODESTREAM_BUFFER_RANGE_KHR: Self = Self(1_000_299_000);
19702 }
19703 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
19704 impl QueueFlags {
19705     pub const VIDEO_ENCODE_KHR: Self = Self(0b100_0000);
19706 }
19707 #[doc = "Generated from 'VK_KHR_video_encode_queue'"]
19708 impl StructureType {
19709     pub const VIDEO_ENCODE_INFO_KHR: Self = Self(1_000_299_000);
19710     pub const VIDEO_ENCODE_RATE_CONTROL_INFO_KHR: Self = Self(1_000_299_001);
19711     pub const VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR: Self = Self(1_000_299_002);
19712 }
19713 impl NvDeviceDiagnosticsConfigFn {
name() -> &'static ::std::ffi::CStr19714     pub fn name() -> &'static ::std::ffi::CStr {
19715         unsafe {
19716             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_device_diagnostics_config\0")
19717         }
19718     }
19719     pub const SPEC_VERSION: u32 = 1u32;
19720 }
19721 #[derive(Clone)]
19722 pub struct NvDeviceDiagnosticsConfigFn {}
19723 unsafe impl Send for NvDeviceDiagnosticsConfigFn {}
19724 unsafe impl Sync for NvDeviceDiagnosticsConfigFn {}
19725 impl NvDeviceDiagnosticsConfigFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19726     pub fn load<F>(mut _f: F) -> Self
19727     where
19728         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19729     {
19730         Self {}
19731     }
19732 }
19733 #[doc = "Generated from 'VK_NV_device_diagnostics_config'"]
19734 impl StructureType {
19735     pub const PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: Self = Self(1_000_300_000);
19736     pub const DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: Self = Self(1_000_300_001);
19737 }
19738 impl QcomRenderPassStoreOpsFn {
name() -> &'static ::std::ffi::CStr19739     pub fn name() -> &'static ::std::ffi::CStr {
19740         unsafe {
19741             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_render_pass_store_ops\0")
19742         }
19743     }
19744     pub const SPEC_VERSION: u32 = 2u32;
19745 }
19746 #[derive(Clone)]
19747 pub struct QcomRenderPassStoreOpsFn {}
19748 unsafe impl Send for QcomRenderPassStoreOpsFn {}
19749 unsafe impl Sync for QcomRenderPassStoreOpsFn {}
19750 impl QcomRenderPassStoreOpsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19751     pub fn load<F>(mut _f: F) -> Self
19752     where
19753         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19754     {
19755         Self {}
19756     }
19757 }
19758 #[doc = "Generated from 'VK_QCOM_render_pass_store_ops'"]
19759 impl AttachmentStoreOp {
19760     pub const NONE_QCOM: Self = Self::NONE_KHR;
19761 }
19762 impl QcomExtension303Fn {
name() -> &'static ::std::ffi::CStr19763     pub fn name() -> &'static ::std::ffi::CStr {
19764         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_303\0") }
19765     }
19766     pub const SPEC_VERSION: u32 = 0u32;
19767 }
19768 #[derive(Clone)]
19769 pub struct QcomExtension303Fn {}
19770 unsafe impl Send for QcomExtension303Fn {}
19771 unsafe impl Sync for QcomExtension303Fn {}
19772 impl QcomExtension303Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19773     pub fn load<F>(mut _f: F) -> Self
19774     where
19775         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19776     {
19777         Self {}
19778     }
19779 }
19780 impl QcomExtension304Fn {
name() -> &'static ::std::ffi::CStr19781     pub fn name() -> &'static ::std::ffi::CStr {
19782         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_304\0") }
19783     }
19784     pub const SPEC_VERSION: u32 = 0u32;
19785 }
19786 #[derive(Clone)]
19787 pub struct QcomExtension304Fn {}
19788 unsafe impl Send for QcomExtension304Fn {}
19789 unsafe impl Sync for QcomExtension304Fn {}
19790 impl QcomExtension304Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19791     pub fn load<F>(mut _f: F) -> Self
19792     where
19793         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19794     {
19795         Self {}
19796     }
19797 }
19798 impl QcomExtension305Fn {
name() -> &'static ::std::ffi::CStr19799     pub fn name() -> &'static ::std::ffi::CStr {
19800         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_305\0") }
19801     }
19802     pub const SPEC_VERSION: u32 = 0u32;
19803 }
19804 #[derive(Clone)]
19805 pub struct QcomExtension305Fn {}
19806 unsafe impl Send for QcomExtension305Fn {}
19807 unsafe impl Sync for QcomExtension305Fn {}
19808 impl QcomExtension305Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19809     pub fn load<F>(mut _f: F) -> Self
19810     where
19811         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19812     {
19813         Self {}
19814     }
19815 }
19816 impl QcomExtension306Fn {
name() -> &'static ::std::ffi::CStr19817     pub fn name() -> &'static ::std::ffi::CStr {
19818         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_306\0") }
19819     }
19820     pub const SPEC_VERSION: u32 = 0u32;
19821 }
19822 #[derive(Clone)]
19823 pub struct QcomExtension306Fn {}
19824 unsafe impl Send for QcomExtension306Fn {}
19825 unsafe impl Sync for QcomExtension306Fn {}
19826 impl QcomExtension306Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19827     pub fn load<F>(mut _f: F) -> Self
19828     where
19829         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19830     {
19831         Self {}
19832     }
19833 }
19834 impl QcomExtension307Fn {
name() -> &'static ::std::ffi::CStr19835     pub fn name() -> &'static ::std::ffi::CStr {
19836         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_307\0") }
19837     }
19838     pub const SPEC_VERSION: u32 = 0u32;
19839 }
19840 #[derive(Clone)]
19841 pub struct QcomExtension307Fn {}
19842 unsafe impl Send for QcomExtension307Fn {}
19843 unsafe impl Sync for QcomExtension307Fn {}
19844 impl QcomExtension307Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19845     pub fn load<F>(mut _f: F) -> Self
19846     where
19847         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19848     {
19849         Self {}
19850     }
19851 }
19852 impl NvExtension308Fn {
name() -> &'static ::std::ffi::CStr19853     pub fn name() -> &'static ::std::ffi::CStr {
19854         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_308\0") }
19855     }
19856     pub const SPEC_VERSION: u32 = 0u32;
19857 }
19858 #[derive(Clone)]
19859 pub struct NvExtension308Fn {}
19860 unsafe impl Send for NvExtension308Fn {}
19861 unsafe impl Sync for NvExtension308Fn {}
19862 impl NvExtension308Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19863     pub fn load<F>(mut _f: F) -> Self
19864     where
19865         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19866     {
19867         Self {}
19868     }
19869 }
19870 impl KhrExtension309Fn {
name() -> &'static ::std::ffi::CStr19871     pub fn name() -> &'static ::std::ffi::CStr {
19872         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_309\0") }
19873     }
19874     pub const SPEC_VERSION: u32 = 0u32;
19875 }
19876 #[derive(Clone)]
19877 pub struct KhrExtension309Fn {}
19878 unsafe impl Send for KhrExtension309Fn {}
19879 unsafe impl Sync for KhrExtension309Fn {}
19880 impl KhrExtension309Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19881     pub fn load<F>(mut _f: F) -> Self
19882     where
19883         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19884     {
19885         Self {}
19886     }
19887 }
19888 impl QcomExtension310Fn {
name() -> &'static ::std::ffi::CStr19889     pub fn name() -> &'static ::std::ffi::CStr {
19890         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_310\0") }
19891     }
19892     pub const SPEC_VERSION: u32 = 0u32;
19893 }
19894 #[derive(Clone)]
19895 pub struct QcomExtension310Fn {}
19896 unsafe impl Send for QcomExtension310Fn {}
19897 unsafe impl Sync for QcomExtension310Fn {}
19898 impl QcomExtension310Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19899     pub fn load<F>(mut _f: F) -> Self
19900     where
19901         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19902     {
19903         Self {}
19904     }
19905 }
19906 #[doc = "Generated from 'VK_QCOM_extension_310'"]
19907 impl StructureType {
19908     pub const RESERVED_QCOM: Self = Self(1_000_309_000);
19909 }
19910 impl NvExtension311Fn {
name() -> &'static ::std::ffi::CStr19911     pub fn name() -> &'static ::std::ffi::CStr {
19912         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_311\0") }
19913     }
19914     pub const SPEC_VERSION: u32 = 0u32;
19915 }
19916 #[derive(Clone)]
19917 pub struct NvExtension311Fn {}
19918 unsafe impl Send for NvExtension311Fn {}
19919 unsafe impl Sync for NvExtension311Fn {}
19920 impl NvExtension311Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19921     pub fn load<F>(mut _f: F) -> Self
19922     where
19923         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19924     {
19925         Self {}
19926     }
19927 }
19928 impl ExtExtension312Fn {
name() -> &'static ::std::ffi::CStr19929     pub fn name() -> &'static ::std::ffi::CStr {
19930         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_312\0") }
19931     }
19932     pub const SPEC_VERSION: u32 = 0u32;
19933 }
19934 #[derive(Clone)]
19935 pub struct ExtExtension312Fn {}
19936 unsafe impl Send for ExtExtension312Fn {}
19937 unsafe impl Sync for ExtExtension312Fn {}
19938 impl ExtExtension312Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19939     pub fn load<F>(mut _f: F) -> Self
19940     where
19941         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19942     {
19943         Self {}
19944     }
19945 }
19946 impl ExtExtension313Fn {
name() -> &'static ::std::ffi::CStr19947     pub fn name() -> &'static ::std::ffi::CStr {
19948         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_313\0") }
19949     }
19950     pub const SPEC_VERSION: u32 = 0u32;
19951 }
19952 #[derive(Clone)]
19953 pub struct ExtExtension313Fn {}
19954 unsafe impl Send for ExtExtension313Fn {}
19955 unsafe impl Sync for ExtExtension313Fn {}
19956 impl ExtExtension313Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19957     pub fn load<F>(mut _f: F) -> Self
19958     where
19959         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19960     {
19961         Self {}
19962     }
19963 }
19964 impl AmdExtension314Fn {
name() -> &'static ::std::ffi::CStr19965     pub fn name() -> &'static ::std::ffi::CStr {
19966         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_314\0") }
19967     }
19968     pub const SPEC_VERSION: u32 = 0u32;
19969 }
19970 #[derive(Clone)]
19971 pub struct AmdExtension314Fn {}
19972 unsafe impl Send for AmdExtension314Fn {}
19973 unsafe impl Sync for AmdExtension314Fn {}
19974 impl AmdExtension314Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,19975     pub fn load<F>(mut _f: F) -> Self
19976     where
19977         F: FnMut(&::std::ffi::CStr) -> *const c_void,
19978     {
19979         Self {}
19980     }
19981 }
19982 impl KhrSynchronization2Fn {
name() -> &'static ::std::ffi::CStr19983     pub fn name() -> &'static ::std::ffi::CStr {
19984         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_synchronization2\0") }
19985     }
19986     pub const SPEC_VERSION: u32 = 1u32;
19987 }
19988 #[allow(non_camel_case_types)]
19989 pub type PFN_vkCmdSetEvent2KHR = unsafe extern "system" fn(
19990     command_buffer: CommandBuffer,
19991     event: Event,
19992     p_dependency_info: *const DependencyInfoKHR,
19993 );
19994 #[allow(non_camel_case_types)]
19995 pub type PFN_vkCmdResetEvent2KHR = unsafe extern "system" fn(
19996     command_buffer: CommandBuffer,
19997     event: Event,
19998     stage_mask: PipelineStageFlags2KHR,
19999 );
20000 #[allow(non_camel_case_types)]
20001 pub type PFN_vkCmdWaitEvents2KHR = unsafe extern "system" fn(
20002     command_buffer: CommandBuffer,
20003     event_count: u32,
20004     p_events: *const Event,
20005     p_dependency_infos: *const DependencyInfoKHR,
20006 );
20007 #[allow(non_camel_case_types)]
20008 pub type PFN_vkCmdPipelineBarrier2KHR = unsafe extern "system" fn(
20009     command_buffer: CommandBuffer,
20010     p_dependency_info: *const DependencyInfoKHR,
20011 );
20012 #[allow(non_camel_case_types)]
20013 pub type PFN_vkCmdWriteTimestamp2KHR = unsafe extern "system" fn(
20014     command_buffer: CommandBuffer,
20015     stage: PipelineStageFlags2KHR,
20016     query_pool: QueryPool,
20017     query: u32,
20018 );
20019 #[allow(non_camel_case_types)]
20020 pub type PFN_vkQueueSubmit2KHR = unsafe extern "system" fn(
20021     queue: Queue,
20022     submit_count: u32,
20023     p_submits: *const SubmitInfo2KHR,
20024     fence: Fence,
20025 ) -> Result;
20026 #[allow(non_camel_case_types)]
20027 pub type PFN_vkCmdWriteBufferMarker2AMD = unsafe extern "system" fn(
20028     command_buffer: CommandBuffer,
20029     stage: PipelineStageFlags2KHR,
20030     dst_buffer: Buffer,
20031     dst_offset: DeviceSize,
20032     marker: u32,
20033 );
20034 #[allow(non_camel_case_types)]
20035 pub type PFN_vkGetQueueCheckpointData2NV = unsafe extern "system" fn(
20036     queue: Queue,
20037     p_checkpoint_data_count: *mut u32,
20038     p_checkpoint_data: *mut CheckpointData2NV,
20039 );
20040 #[derive(Clone)]
20041 pub struct KhrSynchronization2Fn {
20042     pub cmd_set_event2_khr: PFN_vkCmdSetEvent2KHR,
20043     pub cmd_reset_event2_khr: PFN_vkCmdResetEvent2KHR,
20044     pub cmd_wait_events2_khr: PFN_vkCmdWaitEvents2KHR,
20045     pub cmd_pipeline_barrier2_khr: PFN_vkCmdPipelineBarrier2KHR,
20046     pub cmd_write_timestamp2_khr: PFN_vkCmdWriteTimestamp2KHR,
20047     pub queue_submit2_khr: PFN_vkQueueSubmit2KHR,
20048     pub cmd_write_buffer_marker2_amd: PFN_vkCmdWriteBufferMarker2AMD,
20049     pub get_queue_checkpoint_data2_nv: PFN_vkGetQueueCheckpointData2NV,
20050 }
20051 unsafe impl Send for KhrSynchronization2Fn {}
20052 unsafe impl Sync for KhrSynchronization2Fn {}
20053 impl KhrSynchronization2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20054     pub fn load<F>(mut _f: F) -> Self
20055     where
20056         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20057     {
20058         Self {
20059             cmd_set_event2_khr: unsafe {
20060                 unsafe extern "system" fn cmd_set_event2_khr(
20061                     _command_buffer: CommandBuffer,
20062                     _event: Event,
20063                     _p_dependency_info: *const DependencyInfoKHR,
20064                 ) {
20065                     panic!(concat!("Unable to load ", stringify!(cmd_set_event2_khr)))
20066                 }
20067                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetEvent2KHR\0");
20068                 let val = _f(cname);
20069                 if val.is_null() {
20070                     cmd_set_event2_khr
20071                 } else {
20072                     ::std::mem::transmute(val)
20073                 }
20074             },
20075             cmd_reset_event2_khr: unsafe {
20076                 unsafe extern "system" fn cmd_reset_event2_khr(
20077                     _command_buffer: CommandBuffer,
20078                     _event: Event,
20079                     _stage_mask: PipelineStageFlags2KHR,
20080                 ) {
20081                     panic!(concat!("Unable to load ", stringify!(cmd_reset_event2_khr)))
20082                 }
20083                 let cname =
20084                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdResetEvent2KHR\0");
20085                 let val = _f(cname);
20086                 if val.is_null() {
20087                     cmd_reset_event2_khr
20088                 } else {
20089                     ::std::mem::transmute(val)
20090                 }
20091             },
20092             cmd_wait_events2_khr: unsafe {
20093                 unsafe extern "system" fn cmd_wait_events2_khr(
20094                     _command_buffer: CommandBuffer,
20095                     _event_count: u32,
20096                     _p_events: *const Event,
20097                     _p_dependency_infos: *const DependencyInfoKHR,
20098                 ) {
20099                     panic!(concat!("Unable to load ", stringify!(cmd_wait_events2_khr)))
20100                 }
20101                 let cname =
20102                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdWaitEvents2KHR\0");
20103                 let val = _f(cname);
20104                 if val.is_null() {
20105                     cmd_wait_events2_khr
20106                 } else {
20107                     ::std::mem::transmute(val)
20108                 }
20109             },
20110             cmd_pipeline_barrier2_khr: unsafe {
20111                 unsafe extern "system" fn cmd_pipeline_barrier2_khr(
20112                     _command_buffer: CommandBuffer,
20113                     _p_dependency_info: *const DependencyInfoKHR,
20114                 ) {
20115                     panic!(concat!(
20116                         "Unable to load ",
20117                         stringify!(cmd_pipeline_barrier2_khr)
20118                     ))
20119                 }
20120                 let cname =
20121                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdPipelineBarrier2KHR\0");
20122                 let val = _f(cname);
20123                 if val.is_null() {
20124                     cmd_pipeline_barrier2_khr
20125                 } else {
20126                     ::std::mem::transmute(val)
20127                 }
20128             },
20129             cmd_write_timestamp2_khr: unsafe {
20130                 unsafe extern "system" fn cmd_write_timestamp2_khr(
20131                     _command_buffer: CommandBuffer,
20132                     _stage: PipelineStageFlags2KHR,
20133                     _query_pool: QueryPool,
20134                     _query: u32,
20135                 ) {
20136                     panic!(concat!(
20137                         "Unable to load ",
20138                         stringify!(cmd_write_timestamp2_khr)
20139                     ))
20140                 }
20141                 let cname =
20142                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdWriteTimestamp2KHR\0");
20143                 let val = _f(cname);
20144                 if val.is_null() {
20145                     cmd_write_timestamp2_khr
20146                 } else {
20147                     ::std::mem::transmute(val)
20148                 }
20149             },
20150             queue_submit2_khr: unsafe {
20151                 unsafe extern "system" fn queue_submit2_khr(
20152                     _queue: Queue,
20153                     _submit_count: u32,
20154                     _p_submits: *const SubmitInfo2KHR,
20155                     _fence: Fence,
20156                 ) -> Result {
20157                     panic!(concat!("Unable to load ", stringify!(queue_submit2_khr)))
20158                 }
20159                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkQueueSubmit2KHR\0");
20160                 let val = _f(cname);
20161                 if val.is_null() {
20162                     queue_submit2_khr
20163                 } else {
20164                     ::std::mem::transmute(val)
20165                 }
20166             },
20167             cmd_write_buffer_marker2_amd: unsafe {
20168                 unsafe extern "system" fn cmd_write_buffer_marker2_amd(
20169                     _command_buffer: CommandBuffer,
20170                     _stage: PipelineStageFlags2KHR,
20171                     _dst_buffer: Buffer,
20172                     _dst_offset: DeviceSize,
20173                     _marker: u32,
20174                 ) {
20175                     panic!(concat!(
20176                         "Unable to load ",
20177                         stringify!(cmd_write_buffer_marker2_amd)
20178                     ))
20179                 }
20180                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20181                     b"vkCmdWriteBufferMarker2AMD\0",
20182                 );
20183                 let val = _f(cname);
20184                 if val.is_null() {
20185                     cmd_write_buffer_marker2_amd
20186                 } else {
20187                     ::std::mem::transmute(val)
20188                 }
20189             },
20190             get_queue_checkpoint_data2_nv: unsafe {
20191                 unsafe extern "system" fn get_queue_checkpoint_data2_nv(
20192                     _queue: Queue,
20193                     _p_checkpoint_data_count: *mut u32,
20194                     _p_checkpoint_data: *mut CheckpointData2NV,
20195                 ) {
20196                     panic!(concat!(
20197                         "Unable to load ",
20198                         stringify!(get_queue_checkpoint_data2_nv)
20199                     ))
20200                 }
20201                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20202                     b"vkGetQueueCheckpointData2NV\0",
20203                 );
20204                 let val = _f(cname);
20205                 if val.is_null() {
20206                     get_queue_checkpoint_data2_nv
20207                 } else {
20208                     ::std::mem::transmute(val)
20209                 }
20210             },
20211         }
20212     }
20213     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetEvent2KHR.html>"]
cmd_set_event2_khr( &self, command_buffer: CommandBuffer, event: Event, p_dependency_info: *const DependencyInfoKHR, )20214     pub unsafe fn cmd_set_event2_khr(
20215         &self,
20216         command_buffer: CommandBuffer,
20217         event: Event,
20218         p_dependency_info: *const DependencyInfoKHR,
20219     ) {
20220         (self.cmd_set_event2_khr)(command_buffer, event, p_dependency_info)
20221     }
20222     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdResetEvent2KHR.html>"]
cmd_reset_event2_khr( &self, command_buffer: CommandBuffer, event: Event, stage_mask: PipelineStageFlags2KHR, )20223     pub unsafe fn cmd_reset_event2_khr(
20224         &self,
20225         command_buffer: CommandBuffer,
20226         event: Event,
20227         stage_mask: PipelineStageFlags2KHR,
20228     ) {
20229         (self.cmd_reset_event2_khr)(command_buffer, event, stage_mask)
20230     }
20231     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdWaitEvents2KHR.html>"]
cmd_wait_events2_khr( &self, command_buffer: CommandBuffer, event_count: u32, p_events: *const Event, p_dependency_infos: *const DependencyInfoKHR, )20232     pub unsafe fn cmd_wait_events2_khr(
20233         &self,
20234         command_buffer: CommandBuffer,
20235         event_count: u32,
20236         p_events: *const Event,
20237         p_dependency_infos: *const DependencyInfoKHR,
20238     ) {
20239         (self.cmd_wait_events2_khr)(command_buffer, event_count, p_events, p_dependency_infos)
20240     }
20241     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdPipelineBarrier2KHR.html>"]
cmd_pipeline_barrier2_khr( &self, command_buffer: CommandBuffer, p_dependency_info: *const DependencyInfoKHR, )20242     pub unsafe fn cmd_pipeline_barrier2_khr(
20243         &self,
20244         command_buffer: CommandBuffer,
20245         p_dependency_info: *const DependencyInfoKHR,
20246     ) {
20247         (self.cmd_pipeline_barrier2_khr)(command_buffer, p_dependency_info)
20248     }
20249     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdWriteTimestamp2KHR.html>"]
cmd_write_timestamp2_khr( &self, command_buffer: CommandBuffer, stage: PipelineStageFlags2KHR, query_pool: QueryPool, query: u32, )20250     pub unsafe fn cmd_write_timestamp2_khr(
20251         &self,
20252         command_buffer: CommandBuffer,
20253         stage: PipelineStageFlags2KHR,
20254         query_pool: QueryPool,
20255         query: u32,
20256     ) {
20257         (self.cmd_write_timestamp2_khr)(command_buffer, stage, query_pool, query)
20258     }
20259     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkQueueSubmit2KHR.html>"]
queue_submit2_khr( &self, queue: Queue, submit_count: u32, p_submits: *const SubmitInfo2KHR, fence: Fence, ) -> Result20260     pub unsafe fn queue_submit2_khr(
20261         &self,
20262         queue: Queue,
20263         submit_count: u32,
20264         p_submits: *const SubmitInfo2KHR,
20265         fence: Fence,
20266     ) -> Result {
20267         (self.queue_submit2_khr)(queue, submit_count, p_submits, fence)
20268     }
20269     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdWriteBufferMarker2AMD.html>"]
cmd_write_buffer_marker2_amd( &self, command_buffer: CommandBuffer, stage: PipelineStageFlags2KHR, dst_buffer: Buffer, dst_offset: DeviceSize, marker: u32, )20270     pub unsafe fn cmd_write_buffer_marker2_amd(
20271         &self,
20272         command_buffer: CommandBuffer,
20273         stage: PipelineStageFlags2KHR,
20274         dst_buffer: Buffer,
20275         dst_offset: DeviceSize,
20276         marker: u32,
20277     ) {
20278         (self.cmd_write_buffer_marker2_amd)(command_buffer, stage, dst_buffer, dst_offset, marker)
20279     }
20280     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetQueueCheckpointData2NV.html>"]
get_queue_checkpoint_data2_nv( &self, queue: Queue, p_checkpoint_data_count: *mut u32, p_checkpoint_data: *mut CheckpointData2NV, )20281     pub unsafe fn get_queue_checkpoint_data2_nv(
20282         &self,
20283         queue: Queue,
20284         p_checkpoint_data_count: *mut u32,
20285         p_checkpoint_data: *mut CheckpointData2NV,
20286     ) {
20287         (self.get_queue_checkpoint_data2_nv)(queue, p_checkpoint_data_count, p_checkpoint_data)
20288     }
20289 }
20290 #[doc = "Generated from 'VK_KHR_synchronization2'"]
20291 impl AccessFlags {
20292     pub const NONE_KHR: Self = Self(0);
20293 }
20294 #[doc = "Generated from 'VK_KHR_synchronization2'"]
20295 impl AccessFlags2KHR {
20296     pub const TRANSFORM_FEEDBACK_WRITE_EXT: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
20297     pub const TRANSFORM_FEEDBACK_COUNTER_READ_EXT: Self = Self(0b100_0000_0000_0000_0000_0000_0000);
20298     pub const TRANSFORM_FEEDBACK_COUNTER_WRITE_EXT: Self =
20299         Self(0b1000_0000_0000_0000_0000_0000_0000);
20300     #[doc = "read access flag for reading conditional rendering predicate"]
20301     pub const CONDITIONAL_RENDERING_READ_EXT: Self = Self(0b1_0000_0000_0000_0000_0000);
20302     pub const COMMAND_PREPROCESS_READ_NV: Self = Self(0b10_0000_0000_0000_0000);
20303     pub const COMMAND_PREPROCESS_WRITE_NV: Self = Self(0b100_0000_0000_0000_0000);
20304     pub const FRAGMENT_SHADING_RATE_ATTACHMENT_READ: Self = Self(0b1000_0000_0000_0000_0000_0000);
20305     pub const SHADING_RATE_IMAGE_READ_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_READ;
20306     pub const ACCELERATION_STRUCTURE_READ: Self = Self(0b10_0000_0000_0000_0000_0000);
20307     pub const ACCELERATION_STRUCTURE_WRITE: Self = Self(0b100_0000_0000_0000_0000_0000);
20308     pub const ACCELERATION_STRUCTURE_READ_NV: Self = Self::ACCELERATION_STRUCTURE_READ;
20309     pub const ACCELERATION_STRUCTURE_WRITE_NV: Self = Self::ACCELERATION_STRUCTURE_WRITE;
20310     pub const FRAGMENT_DENSITY_MAP_READ_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
20311     pub const COLOR_ATTACHMENT_READ_NONCOHERENT_EXT: Self = Self(0b1000_0000_0000_0000_0000);
20312 }
20313 #[doc = "Generated from 'VK_KHR_synchronization2'"]
20314 impl EventCreateFlags {
20315     pub const DEVICE_ONLY_KHR: Self = Self(0b1);
20316 }
20317 #[doc = "Generated from 'VK_KHR_synchronization2'"]
20318 impl ImageLayout {
20319     pub const READ_ONLY_OPTIMAL_KHR: Self = Self(1_000_314_000);
20320     pub const ATTACHMENT_OPTIMAL_KHR: Self = Self(1_000_314_001);
20321 }
20322 #[doc = "Generated from 'VK_KHR_synchronization2'"]
20323 impl PipelineStageFlags {
20324     pub const NONE_KHR: Self = Self(0);
20325 }
20326 #[doc = "Generated from 'VK_KHR_synchronization2'"]
20327 impl PipelineStageFlags2KHR {
20328     pub const TRANSFORM_FEEDBACK_EXT: Self = Self(0b1_0000_0000_0000_0000_0000_0000);
20329     #[doc = "A pipeline stage for conditional rendering predicate fetch"]
20330     pub const CONDITIONAL_RENDERING_EXT: Self = Self(0b100_0000_0000_0000_0000);
20331     pub const COMMAND_PREPROCESS_NV: Self = Self(0b10_0000_0000_0000_0000);
20332     pub const FRAGMENT_SHADING_RATE_ATTACHMENT: Self = Self(0b100_0000_0000_0000_0000_0000);
20333     pub const SHADING_RATE_IMAGE_NV: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT;
20334     pub const ACCELERATION_STRUCTURE_BUILD: Self = Self(0b10_0000_0000_0000_0000_0000_0000);
20335     pub const RAY_TRACING_SHADER: Self = Self(0b10_0000_0000_0000_0000_0000);
20336     pub const RAY_TRACING_SHADER_NV: Self = Self::RAY_TRACING_SHADER;
20337     pub const ACCELERATION_STRUCTURE_BUILD_NV: Self = Self::ACCELERATION_STRUCTURE_BUILD;
20338     pub const FRAGMENT_DENSITY_PROCESS_EXT: Self = Self(0b1000_0000_0000_0000_0000_0000);
20339     pub const TASK_SHADER_NV: Self = Self(0b1000_0000_0000_0000_0000);
20340     pub const MESH_SHADER_NV: Self = Self(0b1_0000_0000_0000_0000_0000);
20341 }
20342 #[doc = "Generated from 'VK_KHR_synchronization2'"]
20343 impl StructureType {
20344     pub const MEMORY_BARRIER_2_KHR: Self = Self(1_000_314_000);
20345     pub const BUFFER_MEMORY_BARRIER_2_KHR: Self = Self(1_000_314_001);
20346     pub const IMAGE_MEMORY_BARRIER_2_KHR: Self = Self(1_000_314_002);
20347     pub const DEPENDENCY_INFO_KHR: Self = Self(1_000_314_003);
20348     pub const SUBMIT_INFO_2_KHR: Self = Self(1_000_314_004);
20349     pub const SEMAPHORE_SUBMIT_INFO_KHR: Self = Self(1_000_314_005);
20350     pub const COMMAND_BUFFER_SUBMIT_INFO_KHR: Self = Self(1_000_314_006);
20351     pub const PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR: Self = Self(1_000_314_007);
20352     pub const QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: Self = Self(1_000_314_008);
20353     pub const CHECKPOINT_DATA_2_NV: Self = Self(1_000_314_009);
20354 }
20355 impl AmdExtension316Fn {
name() -> &'static ::std::ffi::CStr20356     pub fn name() -> &'static ::std::ffi::CStr {
20357         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_316\0") }
20358     }
20359     pub const SPEC_VERSION: u32 = 0u32;
20360 }
20361 #[derive(Clone)]
20362 pub struct AmdExtension316Fn {}
20363 unsafe impl Send for AmdExtension316Fn {}
20364 unsafe impl Sync for AmdExtension316Fn {}
20365 impl AmdExtension316Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20366     pub fn load<F>(mut _f: F) -> Self
20367     where
20368         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20369     {
20370         Self {}
20371     }
20372 }
20373 impl AmdExtension317Fn {
name() -> &'static ::std::ffi::CStr20374     pub fn name() -> &'static ::std::ffi::CStr {
20375         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_317\0") }
20376     }
20377     pub const SPEC_VERSION: u32 = 0u32;
20378 }
20379 #[derive(Clone)]
20380 pub struct AmdExtension317Fn {}
20381 unsafe impl Send for AmdExtension317Fn {}
20382 unsafe impl Sync for AmdExtension317Fn {}
20383 impl AmdExtension317Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20384     pub fn load<F>(mut _f: F) -> Self
20385     where
20386         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20387     {
20388         Self {}
20389     }
20390 }
20391 #[doc = "Generated from 'VK_AMD_extension_317'"]
20392 impl AccessFlags2KHR {
20393     pub const RESERVED_41_AMD: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
20394 }
20395 #[doc = "Generated from 'VK_AMD_extension_317'"]
20396 impl BufferCreateFlags {
20397     pub const RESERVED_5_AMD: Self = Self(0b10_0000);
20398 }
20399 #[doc = "Generated from 'VK_AMD_extension_317'"]
20400 impl BufferUsageFlags {
20401     pub const RESERVED_21_AMD: Self = Self(0b10_0000_0000_0000_0000_0000);
20402     pub const RESERVED_22_AMD: Self = Self(0b100_0000_0000_0000_0000_0000);
20403 }
20404 #[doc = "Generated from 'VK_AMD_extension_317'"]
20405 impl DescriptorSetLayoutCreateFlags {
20406     pub const RESERVED_4_AMD: Self = Self(0b1_0000);
20407 }
20408 #[doc = "Generated from 'VK_AMD_extension_317'"]
20409 impl ImageCreateFlags {
20410     pub const RESERVED_16_AMD: Self = Self(0b1_0000_0000_0000_0000);
20411 }
20412 #[doc = "Generated from 'VK_AMD_extension_317'"]
20413 impl SamplerCreateFlags {
20414     pub const RESERVED_3_AMD: Self = Self(0b1000);
20415 }
20416 impl AmdExtension318Fn {
name() -> &'static ::std::ffi::CStr20417     pub fn name() -> &'static ::std::ffi::CStr {
20418         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_318\0") }
20419     }
20420     pub const SPEC_VERSION: u32 = 0u32;
20421 }
20422 #[derive(Clone)]
20423 pub struct AmdExtension318Fn {}
20424 unsafe impl Send for AmdExtension318Fn {}
20425 unsafe impl Sync for AmdExtension318Fn {}
20426 impl AmdExtension318Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20427     pub fn load<F>(mut _f: F) -> Self
20428     where
20429         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20430     {
20431         Self {}
20432     }
20433 }
20434 impl AmdExtension319Fn {
name() -> &'static ::std::ffi::CStr20435     pub fn name() -> &'static ::std::ffi::CStr {
20436         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_319\0") }
20437     }
20438     pub const SPEC_VERSION: u32 = 0u32;
20439 }
20440 #[derive(Clone)]
20441 pub struct AmdExtension319Fn {}
20442 unsafe impl Send for AmdExtension319Fn {}
20443 unsafe impl Sync for AmdExtension319Fn {}
20444 impl AmdExtension319Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20445     pub fn load<F>(mut _f: F) -> Self
20446     where
20447         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20448     {
20449         Self {}
20450     }
20451 }
20452 #[doc = "Generated from 'VK_AMD_extension_319'"]
20453 impl DescriptorSetLayoutCreateFlags {
20454     pub const RESERVED_3_AMD: Self = Self(0b1000);
20455 }
20456 #[doc = "Generated from 'VK_AMD_extension_319'"]
20457 impl PipelineLayoutCreateFlags {
20458     pub const RESERVED_0_AMD: Self = Self(0b1);
20459 }
20460 impl AmdExtension320Fn {
name() -> &'static ::std::ffi::CStr20461     pub fn name() -> &'static ::std::ffi::CStr {
20462         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_320\0") }
20463     }
20464     pub const SPEC_VERSION: u32 = 0u32;
20465 }
20466 #[derive(Clone)]
20467 pub struct AmdExtension320Fn {}
20468 unsafe impl Send for AmdExtension320Fn {}
20469 unsafe impl Sync for AmdExtension320Fn {}
20470 impl AmdExtension320Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20471     pub fn load<F>(mut _f: F) -> Self
20472     where
20473         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20474     {
20475         Self {}
20476     }
20477 }
20478 impl AmdExtension321Fn {
name() -> &'static ::std::ffi::CStr20479     pub fn name() -> &'static ::std::ffi::CStr {
20480         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_321\0") }
20481     }
20482     pub const SPEC_VERSION: u32 = 0u32;
20483 }
20484 #[derive(Clone)]
20485 pub struct AmdExtension321Fn {}
20486 unsafe impl Send for AmdExtension321Fn {}
20487 unsafe impl Sync for AmdExtension321Fn {}
20488 impl AmdExtension321Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20489     pub fn load<F>(mut _f: F) -> Self
20490     where
20491         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20492     {
20493         Self {}
20494     }
20495 }
20496 #[doc = "Generated from 'VK_AMD_extension_321'"]
20497 impl PipelineCreateFlags {
20498     pub const RESERVED_23_AMD: Self = Self(0b1000_0000_0000_0000_0000_0000);
20499     pub const RESERVED_10_AMD: Self = Self(0b100_0000_0000);
20500 }
20501 #[doc = "Generated from 'VK_AMD_extension_321'"]
20502 impl PipelineLayoutCreateFlags {
20503     pub const RESERVED_1_AMD: Self = Self(0b10);
20504 }
20505 impl AmdExtension322Fn {
name() -> &'static ::std::ffi::CStr20506     pub fn name() -> &'static ::std::ffi::CStr {
20507         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_322\0") }
20508     }
20509     pub const SPEC_VERSION: u32 = 0u32;
20510 }
20511 #[derive(Clone)]
20512 pub struct AmdExtension322Fn {}
20513 unsafe impl Send for AmdExtension322Fn {}
20514 unsafe impl Sync for AmdExtension322Fn {}
20515 impl AmdExtension322Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20516     pub fn load<F>(mut _f: F) -> Self
20517     where
20518         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20519     {
20520         Self {}
20521     }
20522 }
20523 impl AmdExtension323Fn {
name() -> &'static ::std::ffi::CStr20524     pub fn name() -> &'static ::std::ffi::CStr {
20525         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_AMD_extension_323\0") }
20526     }
20527     pub const SPEC_VERSION: u32 = 0u32;
20528 }
20529 #[derive(Clone)]
20530 pub struct AmdExtension323Fn {}
20531 unsafe impl Send for AmdExtension323Fn {}
20532 unsafe impl Sync for AmdExtension323Fn {}
20533 impl AmdExtension323Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20534     pub fn load<F>(mut _f: F) -> Self
20535     where
20536         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20537     {
20538         Self {}
20539     }
20540 }
20541 impl KhrShaderSubgroupUniformControlFlowFn {
name() -> &'static ::std::ffi::CStr20542     pub fn name() -> &'static ::std::ffi::CStr {
20543         unsafe {
20544             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20545                 b"VK_KHR_shader_subgroup_uniform_control_flow\0",
20546             )
20547         }
20548     }
20549     pub const SPEC_VERSION: u32 = 1u32;
20550 }
20551 #[derive(Clone)]
20552 pub struct KhrShaderSubgroupUniformControlFlowFn {}
20553 unsafe impl Send for KhrShaderSubgroupUniformControlFlowFn {}
20554 unsafe impl Sync for KhrShaderSubgroupUniformControlFlowFn {}
20555 impl KhrShaderSubgroupUniformControlFlowFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20556     pub fn load<F>(mut _f: F) -> Self
20557     where
20558         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20559     {
20560         Self {}
20561     }
20562 }
20563 #[doc = "Generated from 'VK_KHR_shader_subgroup_uniform_control_flow'"]
20564 impl StructureType {
20565     pub const PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: Self =
20566         Self(1_000_323_000);
20567 }
20568 impl KhrExtension325Fn {
name() -> &'static ::std::ffi::CStr20569     pub fn name() -> &'static ::std::ffi::CStr {
20570         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_325\0") }
20571     }
20572     pub const SPEC_VERSION: u32 = 0u32;
20573 }
20574 #[derive(Clone)]
20575 pub struct KhrExtension325Fn {}
20576 unsafe impl Send for KhrExtension325Fn {}
20577 unsafe impl Sync for KhrExtension325Fn {}
20578 impl KhrExtension325Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20579     pub fn load<F>(mut _f: F) -> Self
20580     where
20581         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20582     {
20583         Self {}
20584     }
20585 }
20586 impl KhrZeroInitializeWorkgroupMemoryFn {
name() -> &'static ::std::ffi::CStr20587     pub fn name() -> &'static ::std::ffi::CStr {
20588         unsafe {
20589             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20590                 b"VK_KHR_zero_initialize_workgroup_memory\0",
20591             )
20592         }
20593     }
20594     pub const SPEC_VERSION: u32 = 1u32;
20595 }
20596 #[derive(Clone)]
20597 pub struct KhrZeroInitializeWorkgroupMemoryFn {}
20598 unsafe impl Send for KhrZeroInitializeWorkgroupMemoryFn {}
20599 unsafe impl Sync for KhrZeroInitializeWorkgroupMemoryFn {}
20600 impl KhrZeroInitializeWorkgroupMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20601     pub fn load<F>(mut _f: F) -> Self
20602     where
20603         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20604     {
20605         Self {}
20606     }
20607 }
20608 #[doc = "Generated from 'VK_KHR_zero_initialize_workgroup_memory'"]
20609 impl StructureType {
20610     pub const PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR: Self =
20611         Self(1_000_325_000);
20612 }
20613 impl NvFragmentShadingRateEnumsFn {
name() -> &'static ::std::ffi::CStr20614     pub fn name() -> &'static ::std::ffi::CStr {
20615         unsafe {
20616             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_fragment_shading_rate_enums\0")
20617         }
20618     }
20619     pub const SPEC_VERSION: u32 = 1u32;
20620 }
20621 #[allow(non_camel_case_types)]
20622 pub type PFN_vkCmdSetFragmentShadingRateEnumNV = unsafe extern "system" fn(
20623     command_buffer: CommandBuffer,
20624     shading_rate: FragmentShadingRateNV,
20625     combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2],
20626 );
20627 #[derive(Clone)]
20628 pub struct NvFragmentShadingRateEnumsFn {
20629     pub cmd_set_fragment_shading_rate_enum_nv: PFN_vkCmdSetFragmentShadingRateEnumNV,
20630 }
20631 unsafe impl Send for NvFragmentShadingRateEnumsFn {}
20632 unsafe impl Sync for NvFragmentShadingRateEnumsFn {}
20633 impl NvFragmentShadingRateEnumsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20634     pub fn load<F>(mut _f: F) -> Self
20635     where
20636         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20637     {
20638         Self {
20639             cmd_set_fragment_shading_rate_enum_nv: unsafe {
20640                 unsafe extern "system" fn cmd_set_fragment_shading_rate_enum_nv(
20641                     _command_buffer: CommandBuffer,
20642                     _shading_rate: FragmentShadingRateNV,
20643                     _combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2],
20644                 ) {
20645                     panic!(concat!(
20646                         "Unable to load ",
20647                         stringify!(cmd_set_fragment_shading_rate_enum_nv)
20648                     ))
20649                 }
20650                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20651                     b"vkCmdSetFragmentShadingRateEnumNV\0",
20652                 );
20653                 let val = _f(cname);
20654                 if val.is_null() {
20655                     cmd_set_fragment_shading_rate_enum_nv
20656                 } else {
20657                     ::std::mem::transmute(val)
20658                 }
20659             },
20660         }
20661     }
20662     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetFragmentShadingRateEnumNV.html>"]
cmd_set_fragment_shading_rate_enum_nv( &self, command_buffer: CommandBuffer, shading_rate: FragmentShadingRateNV, combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2], )20663     pub unsafe fn cmd_set_fragment_shading_rate_enum_nv(
20664         &self,
20665         command_buffer: CommandBuffer,
20666         shading_rate: FragmentShadingRateNV,
20667         combiner_ops: *const [FragmentShadingRateCombinerOpKHR; 2],
20668     ) {
20669         (self.cmd_set_fragment_shading_rate_enum_nv)(command_buffer, shading_rate, combiner_ops)
20670     }
20671 }
20672 #[doc = "Generated from 'VK_NV_fragment_shading_rate_enums'"]
20673 impl StructureType {
20674     pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: Self = Self(1_000_326_000);
20675     pub const PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: Self = Self(1_000_326_001);
20676     pub const PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV: Self = Self(1_000_326_002);
20677 }
20678 impl NvRayTracingMotionBlurFn {
name() -> &'static ::std::ffi::CStr20679     pub fn name() -> &'static ::std::ffi::CStr {
20680         unsafe {
20681             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_ray_tracing_motion_blur\0")
20682         }
20683     }
20684     pub const SPEC_VERSION: u32 = 1u32;
20685 }
20686 #[derive(Clone)]
20687 pub struct NvRayTracingMotionBlurFn {}
20688 unsafe impl Send for NvRayTracingMotionBlurFn {}
20689 unsafe impl Sync for NvRayTracingMotionBlurFn {}
20690 impl NvRayTracingMotionBlurFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20691     pub fn load<F>(mut _f: F) -> Self
20692     where
20693         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20694     {
20695         Self {}
20696     }
20697 }
20698 #[doc = "Generated from 'VK_NV_ray_tracing_motion_blur'"]
20699 impl AccelerationStructureCreateFlagsKHR {
20700     pub const MOTION_NV: Self = Self(0b100);
20701 }
20702 #[doc = "Generated from 'VK_NV_ray_tracing_motion_blur'"]
20703 impl BuildAccelerationStructureFlagsKHR {
20704     pub const MOTION_NV: Self = Self(0b10_0000);
20705 }
20706 #[doc = "Generated from 'VK_NV_ray_tracing_motion_blur'"]
20707 impl PipelineCreateFlags {
20708     pub const RAY_TRACING_ALLOW_MOTION_NV: Self = Self(0b1_0000_0000_0000_0000_0000);
20709 }
20710 #[doc = "Generated from 'VK_NV_ray_tracing_motion_blur'"]
20711 impl StructureType {
20712     pub const ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV: Self = Self(1_000_327_000);
20713     pub const PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV: Self = Self(1_000_327_001);
20714     pub const ACCELERATION_STRUCTURE_MOTION_INFO_NV: Self = Self(1_000_327_002);
20715 }
20716 impl NvExtension329Fn {
name() -> &'static ::std::ffi::CStr20717     pub fn name() -> &'static ::std::ffi::CStr {
20718         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_329\0") }
20719     }
20720     pub const SPEC_VERSION: u32 = 0u32;
20721 }
20722 #[derive(Clone)]
20723 pub struct NvExtension329Fn {}
20724 unsafe impl Send for NvExtension329Fn {}
20725 unsafe impl Sync for NvExtension329Fn {}
20726 impl NvExtension329Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20727     pub fn load<F>(mut _f: F) -> Self
20728     where
20729         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20730     {
20731         Self {}
20732     }
20733 }
20734 impl NvExtension330Fn {
name() -> &'static ::std::ffi::CStr20735     pub fn name() -> &'static ::std::ffi::CStr {
20736         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_330\0") }
20737     }
20738     pub const SPEC_VERSION: u32 = 0u32;
20739 }
20740 #[derive(Clone)]
20741 pub struct NvExtension330Fn {}
20742 unsafe impl Send for NvExtension330Fn {}
20743 unsafe impl Sync for NvExtension330Fn {}
20744 impl NvExtension330Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20745     pub fn load<F>(mut _f: F) -> Self
20746     where
20747         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20748     {
20749         Self {}
20750     }
20751 }
20752 impl ExtYcbcr2plane444FormatsFn {
name() -> &'static ::std::ffi::CStr20753     pub fn name() -> &'static ::std::ffi::CStr {
20754         unsafe {
20755             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_ycbcr_2plane_444_formats\0")
20756         }
20757     }
20758     pub const SPEC_VERSION: u32 = 1u32;
20759 }
20760 #[derive(Clone)]
20761 pub struct ExtYcbcr2plane444FormatsFn {}
20762 unsafe impl Send for ExtYcbcr2plane444FormatsFn {}
20763 unsafe impl Sync for ExtYcbcr2plane444FormatsFn {}
20764 impl ExtYcbcr2plane444FormatsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20765     pub fn load<F>(mut _f: F) -> Self
20766     where
20767         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20768     {
20769         Self {}
20770     }
20771 }
20772 #[doc = "Generated from 'VK_EXT_ycbcr_2plane_444_formats'"]
20773 impl Format {
20774     pub const G8_B8R8_2PLANE_444_UNORM_EXT: Self = Self(1_000_330_000);
20775     pub const G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT: Self = Self(1_000_330_001);
20776     pub const G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT: Self = Self(1_000_330_002);
20777     pub const G16_B16R16_2PLANE_444_UNORM_EXT: Self = Self(1_000_330_003);
20778 }
20779 #[doc = "Generated from 'VK_EXT_ycbcr_2plane_444_formats'"]
20780 impl StructureType {
20781     pub const PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: Self = Self(1_000_330_000);
20782 }
20783 impl NvExtension332Fn {
name() -> &'static ::std::ffi::CStr20784     pub fn name() -> &'static ::std::ffi::CStr {
20785         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_332\0") }
20786     }
20787     pub const SPEC_VERSION: u32 = 0u32;
20788 }
20789 #[derive(Clone)]
20790 pub struct NvExtension332Fn {}
20791 unsafe impl Send for NvExtension332Fn {}
20792 unsafe impl Sync for NvExtension332Fn {}
20793 impl NvExtension332Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20794     pub fn load<F>(mut _f: F) -> Self
20795     where
20796         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20797     {
20798         Self {}
20799     }
20800 }
20801 impl ExtFragmentDensityMap2Fn {
name() -> &'static ::std::ffi::CStr20802     pub fn name() -> &'static ::std::ffi::CStr {
20803         unsafe {
20804             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_fragment_density_map2\0")
20805         }
20806     }
20807     pub const SPEC_VERSION: u32 = 1u32;
20808 }
20809 #[derive(Clone)]
20810 pub struct ExtFragmentDensityMap2Fn {}
20811 unsafe impl Send for ExtFragmentDensityMap2Fn {}
20812 unsafe impl Sync for ExtFragmentDensityMap2Fn {}
20813 impl ExtFragmentDensityMap2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20814     pub fn load<F>(mut _f: F) -> Self
20815     where
20816         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20817     {
20818         Self {}
20819     }
20820 }
20821 #[doc = "Generated from 'VK_EXT_fragment_density_map2'"]
20822 impl ImageViewCreateFlags {
20823     pub const FRAGMENT_DENSITY_MAP_DEFERRED_EXT: Self = Self(0b10);
20824 }
20825 #[doc = "Generated from 'VK_EXT_fragment_density_map2'"]
20826 impl StructureType {
20827     pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: Self = Self(1_000_332_000);
20828     pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: Self = Self(1_000_332_001);
20829 }
20830 impl QcomRotatedCopyCommandsFn {
name() -> &'static ::std::ffi::CStr20831     pub fn name() -> &'static ::std::ffi::CStr {
20832         unsafe {
20833             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_rotated_copy_commands\0")
20834         }
20835     }
20836     pub const SPEC_VERSION: u32 = 1u32;
20837 }
20838 #[derive(Clone)]
20839 pub struct QcomRotatedCopyCommandsFn {}
20840 unsafe impl Send for QcomRotatedCopyCommandsFn {}
20841 unsafe impl Sync for QcomRotatedCopyCommandsFn {}
20842 impl QcomRotatedCopyCommandsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20843     pub fn load<F>(mut _f: F) -> Self
20844     where
20845         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20846     {
20847         Self {}
20848     }
20849 }
20850 #[doc = "Generated from 'VK_QCOM_rotated_copy_commands'"]
20851 impl StructureType {
20852     pub const COPY_COMMAND_TRANSFORM_INFO_QCOM: Self = Self(1_000_333_000);
20853 }
20854 impl KhrExtension335Fn {
name() -> &'static ::std::ffi::CStr20855     pub fn name() -> &'static ::std::ffi::CStr {
20856         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_335\0") }
20857     }
20858     pub const SPEC_VERSION: u32 = 0u32;
20859 }
20860 #[derive(Clone)]
20861 pub struct KhrExtension335Fn {}
20862 unsafe impl Send for KhrExtension335Fn {}
20863 unsafe impl Sync for KhrExtension335Fn {}
20864 impl KhrExtension335Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20865     pub fn load<F>(mut _f: F) -> Self
20866     where
20867         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20868     {
20869         Self {}
20870     }
20871 }
20872 impl ExtImageRobustnessFn {
name() -> &'static ::std::ffi::CStr20873     pub fn name() -> &'static ::std::ffi::CStr {
20874         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_robustness\0") }
20875     }
20876     pub const SPEC_VERSION: u32 = 1u32;
20877 }
20878 #[derive(Clone)]
20879 pub struct ExtImageRobustnessFn {}
20880 unsafe impl Send for ExtImageRobustnessFn {}
20881 unsafe impl Sync for ExtImageRobustnessFn {}
20882 impl ExtImageRobustnessFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20883     pub fn load<F>(mut _f: F) -> Self
20884     where
20885         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20886     {
20887         Self {}
20888     }
20889 }
20890 #[doc = "Generated from 'VK_EXT_image_robustness'"]
20891 impl StructureType {
20892     pub const PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT: Self = Self(1_000_335_000);
20893 }
20894 impl KhrWorkgroupMemoryExplicitLayoutFn {
name() -> &'static ::std::ffi::CStr20895     pub fn name() -> &'static ::std::ffi::CStr {
20896         unsafe {
20897             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
20898                 b"VK_KHR_workgroup_memory_explicit_layout\0",
20899             )
20900         }
20901     }
20902     pub const SPEC_VERSION: u32 = 1u32;
20903 }
20904 #[derive(Clone)]
20905 pub struct KhrWorkgroupMemoryExplicitLayoutFn {}
20906 unsafe impl Send for KhrWorkgroupMemoryExplicitLayoutFn {}
20907 unsafe impl Sync for KhrWorkgroupMemoryExplicitLayoutFn {}
20908 impl KhrWorkgroupMemoryExplicitLayoutFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20909     pub fn load<F>(mut _f: F) -> Self
20910     where
20911         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20912     {
20913         Self {}
20914     }
20915 }
20916 #[doc = "Generated from 'VK_KHR_workgroup_memory_explicit_layout'"]
20917 impl StructureType {
20918     pub const PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: Self =
20919         Self(1_000_336_000);
20920 }
20921 impl KhrCopyCommands2Fn {
name() -> &'static ::std::ffi::CStr20922     pub fn name() -> &'static ::std::ffi::CStr {
20923         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_copy_commands2\0") }
20924     }
20925     pub const SPEC_VERSION: u32 = 1u32;
20926 }
20927 #[allow(non_camel_case_types)]
20928 pub type PFN_vkCmdCopyBuffer2KHR = unsafe extern "system" fn(
20929     command_buffer: CommandBuffer,
20930     p_copy_buffer_info: *const CopyBufferInfo2KHR,
20931 );
20932 #[allow(non_camel_case_types)]
20933 pub type PFN_vkCmdCopyImage2KHR = unsafe extern "system" fn(
20934     command_buffer: CommandBuffer,
20935     p_copy_image_info: *const CopyImageInfo2KHR,
20936 );
20937 #[allow(non_camel_case_types)]
20938 pub type PFN_vkCmdCopyBufferToImage2KHR = unsafe extern "system" fn(
20939     command_buffer: CommandBuffer,
20940     p_copy_buffer_to_image_info: *const CopyBufferToImageInfo2KHR,
20941 );
20942 #[allow(non_camel_case_types)]
20943 pub type PFN_vkCmdCopyImageToBuffer2KHR = unsafe extern "system" fn(
20944     command_buffer: CommandBuffer,
20945     p_copy_image_to_buffer_info: *const CopyImageToBufferInfo2KHR,
20946 );
20947 #[allow(non_camel_case_types)]
20948 pub type PFN_vkCmdBlitImage2KHR = unsafe extern "system" fn(
20949     command_buffer: CommandBuffer,
20950     p_blit_image_info: *const BlitImageInfo2KHR,
20951 );
20952 #[allow(non_camel_case_types)]
20953 pub type PFN_vkCmdResolveImage2KHR = unsafe extern "system" fn(
20954     command_buffer: CommandBuffer,
20955     p_resolve_image_info: *const ResolveImageInfo2KHR,
20956 );
20957 #[derive(Clone)]
20958 pub struct KhrCopyCommands2Fn {
20959     pub cmd_copy_buffer2_khr: PFN_vkCmdCopyBuffer2KHR,
20960     pub cmd_copy_image2_khr: PFN_vkCmdCopyImage2KHR,
20961     pub cmd_copy_buffer_to_image2_khr: PFN_vkCmdCopyBufferToImage2KHR,
20962     pub cmd_copy_image_to_buffer2_khr: PFN_vkCmdCopyImageToBuffer2KHR,
20963     pub cmd_blit_image2_khr: PFN_vkCmdBlitImage2KHR,
20964     pub cmd_resolve_image2_khr: PFN_vkCmdResolveImage2KHR,
20965 }
20966 unsafe impl Send for KhrCopyCommands2Fn {}
20967 unsafe impl Sync for KhrCopyCommands2Fn {}
20968 impl KhrCopyCommands2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,20969     pub fn load<F>(mut _f: F) -> Self
20970     where
20971         F: FnMut(&::std::ffi::CStr) -> *const c_void,
20972     {
20973         Self {
20974             cmd_copy_buffer2_khr: unsafe {
20975                 unsafe extern "system" fn cmd_copy_buffer2_khr(
20976                     _command_buffer: CommandBuffer,
20977                     _p_copy_buffer_info: *const CopyBufferInfo2KHR,
20978                 ) {
20979                     panic!(concat!("Unable to load ", stringify!(cmd_copy_buffer2_khr)))
20980                 }
20981                 let cname =
20982                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyBuffer2KHR\0");
20983                 let val = _f(cname);
20984                 if val.is_null() {
20985                     cmd_copy_buffer2_khr
20986                 } else {
20987                     ::std::mem::transmute(val)
20988                 }
20989             },
20990             cmd_copy_image2_khr: unsafe {
20991                 unsafe extern "system" fn cmd_copy_image2_khr(
20992                     _command_buffer: CommandBuffer,
20993                     _p_copy_image_info: *const CopyImageInfo2KHR,
20994                 ) {
20995                     panic!(concat!("Unable to load ", stringify!(cmd_copy_image2_khr)))
20996                 }
20997                 let cname =
20998                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdCopyImage2KHR\0");
20999                 let val = _f(cname);
21000                 if val.is_null() {
21001                     cmd_copy_image2_khr
21002                 } else {
21003                     ::std::mem::transmute(val)
21004                 }
21005             },
21006             cmd_copy_buffer_to_image2_khr: unsafe {
21007                 unsafe extern "system" fn cmd_copy_buffer_to_image2_khr(
21008                     _command_buffer: CommandBuffer,
21009                     _p_copy_buffer_to_image_info: *const CopyBufferToImageInfo2KHR,
21010                 ) {
21011                     panic!(concat!(
21012                         "Unable to load ",
21013                         stringify!(cmd_copy_buffer_to_image2_khr)
21014                     ))
21015                 }
21016                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21017                     b"vkCmdCopyBufferToImage2KHR\0",
21018                 );
21019                 let val = _f(cname);
21020                 if val.is_null() {
21021                     cmd_copy_buffer_to_image2_khr
21022                 } else {
21023                     ::std::mem::transmute(val)
21024                 }
21025             },
21026             cmd_copy_image_to_buffer2_khr: unsafe {
21027                 unsafe extern "system" fn cmd_copy_image_to_buffer2_khr(
21028                     _command_buffer: CommandBuffer,
21029                     _p_copy_image_to_buffer_info: *const CopyImageToBufferInfo2KHR,
21030                 ) {
21031                     panic!(concat!(
21032                         "Unable to load ",
21033                         stringify!(cmd_copy_image_to_buffer2_khr)
21034                     ))
21035                 }
21036                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21037                     b"vkCmdCopyImageToBuffer2KHR\0",
21038                 );
21039                 let val = _f(cname);
21040                 if val.is_null() {
21041                     cmd_copy_image_to_buffer2_khr
21042                 } else {
21043                     ::std::mem::transmute(val)
21044                 }
21045             },
21046             cmd_blit_image2_khr: unsafe {
21047                 unsafe extern "system" fn cmd_blit_image2_khr(
21048                     _command_buffer: CommandBuffer,
21049                     _p_blit_image_info: *const BlitImageInfo2KHR,
21050                 ) {
21051                     panic!(concat!("Unable to load ", stringify!(cmd_blit_image2_khr)))
21052                 }
21053                 let cname =
21054                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdBlitImage2KHR\0");
21055                 let val = _f(cname);
21056                 if val.is_null() {
21057                     cmd_blit_image2_khr
21058                 } else {
21059                     ::std::mem::transmute(val)
21060                 }
21061             },
21062             cmd_resolve_image2_khr: unsafe {
21063                 unsafe extern "system" fn cmd_resolve_image2_khr(
21064                     _command_buffer: CommandBuffer,
21065                     _p_resolve_image_info: *const ResolveImageInfo2KHR,
21066                 ) {
21067                     panic!(concat!(
21068                         "Unable to load ",
21069                         stringify!(cmd_resolve_image2_khr)
21070                     ))
21071                 }
21072                 let cname =
21073                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdResolveImage2KHR\0");
21074                 let val = _f(cname);
21075                 if val.is_null() {
21076                     cmd_resolve_image2_khr
21077                 } else {
21078                     ::std::mem::transmute(val)
21079                 }
21080             },
21081         }
21082     }
21083     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdCopyBuffer2KHR.html>"]
cmd_copy_buffer2_khr( &self, command_buffer: CommandBuffer, p_copy_buffer_info: *const CopyBufferInfo2KHR, )21084     pub unsafe fn cmd_copy_buffer2_khr(
21085         &self,
21086         command_buffer: CommandBuffer,
21087         p_copy_buffer_info: *const CopyBufferInfo2KHR,
21088     ) {
21089         (self.cmd_copy_buffer2_khr)(command_buffer, p_copy_buffer_info)
21090     }
21091     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdCopyImage2KHR.html>"]
cmd_copy_image2_khr( &self, command_buffer: CommandBuffer, p_copy_image_info: *const CopyImageInfo2KHR, )21092     pub unsafe fn cmd_copy_image2_khr(
21093         &self,
21094         command_buffer: CommandBuffer,
21095         p_copy_image_info: *const CopyImageInfo2KHR,
21096     ) {
21097         (self.cmd_copy_image2_khr)(command_buffer, p_copy_image_info)
21098     }
21099     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdCopyBufferToImage2KHR.html>"]
cmd_copy_buffer_to_image2_khr( &self, command_buffer: CommandBuffer, p_copy_buffer_to_image_info: *const CopyBufferToImageInfo2KHR, )21100     pub unsafe fn cmd_copy_buffer_to_image2_khr(
21101         &self,
21102         command_buffer: CommandBuffer,
21103         p_copy_buffer_to_image_info: *const CopyBufferToImageInfo2KHR,
21104     ) {
21105         (self.cmd_copy_buffer_to_image2_khr)(command_buffer, p_copy_buffer_to_image_info)
21106     }
21107     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdCopyImageToBuffer2KHR.html>"]
cmd_copy_image_to_buffer2_khr( &self, command_buffer: CommandBuffer, p_copy_image_to_buffer_info: *const CopyImageToBufferInfo2KHR, )21108     pub unsafe fn cmd_copy_image_to_buffer2_khr(
21109         &self,
21110         command_buffer: CommandBuffer,
21111         p_copy_image_to_buffer_info: *const CopyImageToBufferInfo2KHR,
21112     ) {
21113         (self.cmd_copy_image_to_buffer2_khr)(command_buffer, p_copy_image_to_buffer_info)
21114     }
21115     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBlitImage2KHR.html>"]
cmd_blit_image2_khr( &self, command_buffer: CommandBuffer, p_blit_image_info: *const BlitImageInfo2KHR, )21116     pub unsafe fn cmd_blit_image2_khr(
21117         &self,
21118         command_buffer: CommandBuffer,
21119         p_blit_image_info: *const BlitImageInfo2KHR,
21120     ) {
21121         (self.cmd_blit_image2_khr)(command_buffer, p_blit_image_info)
21122     }
21123     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdResolveImage2KHR.html>"]
cmd_resolve_image2_khr( &self, command_buffer: CommandBuffer, p_resolve_image_info: *const ResolveImageInfo2KHR, )21124     pub unsafe fn cmd_resolve_image2_khr(
21125         &self,
21126         command_buffer: CommandBuffer,
21127         p_resolve_image_info: *const ResolveImageInfo2KHR,
21128     ) {
21129         (self.cmd_resolve_image2_khr)(command_buffer, p_resolve_image_info)
21130     }
21131 }
21132 #[doc = "Generated from 'VK_KHR_copy_commands2'"]
21133 impl StructureType {
21134     pub const COPY_BUFFER_INFO_2_KHR: Self = Self(1_000_337_000);
21135     pub const COPY_IMAGE_INFO_2_KHR: Self = Self(1_000_337_001);
21136     pub const COPY_BUFFER_TO_IMAGE_INFO_2_KHR: Self = Self(1_000_337_002);
21137     pub const COPY_IMAGE_TO_BUFFER_INFO_2_KHR: Self = Self(1_000_337_003);
21138     pub const BLIT_IMAGE_INFO_2_KHR: Self = Self(1_000_337_004);
21139     pub const RESOLVE_IMAGE_INFO_2_KHR: Self = Self(1_000_337_005);
21140     pub const BUFFER_COPY_2_KHR: Self = Self(1_000_337_006);
21141     pub const IMAGE_COPY_2_KHR: Self = Self(1_000_337_007);
21142     pub const IMAGE_BLIT_2_KHR: Self = Self(1_000_337_008);
21143     pub const BUFFER_IMAGE_COPY_2_KHR: Self = Self(1_000_337_009);
21144     pub const IMAGE_RESOLVE_2_KHR: Self = Self(1_000_337_010);
21145 }
21146 impl ArmExtension339Fn {
name() -> &'static ::std::ffi::CStr21147     pub fn name() -> &'static ::std::ffi::CStr {
21148         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_ARM_extension_339\0") }
21149     }
21150     pub const SPEC_VERSION: u32 = 0u32;
21151 }
21152 #[derive(Clone)]
21153 pub struct ArmExtension339Fn {}
21154 unsafe impl Send for ArmExtension339Fn {}
21155 unsafe impl Sync for ArmExtension339Fn {}
21156 impl ArmExtension339Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21157     pub fn load<F>(mut _f: F) -> Self
21158     where
21159         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21160     {
21161         Self {}
21162     }
21163 }
21164 impl ExtExtension340Fn {
name() -> &'static ::std::ffi::CStr21165     pub fn name() -> &'static ::std::ffi::CStr {
21166         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_340\0") }
21167     }
21168     pub const SPEC_VERSION: u32 = 0u32;
21169 }
21170 #[derive(Clone)]
21171 pub struct ExtExtension340Fn {}
21172 unsafe impl Send for ExtExtension340Fn {}
21173 unsafe impl Sync for ExtExtension340Fn {}
21174 impl ExtExtension340Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21175     pub fn load<F>(mut _f: F) -> Self
21176     where
21177         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21178     {
21179         Self {}
21180     }
21181 }
21182 #[doc = "Generated from 'VK_EXT_extension_340'"]
21183 impl ImageUsageFlags {
21184     pub const RESERVED_19_EXT: Self = Self(0b1000_0000_0000_0000_0000);
21185 }
21186 impl Ext4444FormatsFn {
name() -> &'static ::std::ffi::CStr21187     pub fn name() -> &'static ::std::ffi::CStr {
21188         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_4444_formats\0") }
21189     }
21190     pub const SPEC_VERSION: u32 = 1u32;
21191 }
21192 #[derive(Clone)]
21193 pub struct Ext4444FormatsFn {}
21194 unsafe impl Send for Ext4444FormatsFn {}
21195 unsafe impl Sync for Ext4444FormatsFn {}
21196 impl Ext4444FormatsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21197     pub fn load<F>(mut _f: F) -> Self
21198     where
21199         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21200     {
21201         Self {}
21202     }
21203 }
21204 #[doc = "Generated from 'VK_EXT_4444_formats'"]
21205 impl Format {
21206     pub const A4R4G4B4_UNORM_PACK16_EXT: Self = Self(1_000_340_000);
21207     pub const A4B4G4R4_UNORM_PACK16_EXT: Self = Self(1_000_340_001);
21208 }
21209 #[doc = "Generated from 'VK_EXT_4444_formats'"]
21210 impl StructureType {
21211     pub const PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: Self = Self(1_000_340_000);
21212 }
21213 impl ExtExtension342Fn {
name() -> &'static ::std::ffi::CStr21214     pub fn name() -> &'static ::std::ffi::CStr {
21215         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_342\0") }
21216     }
21217     pub const SPEC_VERSION: u32 = 0u32;
21218 }
21219 #[derive(Clone)]
21220 pub struct ExtExtension342Fn {}
21221 unsafe impl Send for ExtExtension342Fn {}
21222 unsafe impl Sync for ExtExtension342Fn {}
21223 impl ExtExtension342Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21224     pub fn load<F>(mut _f: F) -> Self
21225     where
21226         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21227     {
21228         Self {}
21229     }
21230 }
21231 impl ArmRasterizationOrderAttachmentAccessFn {
name() -> &'static ::std::ffi::CStr21232     pub fn name() -> &'static ::std::ffi::CStr {
21233         unsafe {
21234             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21235                 b"VK_ARM_rasterization_order_attachment_access\0",
21236             )
21237         }
21238     }
21239     pub const SPEC_VERSION: u32 = 1u32;
21240 }
21241 #[derive(Clone)]
21242 pub struct ArmRasterizationOrderAttachmentAccessFn {}
21243 unsafe impl Send for ArmRasterizationOrderAttachmentAccessFn {}
21244 unsafe impl Sync for ArmRasterizationOrderAttachmentAccessFn {}
21245 impl ArmRasterizationOrderAttachmentAccessFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21246     pub fn load<F>(mut _f: F) -> Self
21247     where
21248         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21249     {
21250         Self {}
21251     }
21252 }
21253 #[doc = "Generated from 'VK_ARM_rasterization_order_attachment_access'"]
21254 impl PipelineColorBlendStateCreateFlags {
21255     pub const RASTERIZATION_ORDER_ATTACHMENT_ACCESS_ARM: Self = Self(0b1);
21256 }
21257 #[doc = "Generated from 'VK_ARM_rasterization_order_attachment_access'"]
21258 impl PipelineDepthStencilStateCreateFlags {
21259     pub const RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_ARM: Self = Self(0b1);
21260     pub const RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_ARM: Self = Self(0b10);
21261 }
21262 #[doc = "Generated from 'VK_ARM_rasterization_order_attachment_access'"]
21263 impl StructureType {
21264     pub const PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM: Self =
21265         Self(1_000_342_000);
21266 }
21267 #[doc = "Generated from 'VK_ARM_rasterization_order_attachment_access'"]
21268 impl SubpassDescriptionFlags {
21269     pub const RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_ARM: Self = Self(0b1_0000);
21270     pub const RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_ARM: Self = Self(0b10_0000);
21271     pub const RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_ARM: Self = Self(0b100_0000);
21272 }
21273 impl ArmExtension344Fn {
name() -> &'static ::std::ffi::CStr21274     pub fn name() -> &'static ::std::ffi::CStr {
21275         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_ARM_extension_344\0") }
21276     }
21277     pub const SPEC_VERSION: u32 = 0u32;
21278 }
21279 #[derive(Clone)]
21280 pub struct ArmExtension344Fn {}
21281 unsafe impl Send for ArmExtension344Fn {}
21282 unsafe impl Sync for ArmExtension344Fn {}
21283 impl ArmExtension344Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21284     pub fn load<F>(mut _f: F) -> Self
21285     where
21286         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21287     {
21288         Self {}
21289     }
21290 }
21291 impl ExtRgba10x6FormatsFn {
name() -> &'static ::std::ffi::CStr21292     pub fn name() -> &'static ::std::ffi::CStr {
21293         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_rgba10x6_formats\0") }
21294     }
21295     pub const SPEC_VERSION: u32 = 1u32;
21296 }
21297 #[derive(Clone)]
21298 pub struct ExtRgba10x6FormatsFn {}
21299 unsafe impl Send for ExtRgba10x6FormatsFn {}
21300 unsafe impl Sync for ExtRgba10x6FormatsFn {}
21301 impl ExtRgba10x6FormatsFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21302     pub fn load<F>(mut _f: F) -> Self
21303     where
21304         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21305     {
21306         Self {}
21307     }
21308 }
21309 #[doc = "Generated from 'VK_EXT_rgba10x6_formats'"]
21310 impl StructureType {
21311     pub const PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT: Self = Self(1_000_344_000);
21312 }
21313 impl NvAcquireWinrtDisplayFn {
name() -> &'static ::std::ffi::CStr21314     pub fn name() -> &'static ::std::ffi::CStr {
21315         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_acquire_winrt_display\0") }
21316     }
21317     pub const SPEC_VERSION: u32 = 1u32;
21318 }
21319 #[allow(non_camel_case_types)]
21320 pub type PFN_vkAcquireWinrtDisplayNV =
21321     unsafe extern "system" fn(physical_device: PhysicalDevice, display: DisplayKHR) -> Result;
21322 #[allow(non_camel_case_types)]
21323 pub type PFN_vkGetWinrtDisplayNV = unsafe extern "system" fn(
21324     physical_device: PhysicalDevice,
21325     device_relative_id: u32,
21326     p_display: *mut DisplayKHR,
21327 ) -> Result;
21328 #[derive(Clone)]
21329 pub struct NvAcquireWinrtDisplayFn {
21330     pub acquire_winrt_display_nv: PFN_vkAcquireWinrtDisplayNV,
21331     pub get_winrt_display_nv: PFN_vkGetWinrtDisplayNV,
21332 }
21333 unsafe impl Send for NvAcquireWinrtDisplayFn {}
21334 unsafe impl Sync for NvAcquireWinrtDisplayFn {}
21335 impl NvAcquireWinrtDisplayFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21336     pub fn load<F>(mut _f: F) -> Self
21337     where
21338         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21339     {
21340         Self {
21341             acquire_winrt_display_nv: unsafe {
21342                 unsafe extern "system" fn acquire_winrt_display_nv(
21343                     _physical_device: PhysicalDevice,
21344                     _display: DisplayKHR,
21345                 ) -> Result {
21346                     panic!(concat!(
21347                         "Unable to load ",
21348                         stringify!(acquire_winrt_display_nv)
21349                     ))
21350                 }
21351                 let cname =
21352                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkAcquireWinrtDisplayNV\0");
21353                 let val = _f(cname);
21354                 if val.is_null() {
21355                     acquire_winrt_display_nv
21356                 } else {
21357                     ::std::mem::transmute(val)
21358                 }
21359             },
21360             get_winrt_display_nv: unsafe {
21361                 unsafe extern "system" fn get_winrt_display_nv(
21362                     _physical_device: PhysicalDevice,
21363                     _device_relative_id: u32,
21364                     _p_display: *mut DisplayKHR,
21365                 ) -> Result {
21366                     panic!(concat!("Unable to load ", stringify!(get_winrt_display_nv)))
21367                 }
21368                 let cname =
21369                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkGetWinrtDisplayNV\0");
21370                 let val = _f(cname);
21371                 if val.is_null() {
21372                     get_winrt_display_nv
21373                 } else {
21374                     ::std::mem::transmute(val)
21375                 }
21376             },
21377         }
21378     }
21379     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkAcquireWinrtDisplayNV.html>"]
acquire_winrt_display_nv( &self, physical_device: PhysicalDevice, display: DisplayKHR, ) -> Result21380     pub unsafe fn acquire_winrt_display_nv(
21381         &self,
21382         physical_device: PhysicalDevice,
21383         display: DisplayKHR,
21384     ) -> Result {
21385         (self.acquire_winrt_display_nv)(physical_device, display)
21386     }
21387     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetWinrtDisplayNV.html>"]
get_winrt_display_nv( &self, physical_device: PhysicalDevice, device_relative_id: u32, p_display: *mut DisplayKHR, ) -> Result21388     pub unsafe fn get_winrt_display_nv(
21389         &self,
21390         physical_device: PhysicalDevice,
21391         device_relative_id: u32,
21392         p_display: *mut DisplayKHR,
21393     ) -> Result {
21394         (self.get_winrt_display_nv)(physical_device, device_relative_id, p_display)
21395     }
21396 }
21397 impl ExtDirectfbSurfaceFn {
name() -> &'static ::std::ffi::CStr21398     pub fn name() -> &'static ::std::ffi::CStr {
21399         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_directfb_surface\0") }
21400     }
21401     pub const SPEC_VERSION: u32 = 1u32;
21402 }
21403 #[allow(non_camel_case_types)]
21404 pub type PFN_vkCreateDirectFBSurfaceEXT = unsafe extern "system" fn(
21405     instance: Instance,
21406     p_create_info: *const DirectFBSurfaceCreateInfoEXT,
21407     p_allocator: *const AllocationCallbacks,
21408     p_surface: *mut SurfaceKHR,
21409 ) -> Result;
21410 #[allow(non_camel_case_types)]
21411 pub type PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT =
21412     unsafe extern "system" fn(
21413         physical_device: PhysicalDevice,
21414         queue_family_index: u32,
21415         dfb: *mut IDirectFB,
21416     ) -> Bool32;
21417 #[derive(Clone)]
21418 pub struct ExtDirectfbSurfaceFn {
21419     pub create_direct_fb_surface_ext: PFN_vkCreateDirectFBSurfaceEXT,
21420     pub get_physical_device_direct_fb_presentation_support_ext:
21421         PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT,
21422 }
21423 unsafe impl Send for ExtDirectfbSurfaceFn {}
21424 unsafe impl Sync for ExtDirectfbSurfaceFn {}
21425 impl ExtDirectfbSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21426     pub fn load<F>(mut _f: F) -> Self
21427     where
21428         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21429     {
21430         Self {
21431             create_direct_fb_surface_ext: unsafe {
21432                 unsafe extern "system" fn create_direct_fb_surface_ext(
21433                     _instance: Instance,
21434                     _p_create_info: *const DirectFBSurfaceCreateInfoEXT,
21435                     _p_allocator: *const AllocationCallbacks,
21436                     _p_surface: *mut SurfaceKHR,
21437                 ) -> Result {
21438                     panic!(concat!(
21439                         "Unable to load ",
21440                         stringify!(create_direct_fb_surface_ext)
21441                     ))
21442                 }
21443                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21444                     b"vkCreateDirectFBSurfaceEXT\0",
21445                 );
21446                 let val = _f(cname);
21447                 if val.is_null() {
21448                     create_direct_fb_surface_ext
21449                 } else {
21450                     ::std::mem::transmute(val)
21451                 }
21452             },
21453             get_physical_device_direct_fb_presentation_support_ext: unsafe {
21454                 unsafe extern "system" fn get_physical_device_direct_fb_presentation_support_ext(
21455                     _physical_device: PhysicalDevice,
21456                     _queue_family_index: u32,
21457                     _dfb: *mut IDirectFB,
21458                 ) -> Bool32 {
21459                     panic!(concat!(
21460                         "Unable to load ",
21461                         stringify!(get_physical_device_direct_fb_presentation_support_ext)
21462                     ))
21463                 }
21464                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21465                     b"vkGetPhysicalDeviceDirectFBPresentationSupportEXT\0",
21466                 );
21467                 let val = _f(cname);
21468                 if val.is_null() {
21469                     get_physical_device_direct_fb_presentation_support_ext
21470                 } else {
21471                     ::std::mem::transmute(val)
21472                 }
21473             },
21474         }
21475     }
21476     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateDirectFBSurfaceEXT.html>"]
create_direct_fb_surface_ext( &self, instance: Instance, p_create_info: *const DirectFBSurfaceCreateInfoEXT, p_allocator: *const AllocationCallbacks, p_surface: *mut SurfaceKHR, ) -> Result21477     pub unsafe fn create_direct_fb_surface_ext(
21478         &self,
21479         instance: Instance,
21480         p_create_info: *const DirectFBSurfaceCreateInfoEXT,
21481         p_allocator: *const AllocationCallbacks,
21482         p_surface: *mut SurfaceKHR,
21483     ) -> Result {
21484         (self.create_direct_fb_surface_ext)(instance, p_create_info, p_allocator, p_surface)
21485     }
21486     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceDirectFBPresentationSupportEXT.html>"]
get_physical_device_direct_fb_presentation_support_ext( &self, physical_device: PhysicalDevice, queue_family_index: u32, dfb: *mut IDirectFB, ) -> Bool3221487     pub unsafe fn get_physical_device_direct_fb_presentation_support_ext(
21488         &self,
21489         physical_device: PhysicalDevice,
21490         queue_family_index: u32,
21491         dfb: *mut IDirectFB,
21492     ) -> Bool32 {
21493         (self.get_physical_device_direct_fb_presentation_support_ext)(
21494             physical_device,
21495             queue_family_index,
21496             dfb,
21497         )
21498     }
21499 }
21500 #[doc = "Generated from 'VK_EXT_directfb_surface'"]
21501 impl StructureType {
21502     pub const DIRECTFB_SURFACE_CREATE_INFO_EXT: Self = Self(1_000_346_000);
21503 }
21504 impl KhrExtension350Fn {
name() -> &'static ::std::ffi::CStr21505     pub fn name() -> &'static ::std::ffi::CStr {
21506         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_350\0") }
21507     }
21508     pub const SPEC_VERSION: u32 = 0u32;
21509 }
21510 #[derive(Clone)]
21511 pub struct KhrExtension350Fn {}
21512 unsafe impl Send for KhrExtension350Fn {}
21513 unsafe impl Sync for KhrExtension350Fn {}
21514 impl KhrExtension350Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21515     pub fn load<F>(mut _f: F) -> Self
21516     where
21517         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21518     {
21519         Self {}
21520     }
21521 }
21522 impl NvExtension351Fn {
name() -> &'static ::std::ffi::CStr21523     pub fn name() -> &'static ::std::ffi::CStr {
21524         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_351\0") }
21525     }
21526     pub const SPEC_VERSION: u32 = 0u32;
21527 }
21528 #[derive(Clone)]
21529 pub struct NvExtension351Fn {}
21530 unsafe impl Send for NvExtension351Fn {}
21531 unsafe impl Sync for NvExtension351Fn {}
21532 impl NvExtension351Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21533     pub fn load<F>(mut _f: F) -> Self
21534     where
21535         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21536     {
21537         Self {}
21538     }
21539 }
21540 impl ValveMutableDescriptorTypeFn {
name() -> &'static ::std::ffi::CStr21541     pub fn name() -> &'static ::std::ffi::CStr {
21542         unsafe {
21543             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_VALVE_mutable_descriptor_type\0")
21544         }
21545     }
21546     pub const SPEC_VERSION: u32 = 1u32;
21547 }
21548 #[derive(Clone)]
21549 pub struct ValveMutableDescriptorTypeFn {}
21550 unsafe impl Send for ValveMutableDescriptorTypeFn {}
21551 unsafe impl Sync for ValveMutableDescriptorTypeFn {}
21552 impl ValveMutableDescriptorTypeFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21553     pub fn load<F>(mut _f: F) -> Self
21554     where
21555         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21556     {
21557         Self {}
21558     }
21559 }
21560 #[doc = "Generated from 'VK_VALVE_mutable_descriptor_type'"]
21561 impl DescriptorPoolCreateFlags {
21562     pub const HOST_ONLY_VALVE: Self = Self(0b100);
21563 }
21564 #[doc = "Generated from 'VK_VALVE_mutable_descriptor_type'"]
21565 impl DescriptorSetLayoutCreateFlags {
21566     pub const HOST_ONLY_POOL_VALVE: Self = Self(0b100);
21567 }
21568 #[doc = "Generated from 'VK_VALVE_mutable_descriptor_type'"]
21569 impl DescriptorType {
21570     pub const MUTABLE_VALVE: Self = Self(1_000_351_000);
21571 }
21572 #[doc = "Generated from 'VK_VALVE_mutable_descriptor_type'"]
21573 impl StructureType {
21574     pub const PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE: Self = Self(1_000_351_000);
21575     pub const MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE: Self = Self(1_000_351_002);
21576 }
21577 impl ExtVertexInputDynamicStateFn {
name() -> &'static ::std::ffi::CStr21578     pub fn name() -> &'static ::std::ffi::CStr {
21579         unsafe {
21580             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_vertex_input_dynamic_state\0")
21581         }
21582     }
21583     pub const SPEC_VERSION: u32 = 2u32;
21584 }
21585 #[allow(non_camel_case_types)]
21586 pub type PFN_vkCmdSetVertexInputEXT = unsafe extern "system" fn(
21587     command_buffer: CommandBuffer,
21588     vertex_binding_description_count: u32,
21589     p_vertex_binding_descriptions: *const VertexInputBindingDescription2EXT,
21590     vertex_attribute_description_count: u32,
21591     p_vertex_attribute_descriptions: *const VertexInputAttributeDescription2EXT,
21592 );
21593 #[derive(Clone)]
21594 pub struct ExtVertexInputDynamicStateFn {
21595     pub cmd_set_vertex_input_ext: PFN_vkCmdSetVertexInputEXT,
21596 }
21597 unsafe impl Send for ExtVertexInputDynamicStateFn {}
21598 unsafe impl Sync for ExtVertexInputDynamicStateFn {}
21599 impl ExtVertexInputDynamicStateFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21600     pub fn load<F>(mut _f: F) -> Self
21601     where
21602         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21603     {
21604         Self {
21605             cmd_set_vertex_input_ext: unsafe {
21606                 unsafe extern "system" fn cmd_set_vertex_input_ext(
21607                     _command_buffer: CommandBuffer,
21608                     _vertex_binding_description_count: u32,
21609                     _p_vertex_binding_descriptions: *const VertexInputBindingDescription2EXT,
21610                     _vertex_attribute_description_count: u32,
21611                     _p_vertex_attribute_descriptions: *const VertexInputAttributeDescription2EXT,
21612                 ) {
21613                     panic!(concat!(
21614                         "Unable to load ",
21615                         stringify!(cmd_set_vertex_input_ext)
21616                     ))
21617                 }
21618                 let cname =
21619                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetVertexInputEXT\0");
21620                 let val = _f(cname);
21621                 if val.is_null() {
21622                     cmd_set_vertex_input_ext
21623                 } else {
21624                     ::std::mem::transmute(val)
21625                 }
21626             },
21627         }
21628     }
21629     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetVertexInputEXT.html>"]
cmd_set_vertex_input_ext( &self, command_buffer: CommandBuffer, vertex_binding_description_count: u32, p_vertex_binding_descriptions: *const VertexInputBindingDescription2EXT, vertex_attribute_description_count: u32, p_vertex_attribute_descriptions: *const VertexInputAttributeDescription2EXT, )21630     pub unsafe fn cmd_set_vertex_input_ext(
21631         &self,
21632         command_buffer: CommandBuffer,
21633         vertex_binding_description_count: u32,
21634         p_vertex_binding_descriptions: *const VertexInputBindingDescription2EXT,
21635         vertex_attribute_description_count: u32,
21636         p_vertex_attribute_descriptions: *const VertexInputAttributeDescription2EXT,
21637     ) {
21638         (self.cmd_set_vertex_input_ext)(
21639             command_buffer,
21640             vertex_binding_description_count,
21641             p_vertex_binding_descriptions,
21642             vertex_attribute_description_count,
21643             p_vertex_attribute_descriptions,
21644         )
21645     }
21646 }
21647 #[doc = "Generated from 'VK_EXT_vertex_input_dynamic_state'"]
21648 impl DynamicState {
21649     pub const VERTEX_INPUT_EXT: Self = Self(1_000_352_000);
21650 }
21651 #[doc = "Generated from 'VK_EXT_vertex_input_dynamic_state'"]
21652 impl StructureType {
21653     pub const PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT: Self = Self(1_000_352_000);
21654     pub const VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT: Self = Self(1_000_352_001);
21655     pub const VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT: Self = Self(1_000_352_002);
21656 }
21657 impl ExtPhysicalDeviceDrmFn {
name() -> &'static ::std::ffi::CStr21658     pub fn name() -> &'static ::std::ffi::CStr {
21659         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_physical_device_drm\0") }
21660     }
21661     pub const SPEC_VERSION: u32 = 1u32;
21662 }
21663 #[derive(Clone)]
21664 pub struct ExtPhysicalDeviceDrmFn {}
21665 unsafe impl Send for ExtPhysicalDeviceDrmFn {}
21666 unsafe impl Sync for ExtPhysicalDeviceDrmFn {}
21667 impl ExtPhysicalDeviceDrmFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21668     pub fn load<F>(mut _f: F) -> Self
21669     where
21670         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21671     {
21672         Self {}
21673     }
21674 }
21675 #[doc = "Generated from 'VK_EXT_physical_device_drm'"]
21676 impl StructureType {
21677     pub const PHYSICAL_DEVICE_DRM_PROPERTIES_EXT: Self = Self(1_000_353_000);
21678 }
21679 impl ExtExtension355Fn {
name() -> &'static ::std::ffi::CStr21680     pub fn name() -> &'static ::std::ffi::CStr {
21681         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_355\0") }
21682     }
21683     pub const SPEC_VERSION: u32 = 0u32;
21684 }
21685 #[derive(Clone)]
21686 pub struct ExtExtension355Fn {}
21687 unsafe impl Send for ExtExtension355Fn {}
21688 unsafe impl Sync for ExtExtension355Fn {}
21689 impl ExtExtension355Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21690     pub fn load<F>(mut _f: F) -> Self
21691     where
21692         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21693     {
21694         Self {}
21695     }
21696 }
21697 impl ExtDepthClipControlFn {
name() -> &'static ::std::ffi::CStr21698     pub fn name() -> &'static ::std::ffi::CStr {
21699         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_depth_clip_control\0") }
21700     }
21701     pub const SPEC_VERSION: u32 = 1u32;
21702 }
21703 #[derive(Clone)]
21704 pub struct ExtDepthClipControlFn {}
21705 unsafe impl Send for ExtDepthClipControlFn {}
21706 unsafe impl Sync for ExtDepthClipControlFn {}
21707 impl ExtDepthClipControlFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21708     pub fn load<F>(mut _f: F) -> Self
21709     where
21710         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21711     {
21712         Self {}
21713     }
21714 }
21715 #[doc = "Generated from 'VK_EXT_depth_clip_control'"]
21716 impl StructureType {
21717     pub const PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT: Self = Self(1_000_355_000);
21718     pub const PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT: Self = Self(1_000_355_001);
21719 }
21720 impl ExtPrimitiveTopologyListRestartFn {
name() -> &'static ::std::ffi::CStr21721     pub fn name() -> &'static ::std::ffi::CStr {
21722         unsafe {
21723             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21724                 b"VK_EXT_primitive_topology_list_restart\0",
21725             )
21726         }
21727     }
21728     pub const SPEC_VERSION: u32 = 1u32;
21729 }
21730 #[derive(Clone)]
21731 pub struct ExtPrimitiveTopologyListRestartFn {}
21732 unsafe impl Send for ExtPrimitiveTopologyListRestartFn {}
21733 unsafe impl Sync for ExtPrimitiveTopologyListRestartFn {}
21734 impl ExtPrimitiveTopologyListRestartFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21735     pub fn load<F>(mut _f: F) -> Self
21736     where
21737         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21738     {
21739         Self {}
21740     }
21741 }
21742 #[doc = "Generated from 'VK_EXT_primitive_topology_list_restart'"]
21743 impl StructureType {
21744     pub const PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: Self =
21745         Self(1_000_356_000);
21746 }
21747 impl KhrExtension358Fn {
name() -> &'static ::std::ffi::CStr21748     pub fn name() -> &'static ::std::ffi::CStr {
21749         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_358\0") }
21750     }
21751     pub const SPEC_VERSION: u32 = 0u32;
21752 }
21753 #[derive(Clone)]
21754 pub struct KhrExtension358Fn {}
21755 unsafe impl Send for KhrExtension358Fn {}
21756 unsafe impl Sync for KhrExtension358Fn {}
21757 impl KhrExtension358Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21758     pub fn load<F>(mut _f: F) -> Self
21759     where
21760         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21761     {
21762         Self {}
21763     }
21764 }
21765 impl ExtExtension359Fn {
name() -> &'static ::std::ffi::CStr21766     pub fn name() -> &'static ::std::ffi::CStr {
21767         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_359\0") }
21768     }
21769     pub const SPEC_VERSION: u32 = 0u32;
21770 }
21771 #[derive(Clone)]
21772 pub struct ExtExtension359Fn {}
21773 unsafe impl Send for ExtExtension359Fn {}
21774 unsafe impl Sync for ExtExtension359Fn {}
21775 impl ExtExtension359Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21776     pub fn load<F>(mut _f: F) -> Self
21777     where
21778         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21779     {
21780         Self {}
21781     }
21782 }
21783 impl ExtExtension360Fn {
name() -> &'static ::std::ffi::CStr21784     pub fn name() -> &'static ::std::ffi::CStr {
21785         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_360\0") }
21786     }
21787     pub const SPEC_VERSION: u32 = 0u32;
21788 }
21789 #[derive(Clone)]
21790 pub struct ExtExtension360Fn {}
21791 unsafe impl Send for ExtExtension360Fn {}
21792 unsafe impl Sync for ExtExtension360Fn {}
21793 impl ExtExtension360Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21794     pub fn load<F>(mut _f: F) -> Self
21795     where
21796         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21797     {
21798         Self {}
21799     }
21800 }
21801 impl KhrFormatFeatureFlags2Fn {
name() -> &'static ::std::ffi::CStr21802     pub fn name() -> &'static ::std::ffi::CStr {
21803         unsafe {
21804             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_format_feature_flags2\0")
21805         }
21806     }
21807     pub const SPEC_VERSION: u32 = 1u32;
21808 }
21809 #[derive(Clone)]
21810 pub struct KhrFormatFeatureFlags2Fn {}
21811 unsafe impl Send for KhrFormatFeatureFlags2Fn {}
21812 unsafe impl Sync for KhrFormatFeatureFlags2Fn {}
21813 impl KhrFormatFeatureFlags2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21814     pub fn load<F>(mut _f: F) -> Self
21815     where
21816         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21817     {
21818         Self {}
21819     }
21820 }
21821 #[doc = "Generated from 'VK_KHR_format_feature_flags2'"]
21822 impl StructureType {
21823     pub const FORMAT_PROPERTIES_3_KHR: Self = Self(1_000_360_000);
21824 }
21825 impl ExtExtension362Fn {
name() -> &'static ::std::ffi::CStr21826     pub fn name() -> &'static ::std::ffi::CStr {
21827         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_362\0") }
21828     }
21829     pub const SPEC_VERSION: u32 = 0u32;
21830 }
21831 #[derive(Clone)]
21832 pub struct ExtExtension362Fn {}
21833 unsafe impl Send for ExtExtension362Fn {}
21834 unsafe impl Sync for ExtExtension362Fn {}
21835 impl ExtExtension362Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21836     pub fn load<F>(mut _f: F) -> Self
21837     where
21838         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21839     {
21840         Self {}
21841     }
21842 }
21843 impl ExtExtension363Fn {
name() -> &'static ::std::ffi::CStr21844     pub fn name() -> &'static ::std::ffi::CStr {
21845         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_363\0") }
21846     }
21847     pub const SPEC_VERSION: u32 = 0u32;
21848 }
21849 #[derive(Clone)]
21850 pub struct ExtExtension363Fn {}
21851 unsafe impl Send for ExtExtension363Fn {}
21852 unsafe impl Sync for ExtExtension363Fn {}
21853 impl ExtExtension363Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21854     pub fn load<F>(mut _f: F) -> Self
21855     where
21856         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21857     {
21858         Self {}
21859     }
21860 }
21861 impl FuchsiaExtension364Fn {
name() -> &'static ::std::ffi::CStr21862     pub fn name() -> &'static ::std::ffi::CStr {
21863         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_extension_364\0") }
21864     }
21865     pub const SPEC_VERSION: u32 = 0u32;
21866 }
21867 #[derive(Clone)]
21868 pub struct FuchsiaExtension364Fn {}
21869 unsafe impl Send for FuchsiaExtension364Fn {}
21870 unsafe impl Sync for FuchsiaExtension364Fn {}
21871 impl FuchsiaExtension364Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21872     pub fn load<F>(mut _f: F) -> Self
21873     where
21874         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21875     {
21876         Self {}
21877     }
21878 }
21879 impl FuchsiaExternalMemoryFn {
name() -> &'static ::std::ffi::CStr21880     pub fn name() -> &'static ::std::ffi::CStr {
21881         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_external_memory\0") }
21882     }
21883     pub const SPEC_VERSION: u32 = 1u32;
21884 }
21885 #[allow(non_camel_case_types)]
21886 pub type PFN_vkGetMemoryZirconHandleFUCHSIA = unsafe extern "system" fn(
21887     device: Device,
21888     p_get_zircon_handle_info: *const MemoryGetZirconHandleInfoFUCHSIA,
21889     p_zircon_handle: *mut zx_handle_t,
21890 ) -> Result;
21891 #[allow(non_camel_case_types)]
21892 pub type PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA = unsafe extern "system" fn(
21893     device: Device,
21894     handle_type: ExternalMemoryHandleTypeFlags,
21895     zircon_handle: zx_handle_t,
21896     p_memory_zircon_handle_properties: *mut MemoryZirconHandlePropertiesFUCHSIA,
21897 ) -> Result;
21898 #[derive(Clone)]
21899 pub struct FuchsiaExternalMemoryFn {
21900     pub get_memory_zircon_handle_fuchsia: PFN_vkGetMemoryZirconHandleFUCHSIA,
21901     pub get_memory_zircon_handle_properties_fuchsia: PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA,
21902 }
21903 unsafe impl Send for FuchsiaExternalMemoryFn {}
21904 unsafe impl Sync for FuchsiaExternalMemoryFn {}
21905 impl FuchsiaExternalMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,21906     pub fn load<F>(mut _f: F) -> Self
21907     where
21908         F: FnMut(&::std::ffi::CStr) -> *const c_void,
21909     {
21910         Self {
21911             get_memory_zircon_handle_fuchsia: unsafe {
21912                 unsafe extern "system" fn get_memory_zircon_handle_fuchsia(
21913                     _device: Device,
21914                     _p_get_zircon_handle_info: *const MemoryGetZirconHandleInfoFUCHSIA,
21915                     _p_zircon_handle: *mut zx_handle_t,
21916                 ) -> Result {
21917                     panic!(concat!(
21918                         "Unable to load ",
21919                         stringify!(get_memory_zircon_handle_fuchsia)
21920                     ))
21921                 }
21922                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21923                     b"vkGetMemoryZirconHandleFUCHSIA\0",
21924                 );
21925                 let val = _f(cname);
21926                 if val.is_null() {
21927                     get_memory_zircon_handle_fuchsia
21928                 } else {
21929                     ::std::mem::transmute(val)
21930                 }
21931             },
21932             get_memory_zircon_handle_properties_fuchsia: unsafe {
21933                 unsafe extern "system" fn get_memory_zircon_handle_properties_fuchsia(
21934                     _device: Device,
21935                     _handle_type: ExternalMemoryHandleTypeFlags,
21936                     _zircon_handle: zx_handle_t,
21937                     _p_memory_zircon_handle_properties: *mut MemoryZirconHandlePropertiesFUCHSIA,
21938                 ) -> Result {
21939                     panic!(concat!(
21940                         "Unable to load ",
21941                         stringify!(get_memory_zircon_handle_properties_fuchsia)
21942                     ))
21943                 }
21944                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
21945                     b"vkGetMemoryZirconHandlePropertiesFUCHSIA\0",
21946                 );
21947                 let val = _f(cname);
21948                 if val.is_null() {
21949                     get_memory_zircon_handle_properties_fuchsia
21950                 } else {
21951                     ::std::mem::transmute(val)
21952                 }
21953             },
21954         }
21955     }
21956     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetMemoryZirconHandleFUCHSIA.html>"]
get_memory_zircon_handle_fuchsia( &self, device: Device, p_get_zircon_handle_info: *const MemoryGetZirconHandleInfoFUCHSIA, p_zircon_handle: *mut zx_handle_t, ) -> Result21957     pub unsafe fn get_memory_zircon_handle_fuchsia(
21958         &self,
21959         device: Device,
21960         p_get_zircon_handle_info: *const MemoryGetZirconHandleInfoFUCHSIA,
21961         p_zircon_handle: *mut zx_handle_t,
21962     ) -> Result {
21963         (self.get_memory_zircon_handle_fuchsia)(device, p_get_zircon_handle_info, p_zircon_handle)
21964     }
21965     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetMemoryZirconHandlePropertiesFUCHSIA.html>"]
get_memory_zircon_handle_properties_fuchsia( &self, device: Device, handle_type: ExternalMemoryHandleTypeFlags, zircon_handle: zx_handle_t, p_memory_zircon_handle_properties: *mut MemoryZirconHandlePropertiesFUCHSIA, ) -> Result21966     pub unsafe fn get_memory_zircon_handle_properties_fuchsia(
21967         &self,
21968         device: Device,
21969         handle_type: ExternalMemoryHandleTypeFlags,
21970         zircon_handle: zx_handle_t,
21971         p_memory_zircon_handle_properties: *mut MemoryZirconHandlePropertiesFUCHSIA,
21972     ) -> Result {
21973         (self.get_memory_zircon_handle_properties_fuchsia)(
21974             device,
21975             handle_type,
21976             zircon_handle,
21977             p_memory_zircon_handle_properties,
21978         )
21979     }
21980 }
21981 #[doc = "Generated from 'VK_FUCHSIA_external_memory'"]
21982 impl ExternalMemoryHandleTypeFlags {
21983     pub const ZIRCON_VMO_FUCHSIA: Self = Self(0b1000_0000_0000);
21984 }
21985 #[doc = "Generated from 'VK_FUCHSIA_external_memory'"]
21986 impl StructureType {
21987     pub const IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: Self = Self(1_000_364_000);
21988     pub const MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA: Self = Self(1_000_364_001);
21989     pub const MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA: Self = Self(1_000_364_002);
21990 }
21991 impl FuchsiaExternalSemaphoreFn {
name() -> &'static ::std::ffi::CStr21992     pub fn name() -> &'static ::std::ffi::CStr {
21993         unsafe {
21994             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_external_semaphore\0")
21995         }
21996     }
21997     pub const SPEC_VERSION: u32 = 1u32;
21998 }
21999 #[allow(non_camel_case_types)]
22000 pub type PFN_vkImportSemaphoreZirconHandleFUCHSIA = unsafe extern "system" fn(
22001     device: Device,
22002     p_import_semaphore_zircon_handle_info: *const ImportSemaphoreZirconHandleInfoFUCHSIA,
22003 ) -> Result;
22004 #[allow(non_camel_case_types)]
22005 pub type PFN_vkGetSemaphoreZirconHandleFUCHSIA = unsafe extern "system" fn(
22006     device: Device,
22007     p_get_zircon_handle_info: *const SemaphoreGetZirconHandleInfoFUCHSIA,
22008     p_zircon_handle: *mut zx_handle_t,
22009 ) -> Result;
22010 #[derive(Clone)]
22011 pub struct FuchsiaExternalSemaphoreFn {
22012     pub import_semaphore_zircon_handle_fuchsia: PFN_vkImportSemaphoreZirconHandleFUCHSIA,
22013     pub get_semaphore_zircon_handle_fuchsia: PFN_vkGetSemaphoreZirconHandleFUCHSIA,
22014 }
22015 unsafe impl Send for FuchsiaExternalSemaphoreFn {}
22016 unsafe impl Sync for FuchsiaExternalSemaphoreFn {}
22017 impl FuchsiaExternalSemaphoreFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22018     pub fn load<F>(mut _f: F) -> Self
22019     where
22020         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22021     {
22022         Self {
22023             import_semaphore_zircon_handle_fuchsia: unsafe {
22024                 unsafe extern "system" fn import_semaphore_zircon_handle_fuchsia(
22025                     _device: Device,
22026                     _p_import_semaphore_zircon_handle_info : * const ImportSemaphoreZirconHandleInfoFUCHSIA,
22027                 ) -> Result {
22028                     panic!(concat!(
22029                         "Unable to load ",
22030                         stringify!(import_semaphore_zircon_handle_fuchsia)
22031                     ))
22032                 }
22033                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22034                     b"vkImportSemaphoreZirconHandleFUCHSIA\0",
22035                 );
22036                 let val = _f(cname);
22037                 if val.is_null() {
22038                     import_semaphore_zircon_handle_fuchsia
22039                 } else {
22040                     ::std::mem::transmute(val)
22041                 }
22042             },
22043             get_semaphore_zircon_handle_fuchsia: unsafe {
22044                 unsafe extern "system" fn get_semaphore_zircon_handle_fuchsia(
22045                     _device: Device,
22046                     _p_get_zircon_handle_info: *const SemaphoreGetZirconHandleInfoFUCHSIA,
22047                     _p_zircon_handle: *mut zx_handle_t,
22048                 ) -> Result {
22049                     panic!(concat!(
22050                         "Unable to load ",
22051                         stringify!(get_semaphore_zircon_handle_fuchsia)
22052                     ))
22053                 }
22054                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22055                     b"vkGetSemaphoreZirconHandleFUCHSIA\0",
22056                 );
22057                 let val = _f(cname);
22058                 if val.is_null() {
22059                     get_semaphore_zircon_handle_fuchsia
22060                 } else {
22061                     ::std::mem::transmute(val)
22062                 }
22063             },
22064         }
22065     }
22066     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkImportSemaphoreZirconHandleFUCHSIA.html>"]
import_semaphore_zircon_handle_fuchsia( &self, device: Device, p_import_semaphore_zircon_handle_info: *const ImportSemaphoreZirconHandleInfoFUCHSIA, ) -> Result22067     pub unsafe fn import_semaphore_zircon_handle_fuchsia(
22068         &self,
22069         device: Device,
22070         p_import_semaphore_zircon_handle_info: *const ImportSemaphoreZirconHandleInfoFUCHSIA,
22071     ) -> Result {
22072         (self.import_semaphore_zircon_handle_fuchsia)(device, p_import_semaphore_zircon_handle_info)
22073     }
22074     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetSemaphoreZirconHandleFUCHSIA.html>"]
get_semaphore_zircon_handle_fuchsia( &self, device: Device, p_get_zircon_handle_info: *const SemaphoreGetZirconHandleInfoFUCHSIA, p_zircon_handle: *mut zx_handle_t, ) -> Result22075     pub unsafe fn get_semaphore_zircon_handle_fuchsia(
22076         &self,
22077         device: Device,
22078         p_get_zircon_handle_info: *const SemaphoreGetZirconHandleInfoFUCHSIA,
22079         p_zircon_handle: *mut zx_handle_t,
22080     ) -> Result {
22081         (self.get_semaphore_zircon_handle_fuchsia)(
22082             device,
22083             p_get_zircon_handle_info,
22084             p_zircon_handle,
22085         )
22086     }
22087 }
22088 #[doc = "Generated from 'VK_FUCHSIA_external_semaphore'"]
22089 impl ExternalSemaphoreHandleTypeFlags {
22090     pub const ZIRCON_EVENT_FUCHSIA: Self = Self(0b1000_0000);
22091 }
22092 #[doc = "Generated from 'VK_FUCHSIA_external_semaphore'"]
22093 impl StructureType {
22094     pub const IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA: Self = Self(1_000_365_000);
22095     pub const SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA: Self = Self(1_000_365_001);
22096 }
22097 impl FuchsiaBufferCollectionFn {
name() -> &'static ::std::ffi::CStr22098     pub fn name() -> &'static ::std::ffi::CStr {
22099         unsafe {
22100             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_buffer_collection\0")
22101         }
22102     }
22103     pub const SPEC_VERSION: u32 = 2u32;
22104 }
22105 #[allow(non_camel_case_types)]
22106 pub type PFN_vkCreateBufferCollectionFUCHSIA = unsafe extern "system" fn(
22107     device: Device,
22108     p_create_info: *const BufferCollectionCreateInfoFUCHSIA,
22109     p_allocator: *const AllocationCallbacks,
22110     p_collection: *mut BufferCollectionFUCHSIA,
22111 ) -> Result;
22112 #[allow(non_camel_case_types)]
22113 pub type PFN_vkSetBufferCollectionImageConstraintsFUCHSIA = unsafe extern "system" fn(
22114     device: Device,
22115     collection: BufferCollectionFUCHSIA,
22116     p_image_constraints_info: *const ImageConstraintsInfoFUCHSIA,
22117 ) -> Result;
22118 #[allow(non_camel_case_types)]
22119 pub type PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA = unsafe extern "system" fn(
22120     device: Device,
22121     collection: BufferCollectionFUCHSIA,
22122     p_buffer_constraints_info: *const BufferConstraintsInfoFUCHSIA,
22123 ) -> Result;
22124 #[allow(non_camel_case_types)]
22125 pub type PFN_vkDestroyBufferCollectionFUCHSIA = unsafe extern "system" fn(
22126     device: Device,
22127     collection: BufferCollectionFUCHSIA,
22128     p_allocator: *const AllocationCallbacks,
22129 );
22130 #[allow(non_camel_case_types)]
22131 pub type PFN_vkGetBufferCollectionPropertiesFUCHSIA = unsafe extern "system" fn(
22132     device: Device,
22133     collection: BufferCollectionFUCHSIA,
22134     p_properties: *mut BufferCollectionPropertiesFUCHSIA,
22135 ) -> Result;
22136 #[derive(Clone)]
22137 pub struct FuchsiaBufferCollectionFn {
22138     pub create_buffer_collection_fuchsia: PFN_vkCreateBufferCollectionFUCHSIA,
22139     pub set_buffer_collection_image_constraints_fuchsia:
22140         PFN_vkSetBufferCollectionImageConstraintsFUCHSIA,
22141     pub set_buffer_collection_buffer_constraints_fuchsia:
22142         PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA,
22143     pub destroy_buffer_collection_fuchsia: PFN_vkDestroyBufferCollectionFUCHSIA,
22144     pub get_buffer_collection_properties_fuchsia: PFN_vkGetBufferCollectionPropertiesFUCHSIA,
22145 }
22146 unsafe impl Send for FuchsiaBufferCollectionFn {}
22147 unsafe impl Sync for FuchsiaBufferCollectionFn {}
22148 impl FuchsiaBufferCollectionFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22149     pub fn load<F>(mut _f: F) -> Self
22150     where
22151         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22152     {
22153         Self {
22154             create_buffer_collection_fuchsia: unsafe {
22155                 unsafe extern "system" fn create_buffer_collection_fuchsia(
22156                     _device: Device,
22157                     _p_create_info: *const BufferCollectionCreateInfoFUCHSIA,
22158                     _p_allocator: *const AllocationCallbacks,
22159                     _p_collection: *mut BufferCollectionFUCHSIA,
22160                 ) -> Result {
22161                     panic!(concat!(
22162                         "Unable to load ",
22163                         stringify!(create_buffer_collection_fuchsia)
22164                     ))
22165                 }
22166                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22167                     b"vkCreateBufferCollectionFUCHSIA\0",
22168                 );
22169                 let val = _f(cname);
22170                 if val.is_null() {
22171                     create_buffer_collection_fuchsia
22172                 } else {
22173                     ::std::mem::transmute(val)
22174                 }
22175             },
22176             set_buffer_collection_image_constraints_fuchsia: unsafe {
22177                 unsafe extern "system" fn set_buffer_collection_image_constraints_fuchsia(
22178                     _device: Device,
22179                     _collection: BufferCollectionFUCHSIA,
22180                     _p_image_constraints_info: *const ImageConstraintsInfoFUCHSIA,
22181                 ) -> Result {
22182                     panic!(concat!(
22183                         "Unable to load ",
22184                         stringify!(set_buffer_collection_image_constraints_fuchsia)
22185                     ))
22186                 }
22187                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22188                     b"vkSetBufferCollectionImageConstraintsFUCHSIA\0",
22189                 );
22190                 let val = _f(cname);
22191                 if val.is_null() {
22192                     set_buffer_collection_image_constraints_fuchsia
22193                 } else {
22194                     ::std::mem::transmute(val)
22195                 }
22196             },
22197             set_buffer_collection_buffer_constraints_fuchsia: unsafe {
22198                 unsafe extern "system" fn set_buffer_collection_buffer_constraints_fuchsia(
22199                     _device: Device,
22200                     _collection: BufferCollectionFUCHSIA,
22201                     _p_buffer_constraints_info: *const BufferConstraintsInfoFUCHSIA,
22202                 ) -> Result {
22203                     panic!(concat!(
22204                         "Unable to load ",
22205                         stringify!(set_buffer_collection_buffer_constraints_fuchsia)
22206                     ))
22207                 }
22208                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22209                     b"vkSetBufferCollectionBufferConstraintsFUCHSIA\0",
22210                 );
22211                 let val = _f(cname);
22212                 if val.is_null() {
22213                     set_buffer_collection_buffer_constraints_fuchsia
22214                 } else {
22215                     ::std::mem::transmute(val)
22216                 }
22217             },
22218             destroy_buffer_collection_fuchsia: unsafe {
22219                 unsafe extern "system" fn destroy_buffer_collection_fuchsia(
22220                     _device: Device,
22221                     _collection: BufferCollectionFUCHSIA,
22222                     _p_allocator: *const AllocationCallbacks,
22223                 ) {
22224                     panic!(concat!(
22225                         "Unable to load ",
22226                         stringify!(destroy_buffer_collection_fuchsia)
22227                     ))
22228                 }
22229                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22230                     b"vkDestroyBufferCollectionFUCHSIA\0",
22231                 );
22232                 let val = _f(cname);
22233                 if val.is_null() {
22234                     destroy_buffer_collection_fuchsia
22235                 } else {
22236                     ::std::mem::transmute(val)
22237                 }
22238             },
22239             get_buffer_collection_properties_fuchsia: unsafe {
22240                 unsafe extern "system" fn get_buffer_collection_properties_fuchsia(
22241                     _device: Device,
22242                     _collection: BufferCollectionFUCHSIA,
22243                     _p_properties: *mut BufferCollectionPropertiesFUCHSIA,
22244                 ) -> Result {
22245                     panic!(concat!(
22246                         "Unable to load ",
22247                         stringify!(get_buffer_collection_properties_fuchsia)
22248                     ))
22249                 }
22250                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22251                     b"vkGetBufferCollectionPropertiesFUCHSIA\0",
22252                 );
22253                 let val = _f(cname);
22254                 if val.is_null() {
22255                     get_buffer_collection_properties_fuchsia
22256                 } else {
22257                     ::std::mem::transmute(val)
22258                 }
22259             },
22260         }
22261     }
22262     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateBufferCollectionFUCHSIA.html>"]
create_buffer_collection_fuchsia( &self, device: Device, p_create_info: *const BufferCollectionCreateInfoFUCHSIA, p_allocator: *const AllocationCallbacks, p_collection: *mut BufferCollectionFUCHSIA, ) -> Result22263     pub unsafe fn create_buffer_collection_fuchsia(
22264         &self,
22265         device: Device,
22266         p_create_info: *const BufferCollectionCreateInfoFUCHSIA,
22267         p_allocator: *const AllocationCallbacks,
22268         p_collection: *mut BufferCollectionFUCHSIA,
22269     ) -> Result {
22270         (self.create_buffer_collection_fuchsia)(device, p_create_info, p_allocator, p_collection)
22271     }
22272     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkSetBufferCollectionImageConstraintsFUCHSIA.html>"]
set_buffer_collection_image_constraints_fuchsia( &self, device: Device, collection: BufferCollectionFUCHSIA, p_image_constraints_info: *const ImageConstraintsInfoFUCHSIA, ) -> Result22273     pub unsafe fn set_buffer_collection_image_constraints_fuchsia(
22274         &self,
22275         device: Device,
22276         collection: BufferCollectionFUCHSIA,
22277         p_image_constraints_info: *const ImageConstraintsInfoFUCHSIA,
22278     ) -> Result {
22279         (self.set_buffer_collection_image_constraints_fuchsia)(
22280             device,
22281             collection,
22282             p_image_constraints_info,
22283         )
22284     }
22285     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkSetBufferCollectionBufferConstraintsFUCHSIA.html>"]
set_buffer_collection_buffer_constraints_fuchsia( &self, device: Device, collection: BufferCollectionFUCHSIA, p_buffer_constraints_info: *const BufferConstraintsInfoFUCHSIA, ) -> Result22286     pub unsafe fn set_buffer_collection_buffer_constraints_fuchsia(
22287         &self,
22288         device: Device,
22289         collection: BufferCollectionFUCHSIA,
22290         p_buffer_constraints_info: *const BufferConstraintsInfoFUCHSIA,
22291     ) -> Result {
22292         (self.set_buffer_collection_buffer_constraints_fuchsia)(
22293             device,
22294             collection,
22295             p_buffer_constraints_info,
22296         )
22297     }
22298     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkDestroyBufferCollectionFUCHSIA.html>"]
destroy_buffer_collection_fuchsia( &self, device: Device, collection: BufferCollectionFUCHSIA, p_allocator: *const AllocationCallbacks, )22299     pub unsafe fn destroy_buffer_collection_fuchsia(
22300         &self,
22301         device: Device,
22302         collection: BufferCollectionFUCHSIA,
22303         p_allocator: *const AllocationCallbacks,
22304     ) {
22305         (self.destroy_buffer_collection_fuchsia)(device, collection, p_allocator)
22306     }
22307     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetBufferCollectionPropertiesFUCHSIA.html>"]
get_buffer_collection_properties_fuchsia( &self, device: Device, collection: BufferCollectionFUCHSIA, p_properties: *mut BufferCollectionPropertiesFUCHSIA, ) -> Result22308     pub unsafe fn get_buffer_collection_properties_fuchsia(
22309         &self,
22310         device: Device,
22311         collection: BufferCollectionFUCHSIA,
22312         p_properties: *mut BufferCollectionPropertiesFUCHSIA,
22313     ) -> Result {
22314         (self.get_buffer_collection_properties_fuchsia)(device, collection, p_properties)
22315     }
22316 }
22317 #[doc = "Generated from 'VK_FUCHSIA_buffer_collection'"]
22318 impl DebugReportObjectTypeEXT {
22319     pub const BUFFER_COLLECTION_FUCHSIA: Self = Self(1_000_366_000);
22320 }
22321 #[doc = "Generated from 'VK_FUCHSIA_buffer_collection'"]
22322 impl ObjectType {
22323     #[doc = "VkBufferCollectionFUCHSIA"]
22324     pub const BUFFER_COLLECTION_FUCHSIA: Self = Self(1_000_366_000);
22325 }
22326 #[doc = "Generated from 'VK_FUCHSIA_buffer_collection'"]
22327 impl StructureType {
22328     pub const BUFFER_COLLECTION_CREATE_INFO_FUCHSIA: Self = Self(1_000_366_000);
22329     pub const IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA: Self = Self(1_000_366_001);
22330     pub const BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA: Self = Self(1_000_366_002);
22331     pub const BUFFER_COLLECTION_PROPERTIES_FUCHSIA: Self = Self(1_000_366_003);
22332     pub const BUFFER_CONSTRAINTS_INFO_FUCHSIA: Self = Self(1_000_366_004);
22333     pub const BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA: Self = Self(1_000_366_005);
22334     pub const IMAGE_CONSTRAINTS_INFO_FUCHSIA: Self = Self(1_000_366_006);
22335     pub const IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA: Self = Self(1_000_366_007);
22336     pub const SYSMEM_COLOR_SPACE_FUCHSIA: Self = Self(1_000_366_008);
22337     pub const BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA: Self = Self(1_000_366_009);
22338 }
22339 impl FuchsiaExtension368Fn {
name() -> &'static ::std::ffi::CStr22340     pub fn name() -> &'static ::std::ffi::CStr {
22341         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FUCHSIA_extension_368\0") }
22342     }
22343     pub const SPEC_VERSION: u32 = 0u32;
22344 }
22345 #[derive(Clone)]
22346 pub struct FuchsiaExtension368Fn {}
22347 unsafe impl Send for FuchsiaExtension368Fn {}
22348 unsafe impl Sync for FuchsiaExtension368Fn {}
22349 impl FuchsiaExtension368Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22350     pub fn load<F>(mut _f: F) -> Self
22351     where
22352         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22353     {
22354         Self {}
22355     }
22356 }
22357 impl QcomExtension369Fn {
name() -> &'static ::std::ffi::CStr22358     pub fn name() -> &'static ::std::ffi::CStr {
22359         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_369\0") }
22360     }
22361     pub const SPEC_VERSION: u32 = 0u32;
22362 }
22363 #[derive(Clone)]
22364 pub struct QcomExtension369Fn {}
22365 unsafe impl Send for QcomExtension369Fn {}
22366 unsafe impl Sync for QcomExtension369Fn {}
22367 impl QcomExtension369Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22368     pub fn load<F>(mut _f: F) -> Self
22369     where
22370         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22371     {
22372         Self {}
22373     }
22374 }
22375 #[doc = "Generated from 'VK_QCOM_extension_369'"]
22376 impl DescriptorBindingFlags {
22377     pub const RESERVED_4_QCOM: Self = Self(0b1_0000);
22378 }
22379 impl HuaweiSubpassShadingFn {
name() -> &'static ::std::ffi::CStr22380     pub fn name() -> &'static ::std::ffi::CStr {
22381         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_subpass_shading\0") }
22382     }
22383     pub const SPEC_VERSION: u32 = 2u32;
22384 }
22385 #[allow(non_camel_case_types)]
22386 pub type PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = unsafe extern "system" fn(
22387     device: Device,
22388     renderpass: RenderPass,
22389     p_max_workgroup_size: *mut Extent2D,
22390 ) -> Result;
22391 #[allow(non_camel_case_types)]
22392 pub type PFN_vkCmdSubpassShadingHUAWEI = unsafe extern "system" fn(command_buffer: CommandBuffer);
22393 #[derive(Clone)]
22394 pub struct HuaweiSubpassShadingFn {
22395     pub get_device_subpass_shading_max_workgroup_size_huawei:
22396         PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI,
22397     pub cmd_subpass_shading_huawei: PFN_vkCmdSubpassShadingHUAWEI,
22398 }
22399 unsafe impl Send for HuaweiSubpassShadingFn {}
22400 unsafe impl Sync for HuaweiSubpassShadingFn {}
22401 impl HuaweiSubpassShadingFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22402     pub fn load<F>(mut _f: F) -> Self
22403     where
22404         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22405     {
22406         Self {
22407             get_device_subpass_shading_max_workgroup_size_huawei: unsafe {
22408                 unsafe extern "system" fn get_device_subpass_shading_max_workgroup_size_huawei(
22409                     _device: Device,
22410                     _renderpass: RenderPass,
22411                     _p_max_workgroup_size: *mut Extent2D,
22412                 ) -> Result {
22413                     panic!(concat!(
22414                         "Unable to load ",
22415                         stringify!(get_device_subpass_shading_max_workgroup_size_huawei)
22416                     ))
22417                 }
22418                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22419                     b"vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI\0",
22420                 );
22421                 let val = _f(cname);
22422                 if val.is_null() {
22423                     get_device_subpass_shading_max_workgroup_size_huawei
22424                 } else {
22425                     ::std::mem::transmute(val)
22426                 }
22427             },
22428             cmd_subpass_shading_huawei: unsafe {
22429                 unsafe extern "system" fn cmd_subpass_shading_huawei(
22430                     _command_buffer: CommandBuffer,
22431                 ) {
22432                     panic!(concat!(
22433                         "Unable to load ",
22434                         stringify!(cmd_subpass_shading_huawei)
22435                     ))
22436                 }
22437                 let cname =
22438                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSubpassShadingHUAWEI\0");
22439                 let val = _f(cname);
22440                 if val.is_null() {
22441                     cmd_subpass_shading_huawei
22442                 } else {
22443                     ::std::mem::transmute(val)
22444                 }
22445             },
22446         }
22447     }
22448     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI.html>"]
get_device_subpass_shading_max_workgroup_size_huawei( &self, device: Device, renderpass: RenderPass, p_max_workgroup_size: *mut Extent2D, ) -> Result22449     pub unsafe fn get_device_subpass_shading_max_workgroup_size_huawei(
22450         &self,
22451         device: Device,
22452         renderpass: RenderPass,
22453         p_max_workgroup_size: *mut Extent2D,
22454     ) -> Result {
22455         (self.get_device_subpass_shading_max_workgroup_size_huawei)(
22456             device,
22457             renderpass,
22458             p_max_workgroup_size,
22459         )
22460     }
22461     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSubpassShadingHUAWEI.html>"]
cmd_subpass_shading_huawei(&self, command_buffer: CommandBuffer)22462     pub unsafe fn cmd_subpass_shading_huawei(&self, command_buffer: CommandBuffer) {
22463         (self.cmd_subpass_shading_huawei)(command_buffer)
22464     }
22465 }
22466 #[doc = "Generated from 'VK_HUAWEI_subpass_shading'"]
22467 impl PipelineBindPoint {
22468     pub const SUBPASS_SHADING_HUAWEI: Self = Self(1_000_369_003);
22469 }
22470 #[doc = "Generated from 'VK_HUAWEI_subpass_shading'"]
22471 impl PipelineStageFlags2KHR {
22472     pub const SUBPASS_SHADING_HUAWEI: Self =
22473         Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
22474 }
22475 #[doc = "Generated from 'VK_HUAWEI_subpass_shading'"]
22476 impl ShaderStageFlags {
22477     pub const SUBPASS_SHADING_HUAWEI: Self = Self(0b100_0000_0000_0000);
22478 }
22479 #[doc = "Generated from 'VK_HUAWEI_subpass_shading'"]
22480 impl StructureType {
22481     pub const SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI: Self = Self(1_000_369_000);
22482     pub const PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: Self = Self(1_000_369_001);
22483     pub const PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI: Self = Self(1_000_369_002);
22484 }
22485 impl HuaweiInvocationMaskFn {
name() -> &'static ::std::ffi::CStr22486     pub fn name() -> &'static ::std::ffi::CStr {
22487         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_invocation_mask\0") }
22488     }
22489     pub const SPEC_VERSION: u32 = 1u32;
22490 }
22491 #[allow(non_camel_case_types)]
22492 pub type PFN_vkCmdBindInvocationMaskHUAWEI = unsafe extern "system" fn(
22493     command_buffer: CommandBuffer,
22494     image_view: ImageView,
22495     image_layout: ImageLayout,
22496 );
22497 #[derive(Clone)]
22498 pub struct HuaweiInvocationMaskFn {
22499     pub cmd_bind_invocation_mask_huawei: PFN_vkCmdBindInvocationMaskHUAWEI,
22500 }
22501 unsafe impl Send for HuaweiInvocationMaskFn {}
22502 unsafe impl Sync for HuaweiInvocationMaskFn {}
22503 impl HuaweiInvocationMaskFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22504     pub fn load<F>(mut _f: F) -> Self
22505     where
22506         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22507     {
22508         Self {
22509             cmd_bind_invocation_mask_huawei: unsafe {
22510                 unsafe extern "system" fn cmd_bind_invocation_mask_huawei(
22511                     _command_buffer: CommandBuffer,
22512                     _image_view: ImageView,
22513                     _image_layout: ImageLayout,
22514                 ) {
22515                     panic!(concat!(
22516                         "Unable to load ",
22517                         stringify!(cmd_bind_invocation_mask_huawei)
22518                     ))
22519                 }
22520                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22521                     b"vkCmdBindInvocationMaskHUAWEI\0",
22522                 );
22523                 let val = _f(cname);
22524                 if val.is_null() {
22525                     cmd_bind_invocation_mask_huawei
22526                 } else {
22527                     ::std::mem::transmute(val)
22528                 }
22529             },
22530         }
22531     }
22532     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBindInvocationMaskHUAWEI.html>"]
cmd_bind_invocation_mask_huawei( &self, command_buffer: CommandBuffer, image_view: ImageView, image_layout: ImageLayout, )22533     pub unsafe fn cmd_bind_invocation_mask_huawei(
22534         &self,
22535         command_buffer: CommandBuffer,
22536         image_view: ImageView,
22537         image_layout: ImageLayout,
22538     ) {
22539         (self.cmd_bind_invocation_mask_huawei)(command_buffer, image_view, image_layout)
22540     }
22541 }
22542 #[doc = "Generated from 'VK_HUAWEI_invocation_mask'"]
22543 impl AccessFlags2KHR {
22544     pub const INVOCATION_MASK_READ_HUAWEI: Self =
22545         Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
22546 }
22547 #[doc = "Generated from 'VK_HUAWEI_invocation_mask'"]
22548 impl ImageUsageFlags {
22549     pub const INVOCATION_MASK_HUAWEI: Self = Self(0b100_0000_0000_0000_0000);
22550 }
22551 #[doc = "Generated from 'VK_HUAWEI_invocation_mask'"]
22552 impl PipelineStageFlags2KHR {
22553     pub const INVOCATION_MASK_HUAWEI: Self =
22554         Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
22555 }
22556 #[doc = "Generated from 'VK_HUAWEI_invocation_mask'"]
22557 impl StructureType {
22558     pub const PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI: Self = Self(1_000_370_000);
22559 }
22560 impl NvExternalMemoryRdmaFn {
name() -> &'static ::std::ffi::CStr22561     pub fn name() -> &'static ::std::ffi::CStr {
22562         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_external_memory_rdma\0") }
22563     }
22564     pub const SPEC_VERSION: u32 = 1u32;
22565 }
22566 #[allow(non_camel_case_types)]
22567 pub type PFN_vkGetMemoryRemoteAddressNV = unsafe extern "system" fn(
22568     device: Device,
22569     p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV,
22570     p_address: *mut RemoteAddressNV,
22571 ) -> Result;
22572 #[derive(Clone)]
22573 pub struct NvExternalMemoryRdmaFn {
22574     pub get_memory_remote_address_nv: PFN_vkGetMemoryRemoteAddressNV,
22575 }
22576 unsafe impl Send for NvExternalMemoryRdmaFn {}
22577 unsafe impl Sync for NvExternalMemoryRdmaFn {}
22578 impl NvExternalMemoryRdmaFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22579     pub fn load<F>(mut _f: F) -> Self
22580     where
22581         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22582     {
22583         Self {
22584             get_memory_remote_address_nv: unsafe {
22585                 unsafe extern "system" fn get_memory_remote_address_nv(
22586                     _device: Device,
22587                     _p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV,
22588                     _p_address: *mut RemoteAddressNV,
22589                 ) -> Result {
22590                     panic!(concat!(
22591                         "Unable to load ",
22592                         stringify!(get_memory_remote_address_nv)
22593                     ))
22594                 }
22595                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22596                     b"vkGetMemoryRemoteAddressNV\0",
22597                 );
22598                 let val = _f(cname);
22599                 if val.is_null() {
22600                     get_memory_remote_address_nv
22601                 } else {
22602                     ::std::mem::transmute(val)
22603                 }
22604             },
22605         }
22606     }
22607     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetMemoryRemoteAddressNV.html>"]
get_memory_remote_address_nv( &self, device: Device, p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV, p_address: *mut RemoteAddressNV, ) -> Result22608     pub unsafe fn get_memory_remote_address_nv(
22609         &self,
22610         device: Device,
22611         p_memory_get_remote_address_info: *const MemoryGetRemoteAddressInfoNV,
22612         p_address: *mut RemoteAddressNV,
22613     ) -> Result {
22614         (self.get_memory_remote_address_nv)(device, p_memory_get_remote_address_info, p_address)
22615     }
22616 }
22617 #[doc = "Generated from 'VK_NV_external_memory_rdma'"]
22618 impl ExternalMemoryHandleTypeFlags {
22619     pub const RDMA_ADDRESS_NV: Self = Self(0b1_0000_0000_0000);
22620 }
22621 #[doc = "Generated from 'VK_NV_external_memory_rdma'"]
22622 impl MemoryPropertyFlags {
22623     pub const RDMA_CAPABLE_NV: Self = Self(0b1_0000_0000);
22624 }
22625 #[doc = "Generated from 'VK_NV_external_memory_rdma'"]
22626 impl StructureType {
22627     pub const MEMORY_GET_REMOTE_ADDRESS_INFO_NV: Self = Self(1_000_371_000);
22628     pub const PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV: Self = Self(1_000_371_001);
22629 }
22630 impl NvExtension373Fn {
name() -> &'static ::std::ffi::CStr22631     pub fn name() -> &'static ::std::ffi::CStr {
22632         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_373\0") }
22633     }
22634     pub const SPEC_VERSION: u32 = 0u32;
22635 }
22636 #[derive(Clone)]
22637 pub struct NvExtension373Fn {}
22638 unsafe impl Send for NvExtension373Fn {}
22639 unsafe impl Sync for NvExtension373Fn {}
22640 impl NvExtension373Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22641     pub fn load<F>(mut _f: F) -> Self
22642     where
22643         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22644     {
22645         Self {}
22646     }
22647 }
22648 impl NvExtension374Fn {
name() -> &'static ::std::ffi::CStr22649     pub fn name() -> &'static ::std::ffi::CStr {
22650         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_374\0") }
22651     }
22652     pub const SPEC_VERSION: u32 = 0u32;
22653 }
22654 #[derive(Clone)]
22655 pub struct NvExtension374Fn {}
22656 unsafe impl Send for NvExtension374Fn {}
22657 unsafe impl Sync for NvExtension374Fn {}
22658 impl NvExtension374Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22659     pub fn load<F>(mut _f: F) -> Self
22660     where
22661         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22662     {
22663         Self {}
22664     }
22665 }
22666 #[doc = "Generated from 'VK_NV_extension_374'"]
22667 impl ExternalFenceHandleTypeFlags {
22668     pub const RESERVED_4_NV: Self = Self(0b1_0000);
22669     pub const RESERVED_5_NV: Self = Self(0b10_0000);
22670 }
22671 #[doc = "Generated from 'VK_NV_extension_374'"]
22672 impl ExternalSemaphoreHandleTypeFlags {
22673     pub const RESERVED_5_NV: Self = Self(0b10_0000);
22674     pub const RESERVED_6_NV: Self = Self(0b100_0000);
22675 }
22676 impl NvExtension375Fn {
name() -> &'static ::std::ffi::CStr22677     pub fn name() -> &'static ::std::ffi::CStr {
22678         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_375\0") }
22679     }
22680     pub const SPEC_VERSION: u32 = 0u32;
22681 }
22682 #[derive(Clone)]
22683 pub struct NvExtension375Fn {}
22684 unsafe impl Send for NvExtension375Fn {}
22685 unsafe impl Sync for NvExtension375Fn {}
22686 impl NvExtension375Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22687     pub fn load<F>(mut _f: F) -> Self
22688     where
22689         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22690     {
22691         Self {}
22692     }
22693 }
22694 #[doc = "Generated from 'VK_NV_extension_375'"]
22695 impl ExternalMemoryHandleTypeFlags {
22696     pub const RESERVED_13_NV: Self = Self(0b10_0000_0000_0000);
22697 }
22698 impl ExtExtension376Fn {
name() -> &'static ::std::ffi::CStr22699     pub fn name() -> &'static ::std::ffi::CStr {
22700         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_376\0") }
22701     }
22702     pub const SPEC_VERSION: u32 = 0u32;
22703 }
22704 #[derive(Clone)]
22705 pub struct ExtExtension376Fn {}
22706 unsafe impl Send for ExtExtension376Fn {}
22707 unsafe impl Sync for ExtExtension376Fn {}
22708 impl ExtExtension376Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22709     pub fn load<F>(mut _f: F) -> Self
22710     where
22711         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22712     {
22713         Self {}
22714     }
22715 }
22716 impl ExtExtension377Fn {
name() -> &'static ::std::ffi::CStr22717     pub fn name() -> &'static ::std::ffi::CStr {
22718         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_377\0") }
22719     }
22720     pub const SPEC_VERSION: u32 = 0u32;
22721 }
22722 #[derive(Clone)]
22723 pub struct ExtExtension377Fn {}
22724 unsafe impl Send for ExtExtension377Fn {}
22725 unsafe impl Sync for ExtExtension377Fn {}
22726 impl ExtExtension377Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22727     pub fn load<F>(mut _f: F) -> Self
22728     where
22729         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22730     {
22731         Self {}
22732     }
22733 }
22734 impl ExtExtendedDynamicState2Fn {
name() -> &'static ::std::ffi::CStr22735     pub fn name() -> &'static ::std::ffi::CStr {
22736         unsafe {
22737             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extended_dynamic_state2\0")
22738         }
22739     }
22740     pub const SPEC_VERSION: u32 = 1u32;
22741 }
22742 #[allow(non_camel_case_types)]
22743 pub type PFN_vkCmdSetPatchControlPointsEXT =
22744     unsafe extern "system" fn(command_buffer: CommandBuffer, patch_control_points: u32);
22745 #[allow(non_camel_case_types)]
22746 pub type PFN_vkCmdSetRasterizerDiscardEnableEXT =
22747     unsafe extern "system" fn(command_buffer: CommandBuffer, rasterizer_discard_enable: Bool32);
22748 #[allow(non_camel_case_types)]
22749 pub type PFN_vkCmdSetDepthBiasEnableEXT =
22750     unsafe extern "system" fn(command_buffer: CommandBuffer, depth_bias_enable: Bool32);
22751 #[allow(non_camel_case_types)]
22752 pub type PFN_vkCmdSetLogicOpEXT =
22753     unsafe extern "system" fn(command_buffer: CommandBuffer, logic_op: LogicOp);
22754 #[allow(non_camel_case_types)]
22755 pub type PFN_vkCmdSetPrimitiveRestartEnableEXT =
22756     unsafe extern "system" fn(command_buffer: CommandBuffer, primitive_restart_enable: Bool32);
22757 #[derive(Clone)]
22758 pub struct ExtExtendedDynamicState2Fn {
22759     pub cmd_set_patch_control_points_ext: PFN_vkCmdSetPatchControlPointsEXT,
22760     pub cmd_set_rasterizer_discard_enable_ext: PFN_vkCmdSetRasterizerDiscardEnableEXT,
22761     pub cmd_set_depth_bias_enable_ext: PFN_vkCmdSetDepthBiasEnableEXT,
22762     pub cmd_set_logic_op_ext: PFN_vkCmdSetLogicOpEXT,
22763     pub cmd_set_primitive_restart_enable_ext: PFN_vkCmdSetPrimitiveRestartEnableEXT,
22764 }
22765 unsafe impl Send for ExtExtendedDynamicState2Fn {}
22766 unsafe impl Sync for ExtExtendedDynamicState2Fn {}
22767 impl ExtExtendedDynamicState2Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22768     pub fn load<F>(mut _f: F) -> Self
22769     where
22770         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22771     {
22772         Self {
22773             cmd_set_patch_control_points_ext: unsafe {
22774                 unsafe extern "system" fn cmd_set_patch_control_points_ext(
22775                     _command_buffer: CommandBuffer,
22776                     _patch_control_points: u32,
22777                 ) {
22778                     panic!(concat!(
22779                         "Unable to load ",
22780                         stringify!(cmd_set_patch_control_points_ext)
22781                     ))
22782                 }
22783                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22784                     b"vkCmdSetPatchControlPointsEXT\0",
22785                 );
22786                 let val = _f(cname);
22787                 if val.is_null() {
22788                     cmd_set_patch_control_points_ext
22789                 } else {
22790                     ::std::mem::transmute(val)
22791                 }
22792             },
22793             cmd_set_rasterizer_discard_enable_ext: unsafe {
22794                 unsafe extern "system" fn cmd_set_rasterizer_discard_enable_ext(
22795                     _command_buffer: CommandBuffer,
22796                     _rasterizer_discard_enable: Bool32,
22797                 ) {
22798                     panic!(concat!(
22799                         "Unable to load ",
22800                         stringify!(cmd_set_rasterizer_discard_enable_ext)
22801                     ))
22802                 }
22803                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22804                     b"vkCmdSetRasterizerDiscardEnableEXT\0",
22805                 );
22806                 let val = _f(cname);
22807                 if val.is_null() {
22808                     cmd_set_rasterizer_discard_enable_ext
22809                 } else {
22810                     ::std::mem::transmute(val)
22811                 }
22812             },
22813             cmd_set_depth_bias_enable_ext: unsafe {
22814                 unsafe extern "system" fn cmd_set_depth_bias_enable_ext(
22815                     _command_buffer: CommandBuffer,
22816                     _depth_bias_enable: Bool32,
22817                 ) {
22818                     panic!(concat!(
22819                         "Unable to load ",
22820                         stringify!(cmd_set_depth_bias_enable_ext)
22821                     ))
22822                 }
22823                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22824                     b"vkCmdSetDepthBiasEnableEXT\0",
22825                 );
22826                 let val = _f(cname);
22827                 if val.is_null() {
22828                     cmd_set_depth_bias_enable_ext
22829                 } else {
22830                     ::std::mem::transmute(val)
22831                 }
22832             },
22833             cmd_set_logic_op_ext: unsafe {
22834                 unsafe extern "system" fn cmd_set_logic_op_ext(
22835                     _command_buffer: CommandBuffer,
22836                     _logic_op: LogicOp,
22837                 ) {
22838                     panic!(concat!("Unable to load ", stringify!(cmd_set_logic_op_ext)))
22839                 }
22840                 let cname =
22841                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdSetLogicOpEXT\0");
22842                 let val = _f(cname);
22843                 if val.is_null() {
22844                     cmd_set_logic_op_ext
22845                 } else {
22846                     ::std::mem::transmute(val)
22847                 }
22848             },
22849             cmd_set_primitive_restart_enable_ext: unsafe {
22850                 unsafe extern "system" fn cmd_set_primitive_restart_enable_ext(
22851                     _command_buffer: CommandBuffer,
22852                     _primitive_restart_enable: Bool32,
22853                 ) {
22854                     panic!(concat!(
22855                         "Unable to load ",
22856                         stringify!(cmd_set_primitive_restart_enable_ext)
22857                     ))
22858                 }
22859                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22860                     b"vkCmdSetPrimitiveRestartEnableEXT\0",
22861                 );
22862                 let val = _f(cname);
22863                 if val.is_null() {
22864                     cmd_set_primitive_restart_enable_ext
22865                 } else {
22866                     ::std::mem::transmute(val)
22867                 }
22868             },
22869         }
22870     }
22871     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetPatchControlPointsEXT.html>"]
cmd_set_patch_control_points_ext( &self, command_buffer: CommandBuffer, patch_control_points: u32, )22872     pub unsafe fn cmd_set_patch_control_points_ext(
22873         &self,
22874         command_buffer: CommandBuffer,
22875         patch_control_points: u32,
22876     ) {
22877         (self.cmd_set_patch_control_points_ext)(command_buffer, patch_control_points)
22878     }
22879     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetRasterizerDiscardEnableEXT.html>"]
cmd_set_rasterizer_discard_enable_ext( &self, command_buffer: CommandBuffer, rasterizer_discard_enable: Bool32, )22880     pub unsafe fn cmd_set_rasterizer_discard_enable_ext(
22881         &self,
22882         command_buffer: CommandBuffer,
22883         rasterizer_discard_enable: Bool32,
22884     ) {
22885         (self.cmd_set_rasterizer_discard_enable_ext)(command_buffer, rasterizer_discard_enable)
22886     }
22887     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetDepthBiasEnableEXT.html>"]
cmd_set_depth_bias_enable_ext( &self, command_buffer: CommandBuffer, depth_bias_enable: Bool32, )22888     pub unsafe fn cmd_set_depth_bias_enable_ext(
22889         &self,
22890         command_buffer: CommandBuffer,
22891         depth_bias_enable: Bool32,
22892     ) {
22893         (self.cmd_set_depth_bias_enable_ext)(command_buffer, depth_bias_enable)
22894     }
22895     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetLogicOpEXT.html>"]
cmd_set_logic_op_ext(&self, command_buffer: CommandBuffer, logic_op: LogicOp)22896     pub unsafe fn cmd_set_logic_op_ext(&self, command_buffer: CommandBuffer, logic_op: LogicOp) {
22897         (self.cmd_set_logic_op_ext)(command_buffer, logic_op)
22898     }
22899     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetPrimitiveRestartEnableEXT.html>"]
cmd_set_primitive_restart_enable_ext( &self, command_buffer: CommandBuffer, primitive_restart_enable: Bool32, )22900     pub unsafe fn cmd_set_primitive_restart_enable_ext(
22901         &self,
22902         command_buffer: CommandBuffer,
22903         primitive_restart_enable: Bool32,
22904     ) {
22905         (self.cmd_set_primitive_restart_enable_ext)(command_buffer, primitive_restart_enable)
22906     }
22907 }
22908 #[doc = "Generated from 'VK_EXT_extended_dynamic_state2'"]
22909 impl DynamicState {
22910     pub const PATCH_CONTROL_POINTS_EXT: Self = Self(1_000_377_000);
22911     pub const RASTERIZER_DISCARD_ENABLE_EXT: Self = Self(1_000_377_001);
22912     pub const DEPTH_BIAS_ENABLE_EXT: Self = Self(1_000_377_002);
22913     pub const LOGIC_OP_EXT: Self = Self(1_000_377_003);
22914     pub const PRIMITIVE_RESTART_ENABLE_EXT: Self = Self(1_000_377_004);
22915 }
22916 #[doc = "Generated from 'VK_EXT_extended_dynamic_state2'"]
22917 impl StructureType {
22918     pub const PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: Self = Self(1_000_377_000);
22919 }
22920 impl QnxScreenSurfaceFn {
name() -> &'static ::std::ffi::CStr22921     pub fn name() -> &'static ::std::ffi::CStr {
22922         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QNX_screen_surface\0") }
22923     }
22924     pub const SPEC_VERSION: u32 = 1u32;
22925 }
22926 #[allow(non_camel_case_types)]
22927 pub type PFN_vkCreateScreenSurfaceQNX = unsafe extern "system" fn(
22928     instance: Instance,
22929     p_create_info: *const ScreenSurfaceCreateInfoQNX,
22930     p_allocator: *const AllocationCallbacks,
22931     p_surface: *mut SurfaceKHR,
22932 ) -> Result;
22933 #[allow(non_camel_case_types)]
22934 pub type PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX = unsafe extern "system" fn(
22935     physical_device: PhysicalDevice,
22936     queue_family_index: u32,
22937     window: *mut _screen_window,
22938 ) -> Bool32;
22939 #[derive(Clone)]
22940 pub struct QnxScreenSurfaceFn {
22941     pub create_screen_surface_qnx: PFN_vkCreateScreenSurfaceQNX,
22942     pub get_physical_device_screen_presentation_support_qnx:
22943         PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX,
22944 }
22945 unsafe impl Send for QnxScreenSurfaceFn {}
22946 unsafe impl Sync for QnxScreenSurfaceFn {}
22947 impl QnxScreenSurfaceFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,22948     pub fn load<F>(mut _f: F) -> Self
22949     where
22950         F: FnMut(&::std::ffi::CStr) -> *const c_void,
22951     {
22952         Self {
22953             create_screen_surface_qnx: unsafe {
22954                 unsafe extern "system" fn create_screen_surface_qnx(
22955                     _instance: Instance,
22956                     _p_create_info: *const ScreenSurfaceCreateInfoQNX,
22957                     _p_allocator: *const AllocationCallbacks,
22958                     _p_surface: *mut SurfaceKHR,
22959                 ) -> Result {
22960                     panic!(concat!(
22961                         "Unable to load ",
22962                         stringify!(create_screen_surface_qnx)
22963                     ))
22964                 }
22965                 let cname =
22966                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCreateScreenSurfaceQNX\0");
22967                 let val = _f(cname);
22968                 if val.is_null() {
22969                     create_screen_surface_qnx
22970                 } else {
22971                     ::std::mem::transmute(val)
22972                 }
22973             },
22974             get_physical_device_screen_presentation_support_qnx: unsafe {
22975                 unsafe extern "system" fn get_physical_device_screen_presentation_support_qnx(
22976                     _physical_device: PhysicalDevice,
22977                     _queue_family_index: u32,
22978                     _window: *mut _screen_window,
22979                 ) -> Bool32 {
22980                     panic!(concat!(
22981                         "Unable to load ",
22982                         stringify!(get_physical_device_screen_presentation_support_qnx)
22983                     ))
22984                 }
22985                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
22986                     b"vkGetPhysicalDeviceScreenPresentationSupportQNX\0",
22987                 );
22988                 let val = _f(cname);
22989                 if val.is_null() {
22990                     get_physical_device_screen_presentation_support_qnx
22991                 } else {
22992                     ::std::mem::transmute(val)
22993                 }
22994             },
22995         }
22996     }
22997     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateScreenSurfaceQNX.html>"]
create_screen_surface_qnx( &self, instance: Instance, p_create_info: *const ScreenSurfaceCreateInfoQNX, p_allocator: *const AllocationCallbacks, p_surface: *mut SurfaceKHR, ) -> Result22998     pub unsafe fn create_screen_surface_qnx(
22999         &self,
23000         instance: Instance,
23001         p_create_info: *const ScreenSurfaceCreateInfoQNX,
23002         p_allocator: *const AllocationCallbacks,
23003         p_surface: *mut SurfaceKHR,
23004     ) -> Result {
23005         (self.create_screen_surface_qnx)(instance, p_create_info, p_allocator, p_surface)
23006     }
23007     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceScreenPresentationSupportQNX.html>"]
get_physical_device_screen_presentation_support_qnx( &self, physical_device: PhysicalDevice, queue_family_index: u32, window: *mut _screen_window, ) -> Bool3223008     pub unsafe fn get_physical_device_screen_presentation_support_qnx(
23009         &self,
23010         physical_device: PhysicalDevice,
23011         queue_family_index: u32,
23012         window: *mut _screen_window,
23013     ) -> Bool32 {
23014         (self.get_physical_device_screen_presentation_support_qnx)(
23015             physical_device,
23016             queue_family_index,
23017             window,
23018         )
23019     }
23020 }
23021 #[doc = "Generated from 'VK_QNX_screen_surface'"]
23022 impl StructureType {
23023     pub const SCREEN_SURFACE_CREATE_INFO_QNX: Self = Self(1_000_378_000);
23024 }
23025 impl KhrExtension380Fn {
name() -> &'static ::std::ffi::CStr23026     pub fn name() -> &'static ::std::ffi::CStr {
23027         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_380\0") }
23028     }
23029     pub const SPEC_VERSION: u32 = 0u32;
23030 }
23031 #[derive(Clone)]
23032 pub struct KhrExtension380Fn {}
23033 unsafe impl Send for KhrExtension380Fn {}
23034 unsafe impl Sync for KhrExtension380Fn {}
23035 impl KhrExtension380Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23036     pub fn load<F>(mut _f: F) -> Self
23037     where
23038         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23039     {
23040         Self {}
23041     }
23042 }
23043 impl KhrExtension381Fn {
name() -> &'static ::std::ffi::CStr23044     pub fn name() -> &'static ::std::ffi::CStr {
23045         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_381\0") }
23046     }
23047     pub const SPEC_VERSION: u32 = 0u32;
23048 }
23049 #[derive(Clone)]
23050 pub struct KhrExtension381Fn {}
23051 unsafe impl Send for KhrExtension381Fn {}
23052 unsafe impl Sync for KhrExtension381Fn {}
23053 impl KhrExtension381Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23054     pub fn load<F>(mut _f: F) -> Self
23055     where
23056         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23057     {
23058         Self {}
23059     }
23060 }
23061 impl ExtColorWriteEnableFn {
name() -> &'static ::std::ffi::CStr23062     pub fn name() -> &'static ::std::ffi::CStr {
23063         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_color_write_enable\0") }
23064     }
23065     pub const SPEC_VERSION: u32 = 1u32;
23066 }
23067 #[allow(non_camel_case_types)]
23068 pub type PFN_vkCmdSetColorWriteEnableEXT = unsafe extern "system" fn(
23069     command_buffer: CommandBuffer,
23070     attachment_count: u32,
23071     p_color_write_enables: *const Bool32,
23072 );
23073 #[derive(Clone)]
23074 pub struct ExtColorWriteEnableFn {
23075     pub cmd_set_color_write_enable_ext: PFN_vkCmdSetColorWriteEnableEXT,
23076 }
23077 unsafe impl Send for ExtColorWriteEnableFn {}
23078 unsafe impl Sync for ExtColorWriteEnableFn {}
23079 impl ExtColorWriteEnableFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23080     pub fn load<F>(mut _f: F) -> Self
23081     where
23082         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23083     {
23084         Self {
23085             cmd_set_color_write_enable_ext: unsafe {
23086                 unsafe extern "system" fn cmd_set_color_write_enable_ext(
23087                     _command_buffer: CommandBuffer,
23088                     _attachment_count: u32,
23089                     _p_color_write_enables: *const Bool32,
23090                 ) {
23091                     panic!(concat!(
23092                         "Unable to load ",
23093                         stringify!(cmd_set_color_write_enable_ext)
23094                     ))
23095                 }
23096                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23097                     b"vkCmdSetColorWriteEnableEXT\0",
23098                 );
23099                 let val = _f(cname);
23100                 if val.is_null() {
23101                     cmd_set_color_write_enable_ext
23102                 } else {
23103                     ::std::mem::transmute(val)
23104                 }
23105             },
23106         }
23107     }
23108     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdSetColorWriteEnableEXT.html>"]
cmd_set_color_write_enable_ext( &self, command_buffer: CommandBuffer, attachment_count: u32, p_color_write_enables: *const Bool32, )23109     pub unsafe fn cmd_set_color_write_enable_ext(
23110         &self,
23111         command_buffer: CommandBuffer,
23112         attachment_count: u32,
23113         p_color_write_enables: *const Bool32,
23114     ) {
23115         (self.cmd_set_color_write_enable_ext)(
23116             command_buffer,
23117             attachment_count,
23118             p_color_write_enables,
23119         )
23120     }
23121 }
23122 #[doc = "Generated from 'VK_EXT_color_write_enable'"]
23123 impl DynamicState {
23124     pub const COLOR_WRITE_ENABLE_EXT: Self = Self(1_000_381_000);
23125 }
23126 #[doc = "Generated from 'VK_EXT_color_write_enable'"]
23127 impl StructureType {
23128     pub const PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: Self = Self(1_000_381_000);
23129     pub const PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: Self = Self(1_000_381_001);
23130 }
23131 impl ExtExtension383Fn {
name() -> &'static ::std::ffi::CStr23132     pub fn name() -> &'static ::std::ffi::CStr {
23133         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_383\0") }
23134     }
23135     pub const SPEC_VERSION: u32 = 0u32;
23136 }
23137 #[derive(Clone)]
23138 pub struct ExtExtension383Fn {}
23139 unsafe impl Send for ExtExtension383Fn {}
23140 unsafe impl Sync for ExtExtension383Fn {}
23141 impl ExtExtension383Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23142     pub fn load<F>(mut _f: F) -> Self
23143     where
23144         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23145     {
23146         Self {}
23147     }
23148 }
23149 impl ExtExtension384Fn {
name() -> &'static ::std::ffi::CStr23150     pub fn name() -> &'static ::std::ffi::CStr {
23151         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_384\0") }
23152     }
23153     pub const SPEC_VERSION: u32 = 0u32;
23154 }
23155 #[derive(Clone)]
23156 pub struct ExtExtension384Fn {}
23157 unsafe impl Send for ExtExtension384Fn {}
23158 unsafe impl Sync for ExtExtension384Fn {}
23159 impl ExtExtension384Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23160     pub fn load<F>(mut _f: F) -> Self
23161     where
23162         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23163     {
23164         Self {}
23165     }
23166 }
23167 impl MesaExtension385Fn {
name() -> &'static ::std::ffi::CStr23168     pub fn name() -> &'static ::std::ffi::CStr {
23169         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_MESA_extension_385\0") }
23170     }
23171     pub const SPEC_VERSION: u32 = 0u32;
23172 }
23173 #[derive(Clone)]
23174 pub struct MesaExtension385Fn {}
23175 unsafe impl Send for MesaExtension385Fn {}
23176 unsafe impl Sync for MesaExtension385Fn {}
23177 impl MesaExtension385Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23178     pub fn load<F>(mut _f: F) -> Self
23179     where
23180         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23181     {
23182         Self {}
23183     }
23184 }
23185 impl GoogleExtension386Fn {
name() -> &'static ::std::ffi::CStr23186     pub fn name() -> &'static ::std::ffi::CStr {
23187         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_extension_386\0") }
23188     }
23189     pub const SPEC_VERSION: u32 = 0u32;
23190 }
23191 #[derive(Clone)]
23192 pub struct GoogleExtension386Fn {}
23193 unsafe impl Send for GoogleExtension386Fn {}
23194 unsafe impl Sync for GoogleExtension386Fn {}
23195 impl GoogleExtension386Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23196     pub fn load<F>(mut _f: F) -> Self
23197     where
23198         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23199     {
23200         Self {}
23201     }
23202 }
23203 impl KhrExtension387Fn {
name() -> &'static ::std::ffi::CStr23204     pub fn name() -> &'static ::std::ffi::CStr {
23205         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_387\0") }
23206     }
23207     pub const SPEC_VERSION: u32 = 0u32;
23208 }
23209 #[derive(Clone)]
23210 pub struct KhrExtension387Fn {}
23211 unsafe impl Send for KhrExtension387Fn {}
23212 unsafe impl Sync for KhrExtension387Fn {}
23213 impl KhrExtension387Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23214     pub fn load<F>(mut _f: F) -> Self
23215     where
23216         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23217     {
23218         Self {}
23219     }
23220 }
23221 #[doc = "Generated from 'VK_KHR_extension_387'"]
23222 impl AccessFlags2KHR {
23223     pub const RESERVED_387: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000);
23224 }
23225 #[doc = "Generated from 'VK_KHR_extension_387'"]
23226 impl PipelineStageFlags2KHR {
23227     pub const RESERVED_387: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000);
23228 }
23229 impl ExtExtension388Fn {
name() -> &'static ::std::ffi::CStr23230     pub fn name() -> &'static ::std::ffi::CStr {
23231         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_388\0") }
23232     }
23233     pub const SPEC_VERSION: u32 = 0u32;
23234 }
23235 #[derive(Clone)]
23236 pub struct ExtExtension388Fn {}
23237 unsafe impl Send for ExtExtension388Fn {}
23238 unsafe impl Sync for ExtExtension388Fn {}
23239 impl ExtExtension388Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23240     pub fn load<F>(mut _f: F) -> Self
23241     where
23242         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23243     {
23244         Self {}
23245     }
23246 }
23247 impl ExtGlobalPriorityQueryFn {
name() -> &'static ::std::ffi::CStr23248     pub fn name() -> &'static ::std::ffi::CStr {
23249         unsafe {
23250             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_global_priority_query\0")
23251         }
23252     }
23253     pub const SPEC_VERSION: u32 = 1u32;
23254 }
23255 #[derive(Clone)]
23256 pub struct ExtGlobalPriorityQueryFn {}
23257 unsafe impl Send for ExtGlobalPriorityQueryFn {}
23258 unsafe impl Sync for ExtGlobalPriorityQueryFn {}
23259 impl ExtGlobalPriorityQueryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23260     pub fn load<F>(mut _f: F) -> Self
23261     where
23262         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23263     {
23264         Self {}
23265     }
23266 }
23267 #[doc = "Generated from 'VK_EXT_global_priority_query'"]
23268 impl StructureType {
23269     pub const PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT: Self = Self(1_000_388_000);
23270     pub const QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT: Self = Self(1_000_388_001);
23271 }
23272 impl ExtExtension390Fn {
name() -> &'static ::std::ffi::CStr23273     pub fn name() -> &'static ::std::ffi::CStr {
23274         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_390\0") }
23275     }
23276     pub const SPEC_VERSION: u32 = 0u32;
23277 }
23278 #[derive(Clone)]
23279 pub struct ExtExtension390Fn {}
23280 unsafe impl Send for ExtExtension390Fn {}
23281 unsafe impl Sync for ExtExtension390Fn {}
23282 impl ExtExtension390Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23283     pub fn load<F>(mut _f: F) -> Self
23284     where
23285         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23286     {
23287         Self {}
23288     }
23289 }
23290 impl ExtExtension391Fn {
name() -> &'static ::std::ffi::CStr23291     pub fn name() -> &'static ::std::ffi::CStr {
23292         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_391\0") }
23293     }
23294     pub const SPEC_VERSION: u32 = 0u32;
23295 }
23296 #[derive(Clone)]
23297 pub struct ExtExtension391Fn {}
23298 unsafe impl Send for ExtExtension391Fn {}
23299 unsafe impl Sync for ExtExtension391Fn {}
23300 impl ExtExtension391Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23301     pub fn load<F>(mut _f: F) -> Self
23302     where
23303         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23304     {
23305         Self {}
23306     }
23307 }
23308 impl ExtImageViewMinLodFn {
name() -> &'static ::std::ffi::CStr23309     pub fn name() -> &'static ::std::ffi::CStr {
23310         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_image_view_min_lod\0") }
23311     }
23312     pub const SPEC_VERSION: u32 = 1u32;
23313 }
23314 #[derive(Clone)]
23315 pub struct ExtImageViewMinLodFn {}
23316 unsafe impl Send for ExtImageViewMinLodFn {}
23317 unsafe impl Sync for ExtImageViewMinLodFn {}
23318 impl ExtImageViewMinLodFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23319     pub fn load<F>(mut _f: F) -> Self
23320     where
23321         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23322     {
23323         Self {}
23324     }
23325 }
23326 #[doc = "Generated from 'VK_EXT_image_view_min_lod'"]
23327 impl StructureType {
23328     pub const PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT: Self = Self(1_000_391_000);
23329     pub const IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT: Self = Self(1_000_391_001);
23330 }
23331 impl ExtMultiDrawFn {
name() -> &'static ::std::ffi::CStr23332     pub fn name() -> &'static ::std::ffi::CStr {
23333         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_multi_draw\0") }
23334     }
23335     pub const SPEC_VERSION: u32 = 1u32;
23336 }
23337 #[allow(non_camel_case_types)]
23338 pub type PFN_vkCmdDrawMultiEXT = unsafe extern "system" fn(
23339     command_buffer: CommandBuffer,
23340     draw_count: u32,
23341     p_vertex_info: *const MultiDrawInfoEXT,
23342     instance_count: u32,
23343     first_instance: u32,
23344     stride: u32,
23345 );
23346 #[allow(non_camel_case_types)]
23347 pub type PFN_vkCmdDrawMultiIndexedEXT = unsafe extern "system" fn(
23348     command_buffer: CommandBuffer,
23349     draw_count: u32,
23350     p_index_info: *const MultiDrawIndexedInfoEXT,
23351     instance_count: u32,
23352     first_instance: u32,
23353     stride: u32,
23354     p_vertex_offset: *const i32,
23355 );
23356 #[derive(Clone)]
23357 pub struct ExtMultiDrawFn {
23358     pub cmd_draw_multi_ext: PFN_vkCmdDrawMultiEXT,
23359     pub cmd_draw_multi_indexed_ext: PFN_vkCmdDrawMultiIndexedEXT,
23360 }
23361 unsafe impl Send for ExtMultiDrawFn {}
23362 unsafe impl Sync for ExtMultiDrawFn {}
23363 impl ExtMultiDrawFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23364     pub fn load<F>(mut _f: F) -> Self
23365     where
23366         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23367     {
23368         Self {
23369             cmd_draw_multi_ext: unsafe {
23370                 unsafe extern "system" fn cmd_draw_multi_ext(
23371                     _command_buffer: CommandBuffer,
23372                     _draw_count: u32,
23373                     _p_vertex_info: *const MultiDrawInfoEXT,
23374                     _instance_count: u32,
23375                     _first_instance: u32,
23376                     _stride: u32,
23377                 ) {
23378                     panic!(concat!("Unable to load ", stringify!(cmd_draw_multi_ext)))
23379                 }
23380                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMultiEXT\0");
23381                 let val = _f(cname);
23382                 if val.is_null() {
23383                     cmd_draw_multi_ext
23384                 } else {
23385                     ::std::mem::transmute(val)
23386                 }
23387             },
23388             cmd_draw_multi_indexed_ext: unsafe {
23389                 unsafe extern "system" fn cmd_draw_multi_indexed_ext(
23390                     _command_buffer: CommandBuffer,
23391                     _draw_count: u32,
23392                     _p_index_info: *const MultiDrawIndexedInfoEXT,
23393                     _instance_count: u32,
23394                     _first_instance: u32,
23395                     _stride: u32,
23396                     _p_vertex_offset: *const i32,
23397                 ) {
23398                     panic!(concat!(
23399                         "Unable to load ",
23400                         stringify!(cmd_draw_multi_indexed_ext)
23401                     ))
23402                 }
23403                 let cname =
23404                     ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"vkCmdDrawMultiIndexedEXT\0");
23405                 let val = _f(cname);
23406                 if val.is_null() {
23407                     cmd_draw_multi_indexed_ext
23408                 } else {
23409                     ::std::mem::transmute(val)
23410                 }
23411             },
23412         }
23413     }
23414     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDrawMultiEXT.html>"]
cmd_draw_multi_ext( &self, command_buffer: CommandBuffer, draw_count: u32, p_vertex_info: *const MultiDrawInfoEXT, instance_count: u32, first_instance: u32, stride: u32, )23415     pub unsafe fn cmd_draw_multi_ext(
23416         &self,
23417         command_buffer: CommandBuffer,
23418         draw_count: u32,
23419         p_vertex_info: *const MultiDrawInfoEXT,
23420         instance_count: u32,
23421         first_instance: u32,
23422         stride: u32,
23423     ) {
23424         (self.cmd_draw_multi_ext)(
23425             command_buffer,
23426             draw_count,
23427             p_vertex_info,
23428             instance_count,
23429             first_instance,
23430             stride,
23431         )
23432     }
23433     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDrawMultiIndexedEXT.html>"]
cmd_draw_multi_indexed_ext( &self, command_buffer: CommandBuffer, draw_count: u32, p_index_info: *const MultiDrawIndexedInfoEXT, instance_count: u32, first_instance: u32, stride: u32, p_vertex_offset: *const i32, )23434     pub unsafe fn cmd_draw_multi_indexed_ext(
23435         &self,
23436         command_buffer: CommandBuffer,
23437         draw_count: u32,
23438         p_index_info: *const MultiDrawIndexedInfoEXT,
23439         instance_count: u32,
23440         first_instance: u32,
23441         stride: u32,
23442         p_vertex_offset: *const i32,
23443     ) {
23444         (self.cmd_draw_multi_indexed_ext)(
23445             command_buffer,
23446             draw_count,
23447             p_index_info,
23448             instance_count,
23449             first_instance,
23450             stride,
23451             p_vertex_offset,
23452         )
23453     }
23454 }
23455 #[doc = "Generated from 'VK_EXT_multi_draw'"]
23456 impl StructureType {
23457     pub const PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT: Self = Self(1_000_392_000);
23458     pub const PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT: Self = Self(1_000_392_001);
23459 }
23460 impl ExtExtension394Fn {
name() -> &'static ::std::ffi::CStr23461     pub fn name() -> &'static ::std::ffi::CStr {
23462         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_394\0") }
23463     }
23464     pub const SPEC_VERSION: u32 = 0u32;
23465 }
23466 #[derive(Clone)]
23467 pub struct ExtExtension394Fn {}
23468 unsafe impl Send for ExtExtension394Fn {}
23469 unsafe impl Sync for ExtExtension394Fn {}
23470 impl ExtExtension394Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23471     pub fn load<F>(mut _f: F) -> Self
23472     where
23473         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23474     {
23475         Self {}
23476     }
23477 }
23478 #[doc = "Generated from 'VK_EXT_extension_394'"]
23479 impl ImageCreateFlags {
23480     pub const RESERVED_394_EXT: Self = Self(0b10_0000_0000_0000_0000);
23481 }
23482 impl KhrExtension395Fn {
name() -> &'static ::std::ffi::CStr23483     pub fn name() -> &'static ::std::ffi::CStr {
23484         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_395\0") }
23485     }
23486     pub const SPEC_VERSION: u32 = 0u32;
23487 }
23488 #[derive(Clone)]
23489 pub struct KhrExtension395Fn {}
23490 unsafe impl Send for KhrExtension395Fn {}
23491 unsafe impl Sync for KhrExtension395Fn {}
23492 impl KhrExtension395Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23493     pub fn load<F>(mut _f: F) -> Self
23494     where
23495         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23496     {
23497         Self {}
23498     }
23499 }
23500 impl KhrExtension396Fn {
name() -> &'static ::std::ffi::CStr23501     pub fn name() -> &'static ::std::ffi::CStr {
23502         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_396\0") }
23503     }
23504     pub const SPEC_VERSION: u32 = 0u32;
23505 }
23506 #[derive(Clone)]
23507 pub struct KhrExtension396Fn {}
23508 unsafe impl Send for KhrExtension396Fn {}
23509 unsafe impl Sync for KhrExtension396Fn {}
23510 impl KhrExtension396Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23511     pub fn load<F>(mut _f: F) -> Self
23512     where
23513         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23514     {
23515         Self {}
23516     }
23517 }
23518 impl NvExtension397Fn {
name() -> &'static ::std::ffi::CStr23519     pub fn name() -> &'static ::std::ffi::CStr {
23520         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_397\0") }
23521     }
23522     pub const SPEC_VERSION: u32 = 0u32;
23523 }
23524 #[derive(Clone)]
23525 pub struct NvExtension397Fn {}
23526 unsafe impl Send for NvExtension397Fn {}
23527 unsafe impl Sync for NvExtension397Fn {}
23528 impl NvExtension397Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23529     pub fn load<F>(mut _f: F) -> Self
23530     where
23531         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23532     {
23533         Self {}
23534     }
23535 }
23536 impl NvExtension398Fn {
name() -> &'static ::std::ffi::CStr23537     pub fn name() -> &'static ::std::ffi::CStr {
23538         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_398\0") }
23539     }
23540     pub const SPEC_VERSION: u32 = 0u32;
23541 }
23542 #[derive(Clone)]
23543 pub struct NvExtension398Fn {}
23544 unsafe impl Send for NvExtension398Fn {}
23545 unsafe impl Sync for NvExtension398Fn {}
23546 impl NvExtension398Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23547     pub fn load<F>(mut _f: F) -> Self
23548     where
23549         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23550     {
23551         Self {}
23552     }
23553 }
23554 impl JuiceExtension399Fn {
name() -> &'static ::std::ffi::CStr23555     pub fn name() -> &'static ::std::ffi::CStr {
23556         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_JUICE_extension_399\0") }
23557     }
23558     pub const SPEC_VERSION: u32 = 0u32;
23559 }
23560 #[derive(Clone)]
23561 pub struct JuiceExtension399Fn {}
23562 unsafe impl Send for JuiceExtension399Fn {}
23563 unsafe impl Sync for JuiceExtension399Fn {}
23564 impl JuiceExtension399Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23565     pub fn load<F>(mut _f: F) -> Self
23566     where
23567         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23568     {
23569         Self {}
23570     }
23571 }
23572 impl JuiceExtension400Fn {
name() -> &'static ::std::ffi::CStr23573     pub fn name() -> &'static ::std::ffi::CStr {
23574         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_JUICE_extension_400\0") }
23575     }
23576     pub const SPEC_VERSION: u32 = 0u32;
23577 }
23578 #[derive(Clone)]
23579 pub struct JuiceExtension400Fn {}
23580 unsafe impl Send for JuiceExtension400Fn {}
23581 unsafe impl Sync for JuiceExtension400Fn {}
23582 impl JuiceExtension400Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23583     pub fn load<F>(mut _f: F) -> Self
23584     where
23585         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23586     {
23587         Self {}
23588     }
23589 }
23590 impl ExtLoadStoreOpNoneFn {
name() -> &'static ::std::ffi::CStr23591     pub fn name() -> &'static ::std::ffi::CStr {
23592         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_load_store_op_none\0") }
23593     }
23594     pub const SPEC_VERSION: u32 = 1u32;
23595 }
23596 #[derive(Clone)]
23597 pub struct ExtLoadStoreOpNoneFn {}
23598 unsafe impl Send for ExtLoadStoreOpNoneFn {}
23599 unsafe impl Sync for ExtLoadStoreOpNoneFn {}
23600 impl ExtLoadStoreOpNoneFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23601     pub fn load<F>(mut _f: F) -> Self
23602     where
23603         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23604     {
23605         Self {}
23606     }
23607 }
23608 #[doc = "Generated from 'VK_EXT_load_store_op_none'"]
23609 impl AttachmentLoadOp {
23610     pub const NONE_EXT: Self = Self(1_000_400_000);
23611 }
23612 #[doc = "Generated from 'VK_EXT_load_store_op_none'"]
23613 impl AttachmentStoreOp {
23614     pub const NONE_EXT: Self = Self::NONE_KHR;
23615 }
23616 impl FbExtension402Fn {
name() -> &'static ::std::ffi::CStr23617     pub fn name() -> &'static ::std::ffi::CStr {
23618         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FB_extension_402\0") }
23619     }
23620     pub const SPEC_VERSION: u32 = 0u32;
23621 }
23622 #[derive(Clone)]
23623 pub struct FbExtension402Fn {}
23624 unsafe impl Send for FbExtension402Fn {}
23625 unsafe impl Sync for FbExtension402Fn {}
23626 impl FbExtension402Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23627     pub fn load<F>(mut _f: F) -> Self
23628     where
23629         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23630     {
23631         Self {}
23632     }
23633 }
23634 impl FbExtension403Fn {
name() -> &'static ::std::ffi::CStr23635     pub fn name() -> &'static ::std::ffi::CStr {
23636         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FB_extension_403\0") }
23637     }
23638     pub const SPEC_VERSION: u32 = 0u32;
23639 }
23640 #[derive(Clone)]
23641 pub struct FbExtension403Fn {}
23642 unsafe impl Send for FbExtension403Fn {}
23643 unsafe impl Sync for FbExtension403Fn {}
23644 impl FbExtension403Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23645     pub fn load<F>(mut _f: F) -> Self
23646     where
23647         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23648     {
23649         Self {}
23650     }
23651 }
23652 impl FbExtension404Fn {
name() -> &'static ::std::ffi::CStr23653     pub fn name() -> &'static ::std::ffi::CStr {
23654         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_FB_extension_404\0") }
23655     }
23656     pub const SPEC_VERSION: u32 = 0u32;
23657 }
23658 #[derive(Clone)]
23659 pub struct FbExtension404Fn {}
23660 unsafe impl Send for FbExtension404Fn {}
23661 unsafe impl Sync for FbExtension404Fn {}
23662 impl FbExtension404Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23663     pub fn load<F>(mut _f: F) -> Self
23664     where
23665         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23666     {
23667         Self {}
23668     }
23669 }
23670 impl HuaweiExtension405Fn {
name() -> &'static ::std::ffi::CStr23671     pub fn name() -> &'static ::std::ffi::CStr {
23672         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_extension_405\0") }
23673     }
23674     pub const SPEC_VERSION: u32 = 0u32;
23675 }
23676 #[derive(Clone)]
23677 pub struct HuaweiExtension405Fn {}
23678 unsafe impl Send for HuaweiExtension405Fn {}
23679 unsafe impl Sync for HuaweiExtension405Fn {}
23680 impl HuaweiExtension405Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23681     pub fn load<F>(mut _f: F) -> Self
23682     where
23683         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23684     {
23685         Self {}
23686     }
23687 }
23688 impl HuaweiExtension406Fn {
name() -> &'static ::std::ffi::CStr23689     pub fn name() -> &'static ::std::ffi::CStr {
23690         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_extension_406\0") }
23691     }
23692     pub const SPEC_VERSION: u32 = 0u32;
23693 }
23694 #[derive(Clone)]
23695 pub struct HuaweiExtension406Fn {}
23696 unsafe impl Send for HuaweiExtension406Fn {}
23697 unsafe impl Sync for HuaweiExtension406Fn {}
23698 impl HuaweiExtension406Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23699     pub fn load<F>(mut _f: F) -> Self
23700     where
23701         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23702     {
23703         Self {}
23704     }
23705 }
23706 impl GgpExtension407Fn {
name() -> &'static ::std::ffi::CStr23707     pub fn name() -> &'static ::std::ffi::CStr {
23708         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GGP_extension_407\0") }
23709     }
23710     pub const SPEC_VERSION: u32 = 0u32;
23711 }
23712 #[derive(Clone)]
23713 pub struct GgpExtension407Fn {}
23714 unsafe impl Send for GgpExtension407Fn {}
23715 unsafe impl Sync for GgpExtension407Fn {}
23716 impl GgpExtension407Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23717     pub fn load<F>(mut _f: F) -> Self
23718     where
23719         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23720     {
23721         Self {}
23722     }
23723 }
23724 impl GgpExtension408Fn {
name() -> &'static ::std::ffi::CStr23725     pub fn name() -> &'static ::std::ffi::CStr {
23726         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GGP_extension_408\0") }
23727     }
23728     pub const SPEC_VERSION: u32 = 0u32;
23729 }
23730 #[derive(Clone)]
23731 pub struct GgpExtension408Fn {}
23732 unsafe impl Send for GgpExtension408Fn {}
23733 unsafe impl Sync for GgpExtension408Fn {}
23734 impl GgpExtension408Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23735     pub fn load<F>(mut _f: F) -> Self
23736     where
23737         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23738     {
23739         Self {}
23740     }
23741 }
23742 impl GgpExtension409Fn {
name() -> &'static ::std::ffi::CStr23743     pub fn name() -> &'static ::std::ffi::CStr {
23744         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GGP_extension_409\0") }
23745     }
23746     pub const SPEC_VERSION: u32 = 0u32;
23747 }
23748 #[derive(Clone)]
23749 pub struct GgpExtension409Fn {}
23750 unsafe impl Send for GgpExtension409Fn {}
23751 unsafe impl Sync for GgpExtension409Fn {}
23752 impl GgpExtension409Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23753     pub fn load<F>(mut _f: F) -> Self
23754     where
23755         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23756     {
23757         Self {}
23758     }
23759 }
23760 impl GgpExtension410Fn {
name() -> &'static ::std::ffi::CStr23761     pub fn name() -> &'static ::std::ffi::CStr {
23762         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GGP_extension_410\0") }
23763     }
23764     pub const SPEC_VERSION: u32 = 0u32;
23765 }
23766 #[derive(Clone)]
23767 pub struct GgpExtension410Fn {}
23768 unsafe impl Send for GgpExtension410Fn {}
23769 unsafe impl Sync for GgpExtension410Fn {}
23770 impl GgpExtension410Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23771     pub fn load<F>(mut _f: F) -> Self
23772     where
23773         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23774     {
23775         Self {}
23776     }
23777 }
23778 impl GgpExtension411Fn {
name() -> &'static ::std::ffi::CStr23779     pub fn name() -> &'static ::std::ffi::CStr {
23780         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GGP_extension_411\0") }
23781     }
23782     pub const SPEC_VERSION: u32 = 0u32;
23783 }
23784 #[derive(Clone)]
23785 pub struct GgpExtension411Fn {}
23786 unsafe impl Send for GgpExtension411Fn {}
23787 unsafe impl Sync for GgpExtension411Fn {}
23788 impl GgpExtension411Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23789     pub fn load<F>(mut _f: F) -> Self
23790     where
23791         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23792     {
23793         Self {}
23794     }
23795 }
23796 impl ExtBorderColorSwizzleFn {
name() -> &'static ::std::ffi::CStr23797     pub fn name() -> &'static ::std::ffi::CStr {
23798         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_border_color_swizzle\0") }
23799     }
23800     pub const SPEC_VERSION: u32 = 1u32;
23801 }
23802 #[derive(Clone)]
23803 pub struct ExtBorderColorSwizzleFn {}
23804 unsafe impl Send for ExtBorderColorSwizzleFn {}
23805 unsafe impl Sync for ExtBorderColorSwizzleFn {}
23806 impl ExtBorderColorSwizzleFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23807     pub fn load<F>(mut _f: F) -> Self
23808     where
23809         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23810     {
23811         Self {}
23812     }
23813 }
23814 #[doc = "Generated from 'VK_EXT_border_color_swizzle'"]
23815 impl StructureType {
23816     pub const PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT: Self = Self(1_000_411_000);
23817     pub const SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT: Self = Self(1_000_411_001);
23818 }
23819 impl ExtPageableDeviceLocalMemoryFn {
name() -> &'static ::std::ffi::CStr23820     pub fn name() -> &'static ::std::ffi::CStr {
23821         unsafe {
23822             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23823                 b"VK_EXT_pageable_device_local_memory\0",
23824             )
23825         }
23826     }
23827     pub const SPEC_VERSION: u32 = 1u32;
23828 }
23829 #[allow(non_camel_case_types)]
23830 pub type PFN_vkSetDeviceMemoryPriorityEXT =
23831     unsafe extern "system" fn(device: Device, memory: DeviceMemory, priority: f32);
23832 #[derive(Clone)]
23833 pub struct ExtPageableDeviceLocalMemoryFn {
23834     pub set_device_memory_priority_ext: PFN_vkSetDeviceMemoryPriorityEXT,
23835 }
23836 unsafe impl Send for ExtPageableDeviceLocalMemoryFn {}
23837 unsafe impl Sync for ExtPageableDeviceLocalMemoryFn {}
23838 impl ExtPageableDeviceLocalMemoryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23839     pub fn load<F>(mut _f: F) -> Self
23840     where
23841         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23842     {
23843         Self {
23844             set_device_memory_priority_ext: unsafe {
23845                 unsafe extern "system" fn set_device_memory_priority_ext(
23846                     _device: Device,
23847                     _memory: DeviceMemory,
23848                     _priority: f32,
23849                 ) {
23850                     panic!(concat!(
23851                         "Unable to load ",
23852                         stringify!(set_device_memory_priority_ext)
23853                     ))
23854                 }
23855                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23856                     b"vkSetDeviceMemoryPriorityEXT\0",
23857                 );
23858                 let val = _f(cname);
23859                 if val.is_null() {
23860                     set_device_memory_priority_ext
23861                 } else {
23862                     ::std::mem::transmute(val)
23863                 }
23864             },
23865         }
23866     }
23867     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkSetDeviceMemoryPriorityEXT.html>"]
set_device_memory_priority_ext( &self, device: Device, memory: DeviceMemory, priority: f32, )23868     pub unsafe fn set_device_memory_priority_ext(
23869         &self,
23870         device: Device,
23871         memory: DeviceMemory,
23872         priority: f32,
23873     ) {
23874         (self.set_device_memory_priority_ext)(device, memory, priority)
23875     }
23876 }
23877 #[doc = "Generated from 'VK_EXT_pageable_device_local_memory'"]
23878 impl StructureType {
23879     pub const PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT: Self = Self(1_000_412_000);
23880 }
23881 impl KhrMaintenance4Fn {
name() -> &'static ::std::ffi::CStr23882     pub fn name() -> &'static ::std::ffi::CStr {
23883         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_maintenance4\0") }
23884     }
23885     pub const SPEC_VERSION: u32 = 2u32;
23886 }
23887 #[allow(non_camel_case_types)]
23888 pub type PFN_vkGetDeviceBufferMemoryRequirementsKHR = unsafe extern "system" fn(
23889     device: Device,
23890     p_info: *const DeviceBufferMemoryRequirementsKHR,
23891     p_memory_requirements: *mut MemoryRequirements2,
23892 );
23893 #[allow(non_camel_case_types)]
23894 pub type PFN_vkGetDeviceImageMemoryRequirementsKHR = unsafe extern "system" fn(
23895     device: Device,
23896     p_info: *const DeviceImageMemoryRequirementsKHR,
23897     p_memory_requirements: *mut MemoryRequirements2,
23898 );
23899 #[allow(non_camel_case_types)]
23900 pub type PFN_vkGetDeviceImageSparseMemoryRequirementsKHR = unsafe extern "system" fn(
23901     device: Device,
23902     p_info: *const DeviceImageMemoryRequirementsKHR,
23903     p_sparse_memory_requirement_count: *mut u32,
23904     p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2,
23905 );
23906 #[derive(Clone)]
23907 pub struct KhrMaintenance4Fn {
23908     pub get_device_buffer_memory_requirements_khr: PFN_vkGetDeviceBufferMemoryRequirementsKHR,
23909     pub get_device_image_memory_requirements_khr: PFN_vkGetDeviceImageMemoryRequirementsKHR,
23910     pub get_device_image_sparse_memory_requirements_khr:
23911         PFN_vkGetDeviceImageSparseMemoryRequirementsKHR,
23912 }
23913 unsafe impl Send for KhrMaintenance4Fn {}
23914 unsafe impl Sync for KhrMaintenance4Fn {}
23915 impl KhrMaintenance4Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,23916     pub fn load<F>(mut _f: F) -> Self
23917     where
23918         F: FnMut(&::std::ffi::CStr) -> *const c_void,
23919     {
23920         Self {
23921             get_device_buffer_memory_requirements_khr: unsafe {
23922                 unsafe extern "system" fn get_device_buffer_memory_requirements_khr(
23923                     _device: Device,
23924                     _p_info: *const DeviceBufferMemoryRequirementsKHR,
23925                     _p_memory_requirements: *mut MemoryRequirements2,
23926                 ) {
23927                     panic!(concat!(
23928                         "Unable to load ",
23929                         stringify!(get_device_buffer_memory_requirements_khr)
23930                     ))
23931                 }
23932                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23933                     b"vkGetDeviceBufferMemoryRequirementsKHR\0",
23934                 );
23935                 let val = _f(cname);
23936                 if val.is_null() {
23937                     get_device_buffer_memory_requirements_khr
23938                 } else {
23939                     ::std::mem::transmute(val)
23940                 }
23941             },
23942             get_device_image_memory_requirements_khr: unsafe {
23943                 unsafe extern "system" fn get_device_image_memory_requirements_khr(
23944                     _device: Device,
23945                     _p_info: *const DeviceImageMemoryRequirementsKHR,
23946                     _p_memory_requirements: *mut MemoryRequirements2,
23947                 ) {
23948                     panic!(concat!(
23949                         "Unable to load ",
23950                         stringify!(get_device_image_memory_requirements_khr)
23951                     ))
23952                 }
23953                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23954                     b"vkGetDeviceImageMemoryRequirementsKHR\0",
23955                 );
23956                 let val = _f(cname);
23957                 if val.is_null() {
23958                     get_device_image_memory_requirements_khr
23959                 } else {
23960                     ::std::mem::transmute(val)
23961                 }
23962             },
23963             get_device_image_sparse_memory_requirements_khr: unsafe {
23964                 unsafe extern "system" fn get_device_image_sparse_memory_requirements_khr(
23965                     _device: Device,
23966                     _p_info: *const DeviceImageMemoryRequirementsKHR,
23967                     _p_sparse_memory_requirement_count: *mut u32,
23968                     _p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2,
23969                 ) {
23970                     panic!(concat!(
23971                         "Unable to load ",
23972                         stringify!(get_device_image_sparse_memory_requirements_khr)
23973                     ))
23974                 }
23975                 let cname = ::std::ffi::CStr::from_bytes_with_nul_unchecked(
23976                     b"vkGetDeviceImageSparseMemoryRequirementsKHR\0",
23977                 );
23978                 let val = _f(cname);
23979                 if val.is_null() {
23980                     get_device_image_sparse_memory_requirements_khr
23981                 } else {
23982                     ::std::mem::transmute(val)
23983                 }
23984             },
23985         }
23986     }
23987     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeviceBufferMemoryRequirementsKHR.html>"]
get_device_buffer_memory_requirements_khr( &self, device: Device, p_info: *const DeviceBufferMemoryRequirementsKHR, p_memory_requirements: *mut MemoryRequirements2, )23988     pub unsafe fn get_device_buffer_memory_requirements_khr(
23989         &self,
23990         device: Device,
23991         p_info: *const DeviceBufferMemoryRequirementsKHR,
23992         p_memory_requirements: *mut MemoryRequirements2,
23993     ) {
23994         (self.get_device_buffer_memory_requirements_khr)(device, p_info, p_memory_requirements)
23995     }
23996     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeviceImageMemoryRequirementsKHR.html>"]
get_device_image_memory_requirements_khr( &self, device: Device, p_info: *const DeviceImageMemoryRequirementsKHR, p_memory_requirements: *mut MemoryRequirements2, )23997     pub unsafe fn get_device_image_memory_requirements_khr(
23998         &self,
23999         device: Device,
24000         p_info: *const DeviceImageMemoryRequirementsKHR,
24001         p_memory_requirements: *mut MemoryRequirements2,
24002     ) {
24003         (self.get_device_image_memory_requirements_khr)(device, p_info, p_memory_requirements)
24004     }
24005     #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetDeviceImageSparseMemoryRequirementsKHR.html>"]
get_device_image_sparse_memory_requirements_khr( &self, device: Device, p_info: *const DeviceImageMemoryRequirementsKHR, p_sparse_memory_requirement_count: *mut u32, p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2, )24006     pub unsafe fn get_device_image_sparse_memory_requirements_khr(
24007         &self,
24008         device: Device,
24009         p_info: *const DeviceImageMemoryRequirementsKHR,
24010         p_sparse_memory_requirement_count: *mut u32,
24011         p_sparse_memory_requirements: *mut SparseImageMemoryRequirements2,
24012     ) {
24013         (self.get_device_image_sparse_memory_requirements_khr)(
24014             device,
24015             p_info,
24016             p_sparse_memory_requirement_count,
24017             p_sparse_memory_requirements,
24018         )
24019     }
24020 }
24021 #[doc = "Generated from 'VK_KHR_maintenance4'"]
24022 impl ImageAspectFlags {
24023     pub const NONE_KHR: Self = Self(0);
24024 }
24025 #[doc = "Generated from 'VK_KHR_maintenance4'"]
24026 impl StructureType {
24027     pub const PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR: Self = Self(1_000_413_000);
24028     pub const PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR: Self = Self(1_000_413_001);
24029     pub const DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR: Self = Self(1_000_413_002);
24030     pub const DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR: Self = Self(1_000_413_003);
24031 }
24032 impl HuaweiExtension415Fn {
name() -> &'static ::std::ffi::CStr24033     pub fn name() -> &'static ::std::ffi::CStr {
24034         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_HUAWEI_extension_415\0") }
24035     }
24036     pub const SPEC_VERSION: u32 = 0u32;
24037 }
24038 #[derive(Clone)]
24039 pub struct HuaweiExtension415Fn {}
24040 unsafe impl Send for HuaweiExtension415Fn {}
24041 unsafe impl Sync for HuaweiExtension415Fn {}
24042 impl HuaweiExtension415Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24043     pub fn load<F>(mut _f: F) -> Self
24044     where
24045         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24046     {
24047         Self {}
24048     }
24049 }
24050 impl ArmExtension416Fn {
name() -> &'static ::std::ffi::CStr24051     pub fn name() -> &'static ::std::ffi::CStr {
24052         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_ARM_extension_416\0") }
24053     }
24054     pub const SPEC_VERSION: u32 = 0u32;
24055 }
24056 #[derive(Clone)]
24057 pub struct ArmExtension416Fn {}
24058 unsafe impl Send for ArmExtension416Fn {}
24059 unsafe impl Sync for ArmExtension416Fn {}
24060 impl ArmExtension416Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24061     pub fn load<F>(mut _f: F) -> Self
24062     where
24063         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24064     {
24065         Self {}
24066     }
24067 }
24068 impl KhrExtension417Fn {
name() -> &'static ::std::ffi::CStr24069     pub fn name() -> &'static ::std::ffi::CStr {
24070         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_417\0") }
24071     }
24072     pub const SPEC_VERSION: u32 = 0u32;
24073 }
24074 #[derive(Clone)]
24075 pub struct KhrExtension417Fn {}
24076 unsafe impl Send for KhrExtension417Fn {}
24077 unsafe impl Sync for KhrExtension417Fn {}
24078 impl KhrExtension417Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24079     pub fn load<F>(mut _f: F) -> Self
24080     where
24081         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24082     {
24083         Self {}
24084     }
24085 }
24086 impl ArmExtension418Fn {
name() -> &'static ::std::ffi::CStr24087     pub fn name() -> &'static ::std::ffi::CStr {
24088         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_ARM_extension_418\0") }
24089     }
24090     pub const SPEC_VERSION: u32 = 0u32;
24091 }
24092 #[derive(Clone)]
24093 pub struct ArmExtension418Fn {}
24094 unsafe impl Send for ArmExtension418Fn {}
24095 unsafe impl Sync for ArmExtension418Fn {}
24096 impl ArmExtension418Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24097     pub fn load<F>(mut _f: F) -> Self
24098     where
24099         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24100     {
24101         Self {}
24102     }
24103 }
24104 impl ExtExtension419Fn {
name() -> &'static ::std::ffi::CStr24105     pub fn name() -> &'static ::std::ffi::CStr {
24106         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_419\0") }
24107     }
24108     pub const SPEC_VERSION: u32 = 0u32;
24109 }
24110 #[derive(Clone)]
24111 pub struct ExtExtension419Fn {}
24112 unsafe impl Send for ExtExtension419Fn {}
24113 unsafe impl Sync for ExtExtension419Fn {}
24114 impl ExtExtension419Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24115     pub fn load<F>(mut _f: F) -> Self
24116     where
24117         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24118     {
24119         Self {}
24120     }
24121 }
24122 impl ExtExtension420Fn {
name() -> &'static ::std::ffi::CStr24123     pub fn name() -> &'static ::std::ffi::CStr {
24124         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_420\0") }
24125     }
24126     pub const SPEC_VERSION: u32 = 0u32;
24127 }
24128 #[derive(Clone)]
24129 pub struct ExtExtension420Fn {}
24130 unsafe impl Send for ExtExtension420Fn {}
24131 unsafe impl Sync for ExtExtension420Fn {}
24132 impl ExtExtension420Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24133     pub fn load<F>(mut _f: F) -> Self
24134     where
24135         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24136     {
24137         Self {}
24138     }
24139 }
24140 impl KhrExtension421Fn {
name() -> &'static ::std::ffi::CStr24141     pub fn name() -> &'static ::std::ffi::CStr {
24142         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_421\0") }
24143     }
24144     pub const SPEC_VERSION: u32 = 0u32;
24145 }
24146 #[derive(Clone)]
24147 pub struct KhrExtension421Fn {}
24148 unsafe impl Send for KhrExtension421Fn {}
24149 unsafe impl Sync for KhrExtension421Fn {}
24150 impl KhrExtension421Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24151     pub fn load<F>(mut _f: F) -> Self
24152     where
24153         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24154     {
24155         Self {}
24156     }
24157 }
24158 impl ExtExtension422Fn {
name() -> &'static ::std::ffi::CStr24159     pub fn name() -> &'static ::std::ffi::CStr {
24160         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_422\0") }
24161     }
24162     pub const SPEC_VERSION: u32 = 0u32;
24163 }
24164 #[derive(Clone)]
24165 pub struct ExtExtension422Fn {}
24166 unsafe impl Send for ExtExtension422Fn {}
24167 unsafe impl Sync for ExtExtension422Fn {}
24168 impl ExtExtension422Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24169     pub fn load<F>(mut _f: F) -> Self
24170     where
24171         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24172     {
24173         Self {}
24174     }
24175 }
24176 impl ExtDisableCubeMapWrapFn {
name() -> &'static ::std::ffi::CStr24177     pub fn name() -> &'static ::std::ffi::CStr {
24178         unsafe {
24179             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_disable_cube_map_wrap\0")
24180         }
24181     }
24182     pub const SPEC_VERSION: u32 = 0u32;
24183 }
24184 #[derive(Clone)]
24185 pub struct ExtDisableCubeMapWrapFn {}
24186 unsafe impl Send for ExtDisableCubeMapWrapFn {}
24187 unsafe impl Sync for ExtDisableCubeMapWrapFn {}
24188 impl ExtDisableCubeMapWrapFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24189     pub fn load<F>(mut _f: F) -> Self
24190     where
24191         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24192     {
24193         Self {}
24194     }
24195 }
24196 #[doc = "Generated from 'VK_EXT_disable_cube_map_wrap'"]
24197 impl SamplerCreateFlags {
24198     pub const RESERVED_2_EXT: Self = Self(0b100);
24199 }
24200 impl ArmExtension424Fn {
name() -> &'static ::std::ffi::CStr24201     pub fn name() -> &'static ::std::ffi::CStr {
24202         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_ARM_extension_424\0") }
24203     }
24204     pub const SPEC_VERSION: u32 = 0u32;
24205 }
24206 #[derive(Clone)]
24207 pub struct ArmExtension424Fn {}
24208 unsafe impl Send for ArmExtension424Fn {}
24209 unsafe impl Sync for ArmExtension424Fn {}
24210 impl ArmExtension424Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24211     pub fn load<F>(mut _f: F) -> Self
24212     where
24213         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24214     {
24215         Self {}
24216     }
24217 }
24218 impl ArmExtension425Fn {
name() -> &'static ::std::ffi::CStr24219     pub fn name() -> &'static ::std::ffi::CStr {
24220         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_ARM_extension_425\0") }
24221     }
24222     pub const SPEC_VERSION: u32 = 0u32;
24223 }
24224 #[derive(Clone)]
24225 pub struct ArmExtension425Fn {}
24226 unsafe impl Send for ArmExtension425Fn {}
24227 unsafe impl Sync for ArmExtension425Fn {}
24228 impl ArmExtension425Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24229     pub fn load<F>(mut _f: F) -> Self
24230     where
24231         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24232     {
24233         Self {}
24234     }
24235 }
24236 impl QcomFragmentDensityMapOffsetFn {
name() -> &'static ::std::ffi::CStr24237     pub fn name() -> &'static ::std::ffi::CStr {
24238         unsafe {
24239             ::std::ffi::CStr::from_bytes_with_nul_unchecked(
24240                 b"VK_QCOM_fragment_density_map_offset\0",
24241             )
24242         }
24243     }
24244     pub const SPEC_VERSION: u32 = 1u32;
24245 }
24246 #[derive(Clone)]
24247 pub struct QcomFragmentDensityMapOffsetFn {}
24248 unsafe impl Send for QcomFragmentDensityMapOffsetFn {}
24249 unsafe impl Sync for QcomFragmentDensityMapOffsetFn {}
24250 impl QcomFragmentDensityMapOffsetFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24251     pub fn load<F>(mut _f: F) -> Self
24252     where
24253         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24254     {
24255         Self {}
24256     }
24257 }
24258 #[doc = "Generated from 'VK_QCOM_fragment_density_map_offset'"]
24259 impl ImageCreateFlags {
24260     pub const FRAGMENT_DENSITY_MAP_OFFSET_QCOM: Self = Self(0b1000_0000_0000_0000);
24261 }
24262 #[doc = "Generated from 'VK_QCOM_fragment_density_map_offset'"]
24263 impl StructureType {
24264     pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM: Self = Self(1_000_425_000);
24265     pub const PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM: Self =
24266         Self(1_000_425_001);
24267     pub const SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM: Self = Self(1_000_425_002);
24268 }
24269 impl NvExtension427Fn {
name() -> &'static ::std::ffi::CStr24270     pub fn name() -> &'static ::std::ffi::CStr {
24271         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_427\0") }
24272     }
24273     pub const SPEC_VERSION: u32 = 0u32;
24274 }
24275 #[derive(Clone)]
24276 pub struct NvExtension427Fn {}
24277 unsafe impl Send for NvExtension427Fn {}
24278 unsafe impl Sync for NvExtension427Fn {}
24279 impl NvExtension427Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24280     pub fn load<F>(mut _f: F) -> Self
24281     where
24282         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24283     {
24284         Self {}
24285     }
24286 }
24287 impl NvExtension428Fn {
name() -> &'static ::std::ffi::CStr24288     pub fn name() -> &'static ::std::ffi::CStr {
24289         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_428\0") }
24290     }
24291     pub const SPEC_VERSION: u32 = 0u32;
24292 }
24293 #[derive(Clone)]
24294 pub struct NvExtension428Fn {}
24295 unsafe impl Send for NvExtension428Fn {}
24296 unsafe impl Sync for NvExtension428Fn {}
24297 impl NvExtension428Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24298     pub fn load<F>(mut _f: F) -> Self
24299     where
24300         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24301     {
24302         Self {}
24303     }
24304 }
24305 impl NvExtension429Fn {
name() -> &'static ::std::ffi::CStr24306     pub fn name() -> &'static ::std::ffi::CStr {
24307         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_429\0") }
24308     }
24309     pub const SPEC_VERSION: u32 = 0u32;
24310 }
24311 #[derive(Clone)]
24312 pub struct NvExtension429Fn {}
24313 unsafe impl Send for NvExtension429Fn {}
24314 unsafe impl Sync for NvExtension429Fn {}
24315 impl NvExtension429Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24316     pub fn load<F>(mut _f: F) -> Self
24317     where
24318         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24319     {
24320         Self {}
24321     }
24322 }
24323 impl NvExtension430Fn {
name() -> &'static ::std::ffi::CStr24324     pub fn name() -> &'static ::std::ffi::CStr {
24325         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_430\0") }
24326     }
24327     pub const SPEC_VERSION: u32 = 0u32;
24328 }
24329 #[derive(Clone)]
24330 pub struct NvExtension430Fn {}
24331 unsafe impl Send for NvExtension430Fn {}
24332 unsafe impl Sync for NvExtension430Fn {}
24333 impl NvExtension430Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24334     pub fn load<F>(mut _f: F) -> Self
24335     where
24336         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24337     {
24338         Self {}
24339     }
24340 }
24341 impl NvLinearColorAttachmentFn {
name() -> &'static ::std::ffi::CStr24342     pub fn name() -> &'static ::std::ffi::CStr {
24343         unsafe {
24344             ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_linear_color_attachment\0")
24345         }
24346     }
24347     pub const SPEC_VERSION: u32 = 1u32;
24348 }
24349 #[derive(Clone)]
24350 pub struct NvLinearColorAttachmentFn {}
24351 unsafe impl Send for NvLinearColorAttachmentFn {}
24352 unsafe impl Sync for NvLinearColorAttachmentFn {}
24353 impl NvLinearColorAttachmentFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24354     pub fn load<F>(mut _f: F) -> Self
24355     where
24356         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24357     {
24358         Self {}
24359     }
24360 }
24361 #[doc = "Generated from 'VK_NV_linear_color_attachment'"]
24362 impl FormatFeatureFlags2KHR {
24363     #[doc = "Format support linear image as render target, it cannot be mixed with non linear attachment"]
24364     pub const LINEAR_COLOR_ATTACHMENT_NV: Self =
24365         Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000_0000);
24366 }
24367 #[doc = "Generated from 'VK_NV_linear_color_attachment'"]
24368 impl StructureType {
24369     pub const PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: Self = Self(1_000_430_000);
24370 }
24371 impl NvExtension432Fn {
name() -> &'static ::std::ffi::CStr24372     pub fn name() -> &'static ::std::ffi::CStr {
24373         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_432\0") }
24374     }
24375     pub const SPEC_VERSION: u32 = 0u32;
24376 }
24377 #[derive(Clone)]
24378 pub struct NvExtension432Fn {}
24379 unsafe impl Send for NvExtension432Fn {}
24380 unsafe impl Sync for NvExtension432Fn {}
24381 impl NvExtension432Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24382     pub fn load<F>(mut _f: F) -> Self
24383     where
24384         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24385     {
24386         Self {}
24387     }
24388 }
24389 impl NvExtension433Fn {
name() -> &'static ::std::ffi::CStr24390     pub fn name() -> &'static ::std::ffi::CStr {
24391         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_433\0") }
24392     }
24393     pub const SPEC_VERSION: u32 = 0u32;
24394 }
24395 #[derive(Clone)]
24396 pub struct NvExtension433Fn {}
24397 unsafe impl Send for NvExtension433Fn {}
24398 unsafe impl Sync for NvExtension433Fn {}
24399 impl NvExtension433Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24400     pub fn load<F>(mut _f: F) -> Self
24401     where
24402         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24403     {
24404         Self {}
24405     }
24406 }
24407 impl GoogleSurfacelessQueryFn {
name() -> &'static ::std::ffi::CStr24408     pub fn name() -> &'static ::std::ffi::CStr {
24409         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_GOOGLE_surfaceless_query\0") }
24410     }
24411     pub const SPEC_VERSION: u32 = 1u32;
24412 }
24413 #[derive(Clone)]
24414 pub struct GoogleSurfacelessQueryFn {}
24415 unsafe impl Send for GoogleSurfacelessQueryFn {}
24416 unsafe impl Sync for GoogleSurfacelessQueryFn {}
24417 impl GoogleSurfacelessQueryFn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24418     pub fn load<F>(mut _f: F) -> Self
24419     where
24420         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24421     {
24422         Self {}
24423     }
24424 }
24425 impl KhrExtension435Fn {
name() -> &'static ::std::ffi::CStr24426     pub fn name() -> &'static ::std::ffi::CStr {
24427         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_KHR_extension_435\0") }
24428     }
24429     pub const SPEC_VERSION: u32 = 0u32;
24430 }
24431 #[derive(Clone)]
24432 pub struct KhrExtension435Fn {}
24433 unsafe impl Send for KhrExtension435Fn {}
24434 unsafe impl Sync for KhrExtension435Fn {}
24435 impl KhrExtension435Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24436     pub fn load<F>(mut _f: F) -> Self
24437     where
24438         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24439     {
24440         Self {}
24441     }
24442 }
24443 impl NvExtension436Fn {
name() -> &'static ::std::ffi::CStr24444     pub fn name() -> &'static ::std::ffi::CStr {
24445         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_NV_extension_436\0") }
24446     }
24447     pub const SPEC_VERSION: u32 = 0u32;
24448 }
24449 #[derive(Clone)]
24450 pub struct NvExtension436Fn {}
24451 unsafe impl Send for NvExtension436Fn {}
24452 unsafe impl Sync for NvExtension436Fn {}
24453 impl NvExtension436Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24454     pub fn load<F>(mut _f: F) -> Self
24455     where
24456         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24457     {
24458         Self {}
24459     }
24460 }
24461 impl ExtExtension437Fn {
name() -> &'static ::std::ffi::CStr24462     pub fn name() -> &'static ::std::ffi::CStr {
24463         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_437\0") }
24464     }
24465     pub const SPEC_VERSION: u32 = 0u32;
24466 }
24467 #[derive(Clone)]
24468 pub struct ExtExtension437Fn {}
24469 unsafe impl Send for ExtExtension437Fn {}
24470 unsafe impl Sync for ExtExtension437Fn {}
24471 impl ExtExtension437Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24472     pub fn load<F>(mut _f: F) -> Self
24473     where
24474         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24475     {
24476         Self {}
24477     }
24478 }
24479 impl ExtExtension438Fn {
name() -> &'static ::std::ffi::CStr24480     pub fn name() -> &'static ::std::ffi::CStr {
24481         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_EXT_extension_438\0") }
24482     }
24483     pub const SPEC_VERSION: u32 = 0u32;
24484 }
24485 #[derive(Clone)]
24486 pub struct ExtExtension438Fn {}
24487 unsafe impl Send for ExtExtension438Fn {}
24488 unsafe impl Sync for ExtExtension438Fn {}
24489 impl ExtExtension438Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24490     pub fn load<F>(mut _f: F) -> Self
24491     where
24492         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24493     {
24494         Self {}
24495     }
24496 }
24497 impl SecExtension439Fn {
name() -> &'static ::std::ffi::CStr24498     pub fn name() -> &'static ::std::ffi::CStr {
24499         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_SEC_extension_439\0") }
24500     }
24501     pub const SPEC_VERSION: u32 = 0u32;
24502 }
24503 #[derive(Clone)]
24504 pub struct SecExtension439Fn {}
24505 unsafe impl Send for SecExtension439Fn {}
24506 unsafe impl Sync for SecExtension439Fn {}
24507 impl SecExtension439Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24508     pub fn load<F>(mut _f: F) -> Self
24509     where
24510         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24511     {
24512         Self {}
24513     }
24514 }
24515 impl QcomExtension440Fn {
name() -> &'static ::std::ffi::CStr24516     pub fn name() -> &'static ::std::ffi::CStr {
24517         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_440\0") }
24518     }
24519     pub const SPEC_VERSION: u32 = 0u32;
24520 }
24521 #[derive(Clone)]
24522 pub struct QcomExtension440Fn {}
24523 unsafe impl Send for QcomExtension440Fn {}
24524 unsafe impl Sync for QcomExtension440Fn {}
24525 impl QcomExtension440Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24526     pub fn load<F>(mut _f: F) -> Self
24527     where
24528         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24529     {
24530         Self {}
24531     }
24532 }
24533 #[doc = "Generated from 'VK_QCOM_extension_440'"]
24534 impl DeviceQueueCreateFlags {
24535     pub const RESERVED_1_QCOM: Self = Self(0b10);
24536 }
24537 #[doc = "Generated from 'VK_QCOM_extension_440'"]
24538 impl QueueFlags {
24539     pub const RESERVED_7_QCOM: Self = Self(0b1000_0000);
24540 }
24541 impl QcomExtension441Fn {
name() -> &'static ::std::ffi::CStr24542     pub fn name() -> &'static ::std::ffi::CStr {
24543         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_QCOM_extension_441\0") }
24544     }
24545     pub const SPEC_VERSION: u32 = 0u32;
24546 }
24547 #[derive(Clone)]
24548 pub struct QcomExtension441Fn {}
24549 unsafe impl Send for QcomExtension441Fn {}
24550 unsafe impl Sync for QcomExtension441Fn {}
24551 impl QcomExtension441Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24552     pub fn load<F>(mut _f: F) -> Self
24553     where
24554         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24555     {
24556         Self {}
24557     }
24558 }
24559 #[doc = "Generated from 'VK_QCOM_extension_441'"]
24560 impl FormatFeatureFlags2KHR {
24561     pub const RESERVED_34_QCOM: Self = Self(0b100_0000_0000_0000_0000_0000_0000_0000_0000);
24562     pub const RESERVED_35_QCOM: Self = Self(0b1000_0000_0000_0000_0000_0000_0000_0000_0000);
24563     pub const RESERVED_36_QCOM: Self = Self(0b1_0000_0000_0000_0000_0000_0000_0000_0000_0000);
24564     pub const RESERVED_37_QCOM: Self = Self(0b10_0000_0000_0000_0000_0000_0000_0000_0000_0000);
24565 }
24566 #[doc = "Generated from 'VK_QCOM_extension_441'"]
24567 impl ImageUsageFlags {
24568     pub const RESERVED_20_QCOM: Self = Self(0b1_0000_0000_0000_0000_0000);
24569     pub const RESERVED_21_QCOM: Self = Self(0b10_0000_0000_0000_0000_0000);
24570 }
24571 #[doc = "Generated from 'VK_QCOM_extension_441'"]
24572 impl SamplerCreateFlags {
24573     pub const IMAGE_PROCESSING_QCOM: Self = Self(0b1_0000);
24574 }
24575 impl CoreaviExtension442Fn {
name() -> &'static ::std::ffi::CStr24576     pub fn name() -> &'static ::std::ffi::CStr {
24577         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_COREAVI_extension_442\0") }
24578     }
24579     pub const SPEC_VERSION: u32 = 0u32;
24580 }
24581 #[derive(Clone)]
24582 pub struct CoreaviExtension442Fn {}
24583 unsafe impl Send for CoreaviExtension442Fn {}
24584 unsafe impl Sync for CoreaviExtension442Fn {}
24585 impl CoreaviExtension442Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24586     pub fn load<F>(mut _f: F) -> Self
24587     where
24588         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24589     {
24590         Self {}
24591     }
24592 }
24593 impl CoreaviExtension443Fn {
name() -> &'static ::std::ffi::CStr24594     pub fn name() -> &'static ::std::ffi::CStr {
24595         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_COREAVI_extension_443\0") }
24596     }
24597     pub const SPEC_VERSION: u32 = 0u32;
24598 }
24599 #[derive(Clone)]
24600 pub struct CoreaviExtension443Fn {}
24601 unsafe impl Send for CoreaviExtension443Fn {}
24602 unsafe impl Sync for CoreaviExtension443Fn {}
24603 impl CoreaviExtension443Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24604     pub fn load<F>(mut _f: F) -> Self
24605     where
24606         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24607     {
24608         Self {}
24609     }
24610 }
24611 impl CoreaviExtension444Fn {
name() -> &'static ::std::ffi::CStr24612     pub fn name() -> &'static ::std::ffi::CStr {
24613         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_COREAVI_extension_444\0") }
24614     }
24615     pub const SPEC_VERSION: u32 = 0u32;
24616 }
24617 #[derive(Clone)]
24618 pub struct CoreaviExtension444Fn {}
24619 unsafe impl Send for CoreaviExtension444Fn {}
24620 unsafe impl Sync for CoreaviExtension444Fn {}
24621 impl CoreaviExtension444Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24622     pub fn load<F>(mut _f: F) -> Self
24623     where
24624         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24625     {
24626         Self {}
24627     }
24628 }
24629 #[doc = "Generated from 'VK_COREAVI_extension_444'"]
24630 impl CommandPoolResetFlags {
24631     pub const RESERVED_1_COREAVI: Self = Self(0b10);
24632 }
24633 impl CoreaviExtension445Fn {
name() -> &'static ::std::ffi::CStr24634     pub fn name() -> &'static ::std::ffi::CStr {
24635         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_COREAVI_extension_445\0") }
24636     }
24637     pub const SPEC_VERSION: u32 = 0u32;
24638 }
24639 #[derive(Clone)]
24640 pub struct CoreaviExtension445Fn {}
24641 unsafe impl Send for CoreaviExtension445Fn {}
24642 unsafe impl Sync for CoreaviExtension445Fn {}
24643 impl CoreaviExtension445Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24644     pub fn load<F>(mut _f: F) -> Self
24645     where
24646         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24647     {
24648         Self {}
24649     }
24650 }
24651 impl CoreaviExtension446Fn {
name() -> &'static ::std::ffi::CStr24652     pub fn name() -> &'static ::std::ffi::CStr {
24653         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_COREAVI_extension_446\0") }
24654     }
24655     pub const SPEC_VERSION: u32 = 0u32;
24656 }
24657 #[derive(Clone)]
24658 pub struct CoreaviExtension446Fn {}
24659 unsafe impl Send for CoreaviExtension446Fn {}
24660 unsafe impl Sync for CoreaviExtension446Fn {}
24661 impl CoreaviExtension446Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24662     pub fn load<F>(mut _f: F) -> Self
24663     where
24664         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24665     {
24666         Self {}
24667     }
24668 }
24669 impl CoreaviExtension447Fn {
name() -> &'static ::std::ffi::CStr24670     pub fn name() -> &'static ::std::ffi::CStr {
24671         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_COREAVI_extension_447\0") }
24672     }
24673     pub const SPEC_VERSION: u32 = 0u32;
24674 }
24675 #[derive(Clone)]
24676 pub struct CoreaviExtension447Fn {}
24677 unsafe impl Send for CoreaviExtension447Fn {}
24678 unsafe impl Sync for CoreaviExtension447Fn {}
24679 impl CoreaviExtension447Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24680     pub fn load<F>(mut _f: F) -> Self
24681     where
24682         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24683     {
24684         Self {}
24685     }
24686 }
24687 impl SecExtension448Fn {
name() -> &'static ::std::ffi::CStr24688     pub fn name() -> &'static ::std::ffi::CStr {
24689         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_SEC_extension_448\0") }
24690     }
24691     pub const SPEC_VERSION: u32 = 0u32;
24692 }
24693 #[derive(Clone)]
24694 pub struct SecExtension448Fn {}
24695 unsafe impl Send for SecExtension448Fn {}
24696 unsafe impl Sync for SecExtension448Fn {}
24697 impl SecExtension448Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24698     pub fn load<F>(mut _f: F) -> Self
24699     where
24700         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24701     {
24702         Self {}
24703     }
24704 }
24705 impl SecExtension449Fn {
name() -> &'static ::std::ffi::CStr24706     pub fn name() -> &'static ::std::ffi::CStr {
24707         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_SEC_extension_449\0") }
24708     }
24709     pub const SPEC_VERSION: u32 = 0u32;
24710 }
24711 #[derive(Clone)]
24712 pub struct SecExtension449Fn {}
24713 unsafe impl Send for SecExtension449Fn {}
24714 unsafe impl Sync for SecExtension449Fn {}
24715 impl SecExtension449Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24716     pub fn load<F>(mut _f: F) -> Self
24717     where
24718         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24719     {
24720         Self {}
24721     }
24722 }
24723 impl SecExtension450Fn {
name() -> &'static ::std::ffi::CStr24724     pub fn name() -> &'static ::std::ffi::CStr {
24725         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_SEC_extension_450\0") }
24726     }
24727     pub const SPEC_VERSION: u32 = 0u32;
24728 }
24729 #[derive(Clone)]
24730 pub struct SecExtension450Fn {}
24731 unsafe impl Send for SecExtension450Fn {}
24732 unsafe impl Sync for SecExtension450Fn {}
24733 impl SecExtension450Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24734     pub fn load<F>(mut _f: F) -> Self
24735     where
24736         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24737     {
24738         Self {}
24739     }
24740 }
24741 impl SecExtension451Fn {
name() -> &'static ::std::ffi::CStr24742     pub fn name() -> &'static ::std::ffi::CStr {
24743         unsafe { ::std::ffi::CStr::from_bytes_with_nul_unchecked(b"VK_SEC_extension_451\0") }
24744     }
24745     pub const SPEC_VERSION: u32 = 0u32;
24746 }
24747 #[derive(Clone)]
24748 pub struct SecExtension451Fn {}
24749 unsafe impl Send for SecExtension451Fn {}
24750 unsafe impl Sync for SecExtension451Fn {}
24751 impl SecExtension451Fn {
load<F>(mut _f: F) -> Self where F: FnMut(&::std::ffi::CStr) -> *const c_void,24752     pub fn load<F>(mut _f: F) -> Self
24753     where
24754         F: FnMut(&::std::ffi::CStr) -> *const c_void,
24755     {
24756         Self {}
24757     }
24758 }
24759